From 06b6fa08d7c80afcf2862e8a7c1396cf5f62a40d Mon Sep 17 00:00:00 2001 From: Alemiz Date: Tue, 22 Oct 2024 17:48:29 +0200 Subject: [PATCH] Add support for 1.20.40 --- .../waterdog/waterdogpe/network/protocol/ProtocolCodecs.java | 1 + .../waterdogpe/network/protocol/ProtocolVersion.java | 4 +++- .../waterdogpe/network/protocol/rewrite/EntityMap.java | 5 +++++ src/main/java/dev/waterdog/waterdogpe/packs/PackManager.java | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolCodecs.java b/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolCodecs.java index 1d7e2e67..f8c8f01b 100644 --- a/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolCodecs.java +++ b/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolCodecs.java @@ -112,6 +112,7 @@ public class ProtocolCodecs { HANDLED_PACKETS.add(LevelChunkPacket.class); HANDLED_PACKETS.add(ClientCheatAbilityPacket.class); HANDLED_PACKETS.add(ToastRequestPacket.class); + HANDLED_PACKETS.add(MovementEffectPacket.class); } private static final List UPDATERS = new ObjectArrayList<>(); diff --git a/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolVersion.java b/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolVersion.java index 19428ae1..2783985e 100644 --- a/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolVersion.java +++ b/src/main/java/dev/waterdog/waterdogpe/network/protocol/ProtocolVersion.java @@ -63,6 +63,7 @@ import org.cloudburstmc.protocol.bedrock.codec.v686.Bedrock_v686; import org.cloudburstmc.protocol.bedrock.codec.v712.Bedrock_v712; import org.cloudburstmc.protocol.bedrock.codec.v729.Bedrock_v729; +import org.cloudburstmc.protocol.bedrock.codec.v748.Bedrock_v748; @ToString(exclude = {"defaultCodec", "bedrockCodec"}) public enum ProtocolVersion { @@ -111,7 +112,8 @@ public enum ProtocolVersion { MINECRAFT_PE_1_21_0(685, Bedrock_v685.CODEC), MINECRAFT_PE_1_21_2(686, Bedrock_v686.CODEC), MINECRAFT_PE_1_21_20(712, Bedrock_v712.CODEC), - MINECRAFT_PE_1_21_30(729, Bedrock_v729.CODEC); + MINECRAFT_PE_1_21_30(729, Bedrock_v729.CODEC), + MINECRAFT_PE_1_21_40(748, Bedrock_v748.CODEC); private static final ProtocolVersion[] VALUES = values(); private static final Int2ObjectMap VERSIONS = new Int2ObjectOpenHashMap<>(); diff --git a/src/main/java/dev/waterdog/waterdogpe/network/protocol/rewrite/EntityMap.java b/src/main/java/dev/waterdog/waterdogpe/network/protocol/rewrite/EntityMap.java index 15a1df48..7b00731e 100644 --- a/src/main/java/dev/waterdog/waterdogpe/network/protocol/rewrite/EntityMap.java +++ b/src/main/java/dev/waterdog/waterdogpe/network/protocol/rewrite/EntityMap.java @@ -332,6 +332,11 @@ public PacketSignal handle(AnimateEntityPacket packet) { return signal; } + @Override + public PacketSignal handle(MovementEffectPacket packet) { + return rewriteId(packet.getEntityRuntimeId(), packet::setEntityRuntimeId); + } + private PacketSignal rewriteMetadata(EntityDataMap metadata) { PacketSignal signal = PacketSignal.UNHANDLED; for (EntityDataType data : ENTITY_DATA_FIELDS) { diff --git a/src/main/java/dev/waterdog/waterdogpe/packs/PackManager.java b/src/main/java/dev/waterdog/waterdogpe/packs/PackManager.java index 6e2ab02d..ea8e63f6 100644 --- a/src/main/java/dev/waterdog/waterdogpe/packs/PackManager.java +++ b/src/main/java/dev/waterdog/waterdogpe/packs/PackManager.java @@ -161,7 +161,7 @@ public void rebuildPackets() { for (ResourcePack pack : this.packs.values()) { ResourcePacksInfoPacket.Entry infoEntry = new ResourcePacksInfoPacket.Entry(pack.getPackId().toString(), pack.getVersion().toString(), - pack.getPackSize(), pack.getContentKey(), "", pack.getContentKey().equals("") ? "" : pack.getPackId().toString(), false, false, false); + pack.getPackSize(), pack.getContentKey(), "", pack.getContentKey().equals("") ? "" : pack.getPackId().toString(), false, false, false, null); ResourcePackStackPacket.Entry stackEntry = new ResourcePackStackPacket.Entry(pack.getPackId().toString(), pack.getVersion().toString(), ""); if (pack.getType().equals(ResourcePack.TYPE_RESOURCES)) { this.packsInfoPacket.getResourcePackInfos().add(infoEntry);