mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
cleanup
This commit is contained in:
@@ -33,18 +33,6 @@ index f5f0e4f5d7a4b34514e102020d2a7be313292f7f..0baa48054beead8f187b56ea8d719166
|
|||||||
|
|
||||||
for (int i = 0; i < this.tickables.size(); i++) {
|
for (int i = 0; i < this.tickables.size(); i++) {
|
||||||
this.tickables.get(i).run();
|
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
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||||
index 09f517059aa47ca67329bc913243d4fdee09abe5..50cf63666071f5d01a85dfc6c6c45c19b05d8ec2 100644
|
index 09f517059aa47ca67329bc913243d4fdee09abe5..50cf63666071f5d01a85dfc6c6c45c19b05d8ec2 100644
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
|||||||
@@ -1,14 +1,7 @@
|
|||||||
package org.dreeam.leaf.protocol;
|
package org.dreeam.leaf.protocol;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import it.unimi.dsi.fastutil.objects.Reference2BooleanMap;
|
import it.unimi.dsi.fastutil.objects.*;
|
||||||
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 net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.server.MinecraftServer;
|
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.ModConfigServer;
|
||||||
import org.dreeam.leaf.protocol.DoABarrelRollPackets.RollSyncC2SPacket;
|
import org.dreeam.leaf.protocol.DoABarrelRollPackets.RollSyncC2SPacket;
|
||||||
import org.dreeam.leaf.protocol.DoABarrelRollPackets.RollSyncS2CPacket;
|
import org.dreeam.leaf.protocol.DoABarrelRollPackets.RollSyncS2CPacket;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.bukkit.event.player.PlayerKickEvent;
|
import org.bukkit.event.player.PlayerKickEvent;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -54,8 +46,8 @@ public class DoABarrelRollProtocol implements Protocol {
|
|||||||
private ModConfigServer config = DEFAULT;
|
private ModConfigServer config = DEFAULT;
|
||||||
private boolean configUpdated = false;
|
private boolean configUpdated = false;
|
||||||
|
|
||||||
private final Reference2ReferenceMap<ServerGamePacketListenerImpl, ClientInfo> syncStates = new Reference2ReferenceOpenHashMap<>();
|
private final Reference2ReferenceMap<ServerGamePacketListenerImpl, ClientInfo> syncStates = Reference2ReferenceMaps.synchronize(new Reference2ReferenceOpenHashMap<>());
|
||||||
private final Reference2ReferenceMap<ServerGamePacketListenerImpl, DelayedRunnable> scheduledKicks = new Reference2ReferenceOpenHashMap<>();
|
private final Reference2ReferenceMap<ServerGamePacketListenerImpl, DelayedRunnable> scheduledKicks = Reference2ReferenceMaps.synchronize(new Reference2ReferenceOpenHashMap<>());
|
||||||
public final Reference2BooleanMap<ServerGamePacketListenerImpl> isRollingMap = Reference2BooleanMaps.synchronize(new Reference2BooleanOpenHashMap<>());
|
public final Reference2BooleanMap<ServerGamePacketListenerImpl> isRollingMap = Reference2BooleanMaps.synchronize(new Reference2BooleanOpenHashMap<>());
|
||||||
public final Reference2FloatMap<ServerGamePacketListenerImpl> rollMap = Reference2FloatMaps.synchronize(new Reference2FloatOpenHashMap<>());
|
public final Reference2FloatMap<ServerGamePacketListenerImpl> rollMap = Reference2FloatMaps.synchronize(new Reference2FloatOpenHashMap<>());
|
||||||
public final Reference2BooleanMap<ServerGamePacketListenerImpl> lastIsRollingMap = Reference2BooleanMaps.synchronize(new Reference2BooleanOpenHashMap<>());
|
public final Reference2BooleanMap<ServerGamePacketListenerImpl> lastIsRollingMap = Reference2BooleanMaps.synchronize(new Reference2BooleanOpenHashMap<>());
|
||||||
@@ -99,14 +91,14 @@ public class DoABarrelRollProtocol implements Protocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(ServerPlayer player, @NotNull LeafCustomPayload payload) {
|
public void handle(ServerPlayer player, LeafCustomPayload payload) {
|
||||||
switch (payload) {
|
switch (payload) {
|
||||||
case ConfigUpdateC2SPacket ignored ->
|
case ConfigUpdateC2SPacket ignored ->
|
||||||
player.connection.send(Protocols.createPacket(new ConfigUpdateAckS2CPacket(PROTOCOL_VERSION, false)));
|
player.connection.send(Protocols.createPacket(new ConfigUpdateAckS2CPacket(PROTOCOL_VERSION, false)));
|
||||||
case ConfigResponseC2SPacket configResponseC2SPacket -> {
|
case ConfigResponseC2SPacket configResponseC2SPacket -> {
|
||||||
var reply = clientReplied(player.connection, configResponseC2SPacket);
|
var reply = clientReplied(player.connection, configResponseC2SPacket);
|
||||||
if (reply == HandshakeState.RESEND) {
|
if (reply == HandshakeState.RESEND) {
|
||||||
sendHandshake(player);
|
sendHandshake(player.connection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case RollSyncC2SPacket rollSyncC2SPacket -> {
|
case RollSyncC2SPacket rollSyncC2SPacket -> {
|
||||||
@@ -138,41 +130,39 @@ public class DoABarrelRollProtocol implements Protocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tickTracker(ServerPlayer player) {
|
public void tickPlayer(ServerPlayer player) {
|
||||||
if (!isRollingMap.containsKey(player.connection)) {
|
ServerGamePacketListenerImpl connection = player.connection;
|
||||||
|
if (getHandshakeState(connection).state == HandshakeState.NOT_SENT) {
|
||||||
|
sendHandshake(connection);
|
||||||
|
}
|
||||||
|
if (!isRollingMap.containsKey(connection)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (!isRollingMap.getBoolean(connection)) {
|
||||||
|
rollMap.put(connection, 0.0F);
|
||||||
|
}
|
||||||
|
|
||||||
var isRolling = isRollingMap.getBoolean(player.connection);
|
boolean isRolling = isRollingMap.getBoolean(connection);
|
||||||
var roll = rollMap.getFloat(player.connection);
|
float roll = rollMap.getFloat(connection);
|
||||||
var lastIsRolling = lastIsRollingMap.getBoolean(player.connection);
|
boolean lastIsRolling = lastIsRollingMap.getBoolean(connection);
|
||||||
var lastRoll = lastRollMap.getFloat(player.connection);
|
float lastRoll = lastRollMap.getFloat(connection);
|
||||||
if (isRolling == lastIsRolling && roll == lastRoll) {
|
if (isRolling == lastIsRolling && roll == lastRoll) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var payload = new RollSyncS2CPacket(player.getId(), isRolling, roll);
|
var payload = new RollSyncS2CPacket(player.getId(), isRolling, roll);
|
||||||
var packet = Protocols.createPacket(payload);
|
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
|
if (seenBy instanceof ServerGamePacketListenerImpl conn
|
||||||
&& getHandshakeState(conn).state == HandshakeState.ACCEPTED) {
|
&& getHandshakeState(conn).state == HandshakeState.ACCEPTED) {
|
||||||
seenBy.send(packet);
|
seenBy.send(packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lastIsRollingMap.put(player.connection, isRolling);
|
lastIsRollingMap.put(connection, isRolling);
|
||||||
lastRollMap.put(player.connection, roll);
|
lastRollMap.put(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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -190,7 +180,7 @@ public class DoABarrelRollProtocol implements Protocol {
|
|||||||
if (configUpdated) {
|
if (configUpdated) {
|
||||||
configUpdated = false;
|
configUpdated = false;
|
||||||
for (ServerPlayer player : server.getPlayerList().players) {
|
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();
|
return config.forceInstalled() ? OptionalInt.of(config.installedTimeout()) : OptionalInt.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendHandshake(ServerPlayer player) {
|
private void sendHandshake(ServerGamePacketListenerImpl connection) {
|
||||||
player.connection.send(Protocols.createPacket(initiateConfigSync(player.connection)));
|
connection.send(Protocols.createPacket(initiateConfigSync(connection)));
|
||||||
configSentToClient(player.connection);
|
configSentToClient(connection);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void configSentToClient(ServerGamePacketListenerImpl handler) {
|
private void configSentToClient(ServerGamePacketListenerImpl handler) {
|
||||||
@@ -255,7 +245,7 @@ public class DoABarrelRollProtocol implements Protocol {
|
|||||||
return info.state;
|
return info.state;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isLimited(ServerGamePacketListenerImpl net) {
|
private boolean isLimited(ServerGamePacketListenerImpl ignore) {
|
||||||
return true;
|
return true;
|
||||||
// return net.getPlayer().getBukkitEntity().hasPermission(DoABarrelRoll.MODID + ".configure");
|
// return net.getPlayer().getBukkitEntity().hasPermission(DoABarrelRoll.MODID + ".configure");
|
||||||
}
|
}
|
||||||
@@ -266,19 +256,19 @@ public class DoABarrelRollProtocol implements Protocol {
|
|||||||
|
|
||||||
private ConfigSyncS2CPacket initiateConfigSync(ServerGamePacketListenerImpl handler) {
|
private ConfigSyncS2CPacket initiateConfigSync(ServerGamePacketListenerImpl handler) {
|
||||||
var isLimited = isLimited(handler);
|
var isLimited = isLimited(handler);
|
||||||
getHandshakeState(handler).isLimited = isLimited;
|
// getHandshakeState(handler).isLimited = isLimited;
|
||||||
return new ConfigSyncS2CPacket(PROTOCOL_VERSION, config, isLimited, isLimited ? DEFAULT : config);
|
return new ConfigSyncS2CPacket(PROTOCOL_VERSION, config, isLimited, isLimited ? DEFAULT : config);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ClientInfo {
|
private static class ClientInfo {
|
||||||
private HandshakeState state;
|
private HandshakeState state;
|
||||||
private int protocolVersion;
|
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.state = state;
|
||||||
this.protocolVersion = protocolVersion;
|
this.protocolVersion = protocolVersion;
|
||||||
this.isLimited = isLimited;
|
// this.isLimited = isLimited;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package org.dreeam.leaf.protocol;
|
|||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -19,9 +18,7 @@ interface Protocol {
|
|||||||
|
|
||||||
void tickPlayer(ServerPlayer player);
|
void tickPlayer(ServerPlayer player);
|
||||||
|
|
||||||
void tickTracker(ServerPlayer player);
|
|
||||||
|
|
||||||
void disconnected(ServerPlayer conn);
|
void disconnected(ServerPlayer conn);
|
||||||
|
|
||||||
void handle(ServerPlayer player, @NotNull LeafCustomPayload payload);
|
void handle(ServerPlayer player, LeafCustomPayload payload);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
public static void disconnected(ServerPlayer conn) {
|
||||||
for (Protocol protocol : PROTOCOLS) {
|
for (Protocol protocol : PROTOCOLS) {
|
||||||
protocol.disconnected(conn);
|
protocol.disconnected(conn);
|
||||||
|
|||||||
Reference in New Issue
Block a user