diff --git a/gradle.properties b/gradle.properties index d7f1c5709..070d123e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=com.lokamc.slice version=1.18.2-R0.1-SNAPSHOT mcVersion=1.18.2 -paperRef=fa68bb1e816d8c7013dd2ce512724d8b4c8135a5 +paperRef=ea2c81e4b9232447f9896af2aac4cd0bf62386fd org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/api/0006-World-Instance-flag.patch b/patches/api/0006-World-Instance-flag.patch index b857d8f4e..0b9361a18 100644 --- a/patches/api/0006-World-Instance-flag.patch +++ b/patches/api/0006-World-Instance-flag.patch @@ -5,10 +5,10 @@ Subject: [PATCH] World Instance flag diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 8a688583e65cd22e0417f9fd24e51803486d095e..4be062a2404b509594d723eea59d9656eaa228f1 100644 +index 3421be8309c9083c0aaa80afec13c8acc4fc85dd..6ee4e186f164dd6df32079a10778f35bc66f65b2 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -2608,6 +2608,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -2610,6 +2610,11 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient */ public void setAutoSave(boolean value); diff --git a/patches/server/0003-Set-BlockData-without-light-update.patch b/patches/server/0003-Set-BlockData-without-light-update.patch index e4cc431d8..95a9a164f 100644 --- a/patches/server/0003-Set-BlockData-without-light-update.patch +++ b/patches/server/0003-Set-BlockData-without-light-update.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Set BlockData without light update diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java -index a24f605bd033f249a374e83ba094880106260eee..192e0a7be3ebe1ddd30af478928e581bfdd229a6 100644 +index 1e656438d9ee89b97c660f3b3ec671be6546c6b7..787c14495616c2ccc6cbb41a44010f1ede1ff16d 100644 --- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java +++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java @@ -225,7 +225,7 @@ public class WorldGenRegion implements WorldGenLevel { @@ -17,7 +17,7 @@ index a24f605bd033f249a374e83ba094880106260eee..192e0a7be3ebe1ddd30af478928e581b } } -@@ -291,7 +291,7 @@ public class WorldGenRegion implements WorldGenLevel { +@@ -300,7 +300,7 @@ public class WorldGenRegion implements WorldGenLevel { } @Override diff --git a/patches/server/0006-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch b/patches/server/0006-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch index d58802554..960707a10 100644 --- a/patches/server/0006-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch +++ b/patches/server/0006-Don-t-send-fire-packets-if-player-has-Fire-Resistanc.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't send fire packets if player has Fire Resistance diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 84fce7dccf9232209f939a32acfc3131e62eb27c..a57d8aa70fe3df462279c494686056459dc70271 100644 +index 49cf3601df7b145d49b1fe9a71ba0bc60c5394b3..382d32045417174f5ef3fe556762146d07e30e17 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -780,7 +780,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -780,7 +780,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.checkOutOfWorld(); if (!this.level.isClientSide) { diff --git a/patches/server/0012-Packet-obfuscation-and-reduction.patch b/patches/server/0012-Packet-obfuscation-and-reduction.patch index 755343339..01adad4a8 100644 --- a/patches/server/0012-Packet-obfuscation-and-reduction.patch +++ b/patches/server/0012-Packet-obfuscation-and-reduction.patch @@ -130,7 +130,7 @@ index 1d88edfd09a909044f6e3175af652914b4d06311..e4f8403c6544e1a00571f28954458a14 } } diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 1092ba200a945d8d70e48f956535f56e2743302d..a7f2cc53a0b66d7cd3705f419337bd7ee8c78ec3 100644 +index f91e1a876ad4c46a7c92cead18947a941b4d9e68..13973b8803afefd491dc05e1df6e9b10174e0108 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -371,7 +371,19 @@ public class ServerEntity { @@ -155,10 +155,10 @@ index 1092ba200a945d8d70e48f956535f56e2743302d..a7f2cc53a0b66d7cd3705f419337bd7e if (this.entity instanceof LivingEntity) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a57d8aa70fe3df462279c494686056459dc70271..172d8008c2f5558962e889dd49f205b9a3800aa2 100644 +index 382d32045417174f5ef3fe556762146d07e30e17..d76e8d2030adba305368590158d8767cfe5190e1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3006,7 +3006,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, i +@@ -2991,7 +2991,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID); return; } diff --git a/patches/server/0020-Set-Mutton-nutrition-equal-to-Beef-Porkchop.patch b/patches/server/0020-Set-Mutton-nutrition-equal-to-Beef-Porkchop.patch new file mode 100644 index 000000000..6b14084f7 --- /dev/null +++ b/patches/server/0020-Set-Mutton-nutrition-equal-to-Beef-Porkchop.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cryptite +Date: Thu, 31 Mar 2022 09:06:19 -0500 +Subject: [PATCH] Set Mutton nutrition equal to Beef/Porkchop + + +diff --git a/src/main/java/net/minecraft/world/food/Foods.java b/src/main/java/net/minecraft/world/food/Foods.java +index b16d9e2eaa589f19c563ee70b1a56d67dbcdecb0..c6ff08efc7f0c0e782f8e78e01b9d9cea5cdcaed 100644 +--- a/src/main/java/net/minecraft/world/food/Foods.java ++++ b/src/main/java/net/minecraft/world/food/Foods.java +@@ -17,7 +17,7 @@ public class Foods { + public static final FoodProperties COOKED_BEEF = (new FoodProperties.Builder()).nutrition(8).saturationMod(0.8F).meat().build(); + public static final FoodProperties COOKED_CHICKEN = (new FoodProperties.Builder()).nutrition(6).saturationMod(0.6F).meat().build(); + public static final FoodProperties COOKED_COD = (new FoodProperties.Builder()).nutrition(5).saturationMod(0.6F).build(); +- public static final FoodProperties COOKED_MUTTON = (new FoodProperties.Builder()).nutrition(6).saturationMod(0.8F).meat().build(); ++ public static final FoodProperties COOKED_MUTTON = (new FoodProperties.Builder()).nutrition(8).saturationMod(0.8F).meat().build(); + public static final FoodProperties COOKED_PORKCHOP = (new FoodProperties.Builder()).nutrition(8).saturationMod(0.8F).meat().build(); + public static final FoodProperties COOKED_RABBIT = (new FoodProperties.Builder()).nutrition(5).saturationMod(0.6F).meat().build(); + public static final FoodProperties COOKED_SALMON = (new FoodProperties.Builder()).nutrition(6).saturationMod(0.8F).build(); diff --git a/patches/server/0021-Debug-sync-chunk-loads.patch b/patches/server/0021-Debug-sync-chunk-loads.patch new file mode 100644 index 000000000..720534340 --- /dev/null +++ b/patches/server/0021-Debug-sync-chunk-loads.patch @@ -0,0 +1,59 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cryptite +Date: Sat, 2 Apr 2022 17:25:28 -0500 +Subject: [PATCH] Debug sync chunk loads + + +diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java +index d0c55497040158d959693ef2ddf3ff03bd6df05f..62d87903f339669ed0730118d2d0707062f766c8 100644 +--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java ++++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java +@@ -70,7 +70,7 @@ import java.util.stream.Collectors; + + public class PaperCommand extends Command { + private static final String BASE_PERM = "bukkit.command.paper."; +- private static final ImmutableSet SUBCOMMANDS = ImmutableSet.builder().add("heap", "entity", "reload", "version", "debug", "chunkinfo", "fixlight", "syncloadinfo", "dumpitem", "mobcaps", "playermobcaps").build(); ++ private static final ImmutableSet SUBCOMMANDS = ImmutableSet.builder().add("heap", "entity", "reload", "version", "debug", "chunkinfo", "fixlight", "syncloadinfo", "dumpitem", "mobcaps", "playermobcaps", "debugsyncload").build(); // Slice + + public PaperCommand(String name) { + super(name); +@@ -122,6 +122,12 @@ public class PaperCommand extends Command { + return getListMatchingLast(sender, args, "clear"); + } + break; ++ // Slice start ++ case "debugsyncload": ++ SyncLoadFinder.DEBUG = !SyncLoadFinder.DEBUG; ++ MinecraftServer.LOGGER.info("Debugging sync chunk loads now " + (SyncLoadFinder.DEBUG ? "ON" : "OFF")); ++ break; ++ // Slice end + } + return Collections.emptyList(); + } +diff --git a/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java +index d3e619655382e50e9ac9323ed942502d85c9599c..ff222a54a320eee467383a612f2ce17614b0fe2a 100644 +--- a/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java ++++ b/src/main/java/com/destroystokyo/paper/io/SyncLoadFinder.java +@@ -17,6 +17,8 @@ public class SyncLoadFinder { + + public static final boolean ENABLED = Boolean.getBoolean("paper.debug-sync-loads"); + ++ public static boolean DEBUG; // Slice ++ + private static final WeakHashMap> SYNC_LOADS = new WeakHashMap<>(); + + private static final class SyncLoadInformation { +@@ -37,6 +39,13 @@ public class SyncLoadFinder { + + final ThrowableWithEquals stacktrace = new ThrowableWithEquals(Thread.currentThread().getStackTrace()); + ++ // Slice start ++ if (DEBUG) { ++ org.bukkit.Bukkit.getServer().getLogger().log(java.util.logging.Level.WARNING, "Sync chunk load at " + world.getWorld().getName() + " (" + chunkX + "," + chunkZ + ")"); ++ Thread.dumpStack(); ++ } ++ // Slice end ++ + SYNC_LOADS.compute(world, (final Level keyInMap, Object2ObjectOpenHashMap map) -> { + if (map == null) { + map = new Object2ObjectOpenHashMap<>();