Files
KaiijuMC/patches/server/0006-Send-null-entity-packets.patch
Sofiane H. Djerbi dd425fd8f0 Update patches
2023-06-11 22:25:25 +03:00

60 lines
3.0 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
Date: Thu, 16 Feb 2023 01:49:54 +0200
Subject: [PATCH] Send null entity packets
This is from Purpur. Don't send null entity packets.
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
index 7c6d43d8a360530344ef296f4477750c8a298607..ab08e11f13921163b8ff1ff51ff9e9b86d2b47c7 100644
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
@@ -198,7 +198,10 @@ public class KaiijuConfig {
private static void regionFormatSettings() {
regionFormatDebug = getBoolean("region-format.debug", regionFormatDebug);
}
+
+ public static boolean sendNullEntityPackets = true;
private static void networkSettings() {
+ sendNullEntityPackets = getBoolean("network.send-null-entity-packets", sendNullEntityPackets);
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 6670e657e08e130f7e0368f418379fd1ece00cdf..5558d87ef182f82be7877455dd027082c6a80632 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -201,6 +201,11 @@ public class ServerEntity {
flag4 = true;
flag5 = true;
}
+ // Kaiiju start - Don't send null move entity packets
+ if (!dev.kaiijumc.kaiiju.KaiijuConfig.sendNullEntityPackets && isNullMovePacket(packet1)) {
+ packet1 = null;
+ }
+ // Kaiiju end
}
if ((this.trackDelta || this.entity.hasImpulse || this.entity instanceof LivingEntity && ((LivingEntity) this.entity).isFallFlying()) && this.tickCount > 0) {
@@ -273,6 +278,20 @@ public class ServerEntity {
});
}
+ // Kaiiju start - Don't send null move entity packets
+ private boolean isNullMovePacket(Packet<?> packet) {
+ if (packet instanceof ClientboundMoveEntityPacket move) {
+ if (packet instanceof ClientboundMoveEntityPacket.Pos)
+ return move.getXa() == 0 && move.getYa() == 0 && move.getZa() == 0;
+ if (packet instanceof ClientboundMoveEntityPacket.PosRot)
+ return move.getXa() == 0 && move.getYa() == 0 && move.getZa() == 0 && move.getyRot() == 0 && move.getxRot() == 0;
+ if (packet instanceof ClientboundMoveEntityPacket.Rot)
+ return move.getyRot() == 0 && move.getxRot() == 0;
+ }
+ return false;
+ }
+ // Kaiiju end
+
public void removePairing(ServerPlayer player) {
this.entity.stopSeenByPlayer(player);
player.connection.send(new ClientboundRemoveEntitiesPacket(new int[]{this.entity.getId()}));