diff --git a/gradle.properties b/gradle.properties index b6104770..8ea477e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group=org.leavesmc.leaves version=1.21.4-R0.1-SNAPSHOT mcVersion=1.21.4 -paperRef=c467df95a29e6c3d42b7e6f49513e924f9ba2ece +paperRef=9b1798d6438107fdf0d5939b79a8cf71f4d16e2c preVersion=false org.gradle.jvmargs=-Xmx2G org.gradle.caching=true diff --git a/leaves-server/minecraft-patches/features/0003-Leaves-Protocol-Core.patch b/leaves-server/minecraft-patches/features/0003-Leaves-Protocol-Core.patch index fff7be88..93843dca 100644 --- a/leaves-server/minecraft-patches/features/0003-Leaves-Protocol-Core.patch +++ b/leaves-server/minecraft-patches/features/0003-Leaves-Protocol-Core.patch @@ -47,7 +47,7 @@ index 5dfdf76c8de5eda9a02f9a5fa1c3bada8ec7dcde..bde8ddadd3930100d1e31e630f809e77 this.tickables.get(i).run(); } diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index e71c1a564e5d4ac43460f89879ff709ee685706f..46ffae71b5119c7c4527a21b19c8e822f4d87114 100644 +index af75f1ca60dc01045f27cb550ac9e3deacf1a1cf..ba6338037f04a35a9f8c93cdb1e4b9d53c1a7925 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -136,6 +136,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -60,19 +60,19 @@ index e71c1a564e5d4ac43460f89879ff709ee685706f..46ffae71b5119c7c4527a21b19c8e822 + } + // Leaves end - protocol + - // CraftBukkit start - // Paper start - Brand support + // Paper start if (packet.payload() instanceof net.minecraft.network.protocol.common.custom.BrandPayload(String brand)) { -@@ -154,6 +160,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack - String channels = payload.toString(com.google.common.base.Charsets.UTF_8); - for (String channel : channels.split("\0")) { - this.getCraftPlayer().addChannel(channel); -+ org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleMinecraftRegister(channel, player); // Leaves - protocol - } - } catch (Exception ex) { - ServerGamePacketListenerImpl.LOGGER.error("Couldn't register custom payload", ex); + this.player.clientBrandName = brand; +@@ -189,6 +195,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack + final String channel = new String(data, from, length, java.nio.charset.StandardCharsets.US_ASCII); + if (register) { + this.getCraftPlayer().addChannel(channel); ++ org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleMinecraftRegister(channel, player); // Leaves - protocol + } else { + this.getCraftPlayer().removeChannel(channel); + } diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java -index 03feaf0adb8ee87e33744a4615dc2507a02f92d7..31d145e2368ee935235f8e88278dcaea0c72f2c0 100644 +index c9dbe659374e3ce140316116e05110567e44b810..f88b3b3d0f8e56f17de491fa9d312dadad364a42 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -330,6 +330,8 @@ public abstract class PlayerList { diff --git a/leaves-server/minecraft-patches/features/0014-No-chat-sign.patch b/leaves-server/minecraft-patches/features/0014-No-chat-sign.patch index 8ecad2a6..0ef87c29 100644 --- a/leaves-server/minecraft-patches/features/0014-No-chat-sign.patch +++ b/leaves-server/minecraft-patches/features/0014-No-chat-sign.patch @@ -104,10 +104,10 @@ index 529a2caa2cde82bfdea7c173768fee32f5f21e49..a8775acd67db19ad671d2de252c0c553 } diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index 46ffae71b5119c7c4527a21b19c8e822f4d87114..d3962942cfaf93e8a8f169f243a2cb3c6f4a0ed3 100644 +index ba6338037f04a35a9f8c93cdb1e4b9d53c1a7925..888cecc9a91587ddb01deac698ff4c25b1242516 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -284,10 +284,24 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -288,10 +288,24 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } public void send(Packet packet) { diff --git a/leaves-server/paper-patches/features/0012-Replay-Mod-API.patch b/leaves-server/paper-patches/features/0012-Replay-Mod-API.patch index 510bf9df..ecf56bba 100644 --- a/leaves-server/paper-patches/features/0012-Replay-Mod-API.patch +++ b/leaves-server/paper-patches/features/0012-Replay-Mod-API.patch @@ -64,10 +64,10 @@ index 2b441ba89c603903267db63c7515b0de2cbe09b1..81c8a0a236a892afd56b8fbc56427bb6 // Special case complex part, since there is no extra entity type for them if (entity instanceof EnderDragonPart complexPart) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5050f446e75f0ec17daf994ed74cbcd3155664c1..fdce5bac830b669ce979044ada5379318a17215d 100644 +index cc4b2061ae9cbd5a30b297be477cde703203b3f5..ed687326dfda04f006815f66c48e978221ce653c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2260,7 +2260,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2255,7 +2255,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(Player player) { diff --git a/leaves-server/paper-patches/features/0014-Bytebuf-API.patch b/leaves-server/paper-patches/features/0014-Bytebuf-API.patch index 5d69243a..d9e6aef5 100644 --- a/leaves-server/paper-patches/features/0014-Bytebuf-API.patch +++ b/leaves-server/paper-patches/features/0014-Bytebuf-API.patch @@ -33,10 +33,10 @@ index af648b9301a7a964af88a55e181b68780a9f4ca5..09a9c062a0ad15df3896fba161bdfb17 + // Leaves end - Bytebuf API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fdce5bac830b669ce979044ada5379318a17215d..b2c144a19677bef9f8a3258583fd1c142e2d0c10 100644 +index ed687326dfda04f006815f66c48e978221ce653c..f6fb0b7e7ee67c5a1dfe1ff113c774f402af3d32 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3624,4 +3624,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3619,4 +3619,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSimplifyContainerDesyncCheck(final boolean simplifyContainerDesyncCheck) { this.simplifyContainerDesyncCheck = simplifyContainerDesyncCheck; } diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java index ba1d71d1..8ef1cf73 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/LeavesConfig.java @@ -813,6 +813,14 @@ public final class LeavesConfig { } private static class AlternativePlaceValidator extends EnumConfigValidator { + + @Override + public void verify(AlternativePlaceType old, AlternativePlaceType value) throws IllegalArgumentException { + if (value != AlternativePlaceType.NONE) { + LeavesConfig.modify.disableDistanceCheckForUseItem = true; + } + } + @Override public void runAfterLoader(AlternativePlaceType value, boolean reload) { if (value != AlternativePlaceType.NONE) { @@ -855,7 +863,7 @@ public final class LeavesConfig { private static class AutoUpdateValidator extends BooleanConfigValidator { @Override public void runAfterLoader(Boolean value, boolean reload) { - if (reload) { + if (!reload) { org.leavesmc.leaves.util.LeavesUpdateHelper.init(); if (value) { LeavesLogger.LOGGER.warning("Auto-Update is not completely safe. Enabling it may cause data security problems!"); diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/config/GlobalConfigManager.java b/leaves-server/src/main/java/org/leavesmc/leaves/config/GlobalConfigManager.java index 171087a8..20dfb8e6 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/config/GlobalConfigManager.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/config/GlobalConfigManager.java @@ -31,7 +31,7 @@ public class GlobalConfigManager { for (Field field : LeavesConfig.class.getDeclaredFields()) { initField(field, null, CONFIG_START); } - verifiedConfigs.forEach((path, config) -> config.validator().runAfterLoader(config.get(), false)); + verifiedConfigs.values().forEach(config -> config.validator().runAfterLoader(config.get(), false)); LeavesConfig.save(); loaded = true; @@ -45,7 +45,7 @@ public class GlobalConfigManager { for (Field field : LeavesConfig.class.getDeclaredFields()) { initField(field, null, CONFIG_START); } - verifiedConfigs.forEach((path, config) -> config.validator().runAfterLoader(config.get(), true)); + verifiedConfigs.values().stream().filter(config -> !config.lock()).forEach(config -> config.validator().runAfterLoader(config.get(), true)); LeavesConfig.save(); }