From 672000867b14f450036e3aafe64dd5dfad9283e4 Mon Sep 17 00:00:00 2001 From: hayanesuru Date: Thu, 5 Jun 2025 00:22:17 +0900 Subject: [PATCH] cleanup --- .../features/0163-Protocol-Core.patch | 12 --- .../leaf/protocol/DoABarrelRollProtocol.java | 78 ++++++++----------- .../org/dreeam/leaf/protocol/Protocol.java | 5 +- .../org/dreeam/leaf/protocol/Protocols.java | 6 -- 4 files changed, 35 insertions(+), 66 deletions(-) diff --git a/leaf-server/minecraft-patches/features/0163-Protocol-Core.patch b/leaf-server/minecraft-patches/features/0163-Protocol-Core.patch index d4a08147..075bf1d7 100644 --- a/leaf-server/minecraft-patches/features/0163-Protocol-Core.patch +++ b/leaf-server/minecraft-patches/features/0163-Protocol-Core.patch @@ -33,18 +33,6 @@ index f5f0e4f5d7a4b34514e102020d2a7be313292f7f..0baa48054beead8f187b56ea8d719166 for (int i = 0; i < this.tickables.size(); i++) { this.tickables.get(i).run(); -diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java -index 5351d373aa0f4450386a6b50f88052c031949f5b..ea4067be7e800b58dd59f7ffec58c1e026f68c6e 100644 ---- a/net/minecraft/server/level/ServerEntity.java -+++ b/net/minecraft/server/level/ServerEntity.java -@@ -283,6 +283,7 @@ public class ServerEntity { - this.entity.hurtMarked = false; - this.broadcastAndSend(new ClientboundSetEntityMotionPacket(this.entity)); - } -+ if (entity instanceof ServerPlayer serverPlayer) org.dreeam.leaf.protocol.Protocols.tickTracker(serverPlayer); // Leaf - Protocol core - } - - // Purpur start diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java index 09f517059aa47ca67329bc913243d4fdee09abe5..50cf63666071f5d01a85dfc6c6c45c19b05d8ec2 100644 --- a/net/minecraft/server/level/ServerPlayer.java diff --git a/leaf-server/src/main/java/org/dreeam/leaf/protocol/DoABarrelRollProtocol.java b/leaf-server/src/main/java/org/dreeam/leaf/protocol/DoABarrelRollProtocol.java index af88f866..8859fe24 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/protocol/DoABarrelRollProtocol.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/protocol/DoABarrelRollProtocol.java @@ -1,14 +1,7 @@ package org.dreeam.leaf.protocol; import com.google.common.collect.ImmutableList; -import it.unimi.dsi.fastutil.objects.Reference2BooleanMap; -import it.unimi.dsi.fastutil.objects.Reference2BooleanMaps; -import it.unimi.dsi.fastutil.objects.Reference2BooleanOpenHashMap; -import it.unimi.dsi.fastutil.objects.Reference2FloatMap; -import it.unimi.dsi.fastutil.objects.Reference2FloatMaps; -import it.unimi.dsi.fastutil.objects.Reference2FloatOpenHashMap; -import it.unimi.dsi.fastutil.objects.Reference2ReferenceMap; -import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap; +import it.unimi.dsi.fastutil.objects.*; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.server.MinecraftServer; @@ -25,7 +18,6 @@ import org.dreeam.leaf.protocol.DoABarrelRollPackets.KineticDamage; import org.dreeam.leaf.protocol.DoABarrelRollPackets.ModConfigServer; import org.dreeam.leaf.protocol.DoABarrelRollPackets.RollSyncC2SPacket; import org.dreeam.leaf.protocol.DoABarrelRollPackets.RollSyncS2CPacket; -import org.jetbrains.annotations.NotNull; import org.bukkit.event.player.PlayerKickEvent; import java.util.List; @@ -54,8 +46,8 @@ public class DoABarrelRollProtocol implements Protocol { private ModConfigServer config = DEFAULT; private boolean configUpdated = false; - private final Reference2ReferenceMap syncStates = new Reference2ReferenceOpenHashMap<>(); - private final Reference2ReferenceMap scheduledKicks = new Reference2ReferenceOpenHashMap<>(); + private final Reference2ReferenceMap syncStates = Reference2ReferenceMaps.synchronize(new Reference2ReferenceOpenHashMap<>()); + private final Reference2ReferenceMap scheduledKicks = Reference2ReferenceMaps.synchronize(new Reference2ReferenceOpenHashMap<>()); public final Reference2BooleanMap isRollingMap = Reference2BooleanMaps.synchronize(new Reference2BooleanOpenHashMap<>()); public final Reference2FloatMap rollMap = Reference2FloatMaps.synchronize(new Reference2FloatOpenHashMap<>()); public final Reference2BooleanMap lastIsRollingMap = Reference2BooleanMaps.synchronize(new Reference2BooleanOpenHashMap<>()); @@ -99,14 +91,14 @@ public class DoABarrelRollProtocol implements Protocol { } @Override - public void handle(ServerPlayer player, @NotNull LeafCustomPayload payload) { + public void handle(ServerPlayer player, LeafCustomPayload payload) { switch (payload) { case ConfigUpdateC2SPacket ignored -> player.connection.send(Protocols.createPacket(new ConfigUpdateAckS2CPacket(PROTOCOL_VERSION, false))); case ConfigResponseC2SPacket configResponseC2SPacket -> { var reply = clientReplied(player.connection, configResponseC2SPacket); if (reply == HandshakeState.RESEND) { - sendHandshake(player); + sendHandshake(player.connection); } } case RollSyncC2SPacket rollSyncC2SPacket -> { @@ -138,41 +130,39 @@ public class DoABarrelRollProtocol implements Protocol { } @Override - public void tickTracker(ServerPlayer player) { - if (!isRollingMap.containsKey(player.connection)) { + public void tickPlayer(ServerPlayer player) { + ServerGamePacketListenerImpl connection = player.connection; + if (getHandshakeState(connection).state == HandshakeState.NOT_SENT) { + sendHandshake(connection); + } + if (!isRollingMap.containsKey(connection)) { return; } + if (!isRollingMap.getBoolean(connection)) { + rollMap.put(connection, 0.0F); + } - var isRolling = isRollingMap.getBoolean(player.connection); - var roll = rollMap.getFloat(player.connection); - var lastIsRolling = lastIsRollingMap.getBoolean(player.connection); - var lastRoll = lastRollMap.getFloat(player.connection); + boolean isRolling = isRollingMap.getBoolean(connection); + float roll = rollMap.getFloat(connection); + boolean lastIsRolling = lastIsRollingMap.getBoolean(connection); + float lastRoll = lastRollMap.getFloat(connection); if (isRolling == lastIsRolling && roll == lastRoll) { return; } var payload = new RollSyncS2CPacket(player.getId(), isRolling, roll); var packet = Protocols.createPacket(payload); - for (ServerPlayerConnection seenBy : player.moonrise$getTrackedEntity().seenBy()) { + var tracked = player.moonrise$getTrackedEntity(); + if (tracked == null) { + return; + } + for (ServerPlayerConnection seenBy : tracked.seenBy()) { if (seenBy instanceof ServerGamePacketListenerImpl conn && getHandshakeState(conn).state == HandshakeState.ACCEPTED) { seenBy.send(packet); } } - lastIsRollingMap.put(player.connection, isRolling); - lastRollMap.put(player.connection, roll); - } - - @Override - public void tickPlayer(ServerPlayer player) { - if (getHandshakeState(player.connection).state == HandshakeState.NOT_SENT) { - sendHandshake(player); - } - if (!isRollingMap.containsKey(player.connection)) { - return; - } - if (!isRollingMap.getBoolean(player.connection)) { - rollMap.put(player.connection, 0.0F); - } + lastIsRollingMap.put(connection, isRolling); + lastRollMap.put(connection, roll); } @Override @@ -190,7 +180,7 @@ public class DoABarrelRollProtocol implements Protocol { if (configUpdated) { configUpdated = false; for (ServerPlayer player : server.getPlayerList().players) { - sendHandshake(player); + sendHandshake(player.connection); } } } @@ -199,9 +189,9 @@ public class DoABarrelRollProtocol implements Protocol { return config.forceInstalled() ? OptionalInt.of(config.installedTimeout()) : OptionalInt.empty(); } - private void sendHandshake(ServerPlayer player) { - player.connection.send(Protocols.createPacket(initiateConfigSync(player.connection))); - configSentToClient(player.connection); + private void sendHandshake(ServerGamePacketListenerImpl connection) { + connection.send(Protocols.createPacket(initiateConfigSync(connection))); + configSentToClient(connection); } private void configSentToClient(ServerGamePacketListenerImpl handler) { @@ -255,7 +245,7 @@ public class DoABarrelRollProtocol implements Protocol { return info.state; } - private boolean isLimited(ServerGamePacketListenerImpl net) { + private boolean isLimited(ServerGamePacketListenerImpl ignore) { return true; // return net.getPlayer().getBukkitEntity().hasPermission(DoABarrelRoll.MODID + ".configure"); } @@ -266,19 +256,19 @@ public class DoABarrelRollProtocol implements Protocol { private ConfigSyncS2CPacket initiateConfigSync(ServerGamePacketListenerImpl handler) { var isLimited = isLimited(handler); - getHandshakeState(handler).isLimited = isLimited; + // getHandshakeState(handler).isLimited = isLimited; return new ConfigSyncS2CPacket(PROTOCOL_VERSION, config, isLimited, isLimited ? DEFAULT : config); } private static class ClientInfo { private HandshakeState state; private int protocolVersion; - private boolean isLimited; + // private boolean isLimited; - private ClientInfo(HandshakeState state, int protocolVersion, boolean isLimited) { + private ClientInfo(HandshakeState state, int protocolVersion, boolean ignore) { this.state = state; this.protocolVersion = protocolVersion; - this.isLimited = isLimited; + // this.isLimited = isLimited; } } diff --git a/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocol.java b/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocol.java index 61c5c529..f1b2bca7 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocol.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocol.java @@ -3,7 +3,6 @@ package org.dreeam.leaf.protocol; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; -import org.jetbrains.annotations.NotNull; import java.util.List; @@ -19,9 +18,7 @@ interface Protocol { void tickPlayer(ServerPlayer player); - void tickTracker(ServerPlayer player); - void disconnected(ServerPlayer conn); - void handle(ServerPlayer player, @NotNull LeafCustomPayload payload); + void handle(ServerPlayer player, LeafCustomPayload payload); } diff --git a/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocols.java b/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocols.java index 000b6f93..89701f15 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocols.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/protocol/Protocols.java @@ -61,12 +61,6 @@ public class Protocols { } } - public static void tickTracker(ServerPlayer player) { - for (Protocol protocol : PROTOCOLS) { - protocol.tickTracker(player); - } - } - public static void disconnected(ServerPlayer conn) { for (Protocol protocol : PROTOCOLS) { protocol.disconnected(conn);