diff --git a/gradle.properties b/gradle.properties index 40a165a2..241a164a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group=cn.dreeam.leaf mcVersion=1.21.4 version=1.21.4-R0.1-SNAPSHOT -galeCommit=804ecea02f411f02758d76745742f66112e7b3ed +galeCommit=ffc98037e08d5bffb7a5d1a5ca277c5234dc089b org.gradle.configuration-cache=true org.gradle.caching=true diff --git a/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch b/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch index 83c939d5..568a19dd 100644 --- a/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch +++ b/leaf-server/minecraft-patches/features/0007-Purpur-Server-Minecraft-Changes.patch @@ -1253,7 +1253,7 @@ index 623c069f1fe079e020c6391a3db1a3d95cd3dbf5..a660bad3dfdb442c6aca5eb939ee103e + // Purpur end - Shift right click to use exp for mending } diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index ea34bb4913e7357f5b76a64443f7e744abdf7b5e..de115ee71fa240440b54c553e0d3ddaf4c0dfca0 100644 +index 060becd4c0b7aa399496ad70ba28cb3449cfaea3..b72b3fdfad0be25f6ece6b934c47a748509de5d6 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -54,6 +54,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -1264,20 +1264,18 @@ index ea34bb4913e7357f5b76a64443f7e744abdf7b5e..de115ee71fa240440b54c553e0d3ddaf public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie, net.minecraft.server.level.ServerPlayer player) { // CraftBukkit this.server = server; -@@ -173,6 +174,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack - ServerGamePacketListenerImpl.LOGGER.error("Couldn't register custom payload", ex); - this.disconnect(Component.literal("Invalid payload REGISTER!"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause +@@ -186,6 +187,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack + if (identifier.equals(MINECRAFT_BRAND)) { + this.player.clientBrandName = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256); } -+ // Purpur start - Purpur client support -+ } else if (identifier.equals(PURPUR_CLIENT)) { -+ try { ++ // Purpur start - Purpur client support ++ else if (identifier.equals(PURPUR_CLIENT)) { + player.purpurClient = true; -+ } catch (Exception ignore) { + } -+ // Purpur end - Purpur client support - } else if (identifier.equals(ServerCommonPacketListenerImpl.CUSTOM_UNREGISTER)) { - try { - String channels = payload.toString(com.google.common.base.Charsets.UTF_8); ++ // Purpur end - Purpur client support + + this.cserver.getMessenger().dispatchIncomingMessage(this.player.getBukkitEntity(), identifier.toString(), data); + } catch (final Exception e) { diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java index a3d0d331d367b8ddfd0ac450acd143ce7d3f7a9a..5fcd389b5483c4c11e7a007b2b6abb9abc1db6b2 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/leaf-server/minecraft-patches/features/0021-Leaves-Protocol-Core.patch b/leaf-server/minecraft-patches/features/0021-Leaves-Protocol-Core.patch index 42e532f6..7657a587 100644 --- a/leaf-server/minecraft-patches/features/0021-Leaves-Protocol-Core.patch +++ b/leaf-server/minecraft-patches/features/0021-Leaves-Protocol-Core.patch @@ -54,7 +54,7 @@ index 047a09cf4a2c32e714aacedeccb0928ef2c7dfa9..dddbb18992348fb7e8a6552423d13480 this.tickables.get(i).run(); } diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index de115ee71fa240440b54c553e0d3ddaf4c0dfca0..ee8cdd532b73180cb484fcc37c36f09c40faacda 100644 +index b72b3fdfad0be25f6ece6b934c47a748509de5d6..3b15b80512834686ffa48b97d3e133d71bf27d82 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java @@ -151,6 +151,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack @@ -66,19 +66,19 @@ index de115ee71fa240440b54c553e0d3ddaf4c0dfca0..ee8cdd532b73180cb484fcc37c36f09c + org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePayload(player, leavesPayload); + } + // Leaves end - protocol - // CraftBukkit start - // Paper start - Brand support + // Paper start if (packet.payload() instanceof net.minecraft.network.protocol.common.custom.BrandPayload(String brand)) { -@@ -169,6 +174,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; +@@ -209,6 +214,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 ef189bdd6c52c3f062774a6e9ae73a186d1d8346..924faf76763588fb41b8aee53236ccb05b1239b1 100644 +index 9a2f2dc1eb471776de6049590cb16e8a061aa24e..e0dbafdbf36ab8597827ac7a828981013ec16bde 100644 --- a/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java @@ -341,6 +341,8 @@ public abstract class PlayerList { diff --git a/leaf-server/minecraft-patches/features/0047-Mirai-Configurable-chat-message-signatures.patch b/leaf-server/minecraft-patches/features/0047-Mirai-Configurable-chat-message-signatures.patch index 5631917c..a6c578d0 100644 --- a/leaf-server/minecraft-patches/features/0047-Mirai-Configurable-chat-message-signatures.patch +++ b/leaf-server/minecraft-patches/features/0047-Mirai-Configurable-chat-message-signatures.patch @@ -103,10 +103,10 @@ index 5151c24697ceb01b4728d7d3fda5fee31db682d7..d4048661575ebfaf128ba25da3658437 // Paper start - Add setting for proxy online mode status return properties.enforceSecureProfile diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -index ee8cdd532b73180cb484fcc37c36f09c40faacda..becadda1642c1b9342f2fdff1fc062a27d8a04f5 100644 +index 3b15b80512834686ffa48b97d3e133d71bf27d82..3a3a89cf5d8760256a5bcce4daddac668ecee1a9 100644 --- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java +++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java -@@ -318,10 +318,30 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack +@@ -320,10 +320,30 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack } public void send(Packet packet) { diff --git a/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch b/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch index a1aa7f23..df829a25 100644 --- a/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch +++ b/leaf-server/paper-patches/features/0005-Purpur-Server-Paper-Changes.patch @@ -1139,10 +1139,10 @@ index 351f42842b780d053cd2e5bad9ae299449141b10..054d2c2b93c43faeeaf56f482eb7b943 + // Purpur end - Llama API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5050f446e75f0ec17daf994ed74cbcd3155664c1..4e1a2344e2cf2683afb7b90a2c17cef14ec226e6 100644 +index cc4b2061ae9cbd5a30b297be477cde703203b3f5..3ba69aa0ac247ecb3406664af606126b30c56ff9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -594,10 +594,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -589,10 +589,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setPlayerListName(String name) { @@ -1159,7 +1159,7 @@ index 5050f446e75f0ec17daf994ed74cbcd3155664c1..4e1a2344e2cf2683afb7b90a2c17cef1 if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined for (ServerPlayer player : (List) this.server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { -@@ -1436,6 +1441,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1431,6 +1436,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper start - Teleport passenger API // Don't allow teleporting between worlds while keeping passengers if (ignorePassengers && entity.isVehicle() && location.getWorld() != this.getWorld()) { @@ -1167,7 +1167,7 @@ index 5050f446e75f0ec17daf994ed74cbcd3155664c1..4e1a2344e2cf2683afb7b90a2c17cef1 return false; } -@@ -1457,6 +1463,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1452,6 +1458,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API @@ -1175,7 +1175,7 @@ index 5050f446e75f0ec17daf994ed74cbcd3155664c1..4e1a2344e2cf2683afb7b90a2c17cef1 return false; } -@@ -2755,6 +2762,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2750,6 +2757,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().getAbilities().walkingSpeed * 2f; } @@ -1204,7 +1204,7 @@ index 5050f446e75f0ec17daf994ed74cbcd3155664c1..4e1a2344e2cf2683afb7b90a2c17cef1 private void validateSpeed(float value) { Preconditions.checkArgument(value <= 1f && value >= -1f, "Speed value (%s) need to be between -1f and 1f", value); } -@@ -3624,4 +3653,75 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3619,4 +3648,75 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSimplifyContainerDesyncCheck(final boolean simplifyContainerDesyncCheck) { this.simplifyContainerDesyncCheck = simplifyContainerDesyncCheck; } diff --git a/leaf-server/paper-patches/features/0008-KeYi-Player-Skull-API.patch b/leaf-server/paper-patches/features/0008-KeYi-Player-Skull-API.patch index a750bebc..b2ca3d6e 100644 --- a/leaf-server/paper-patches/features/0008-KeYi-Player-Skull-API.patch +++ b/leaf-server/paper-patches/features/0008-KeYi-Player-Skull-API.patch @@ -7,10 +7,10 @@ Original license: MIT Original project: https://github.com/KeYiMC/KeYi diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4e1a2344e2cf2683afb7b90a2c17cef14ec226e6..d910faa326612a7272ca3204d436ee7781504645 100644 +index 3ba69aa0ac247ecb3406664af606126b30c56ff9..e0ab197ef364b7a95e1f5beade5f55c2744b8edc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3724,4 +3724,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3719,4 +3719,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), io.papermc.paper.adventure.PaperAdventure.asVanilla(message))); } // Purpur end - Death screen API diff --git a/leaf-server/paper-patches/features/0009-Slice-Smooth-Teleports.patch b/leaf-server/paper-patches/features/0009-Slice-Smooth-Teleports.patch index 27e58475..511d12b3 100644 --- a/leaf-server/paper-patches/features/0009-Slice-Smooth-Teleports.patch +++ b/leaf-server/paper-patches/features/0009-Slice-Smooth-Teleports.patch @@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d910faa326612a7272ca3204d436ee7781504645..7790ebbdfcce35eff8d1423127fc408a52c54f9d 100644 +index e0ab197ef364b7a95e1f5beade5f55c2744b8edc..2f027c504859f7ef41ef243bbc16535c6595ec28 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1386,6 +1386,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1381,6 +1381,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { // Paper end - Teleportation API } diff --git a/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch b/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch index fe86cd8f..b0ae8b06 100644 --- a/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch +++ b/leaf-server/paper-patches/features/0011-Leaves-Replay-Mod-API.patch @@ -74,10 +74,10 @@ index 8635cd772c5c2ae0ba326812ff2a1a179285a86f..cc024874fbde9678bdddfdca7c250808 if (entity instanceof EnderDragonPart complexPart) { if (complexPart.parentMob instanceof EnderDragon) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7790ebbdfcce35eff8d1423127fc408a52c54f9d..81bd2c5555f715957752a980c863d7bba23c9b7a 100644 +index 2f027c504859f7ef41ef243bbc16535c6595ec28..abc762829bc0447936ab9e06eabcb42419578585 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2286,7 +2286,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2281,7 +2281,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(Player player) { diff --git a/leaf-server/paper-patches/features/0014-SparklyPaper-Optimize-canSee-checks.patch b/leaf-server/paper-patches/features/0014-SparklyPaper-Optimize-canSee-checks.patch index 4e4b9fd6..b33c2d01 100644 --- a/leaf-server/paper-patches/features/0014-SparklyPaper-Optimize-canSee-checks.patch +++ b/leaf-server/paper-patches/features/0014-SparklyPaper-Optimize-canSee-checks.patch @@ -16,10 +16,10 @@ This seems stupid, but it does seem that it improves the performance a bit, and We also create a "canSee" method tailored for "ChunkMap#updatePlayer()", a method without the equals check (the "updatePlayer()" already checks if the entity is the same entity) because the CraftPlayer's `equals()` check is a *bit* expensive compared to only checking the object's identity, and because the identity has already been check, we don't need to check it twice. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 81bd2c5555f715957752a980c863d7bba23c9b7a..7ba6e4600a0de7b38739f3808b4d6c35a7eb027b 100644 +index abc762829bc0447936ab9e06eabcb42419578585..8ea9b654eb6098477d51ac24ff5be1a33e3055ae 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -215,7 +215,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -210,7 +210,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private boolean hasPlayedBefore = false; private final ConversationTracker conversationTracker = new ConversationTracker(); private final Set channels = new HashSet(); @@ -28,7 +28,7 @@ index 81bd2c5555f715957752a980c863d7bba23c9b7a..7ba6e4600a0de7b38739f3808b4d6c35 private final Set unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player private static final WeakHashMap> pluginWeakReferences = new WeakHashMap<>(); private int hash = 0; -@@ -2291,9 +2291,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2286,9 +2286,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(org.bukkit.entity.Entity entity) {