From fa8f033813429d742152ca64938403b85a68fd3e Mon Sep 17 00:00:00 2001 From: Triassic Date: Sat, 28 Mar 2026 18:09:58 +0200 Subject: [PATCH] Use BuildPlatform enum in AddPlayerPacket and PlayerListPacket --- .../protocol/bedrock/test/TextSerializationTest.java | 2 ++ .../v388/serializer/AddPlayerSerializer_v388.java | 5 +++-- .../v388/serializer/PlayerListSerializer_v388.java | 5 +++-- .../v390/serializer/PlayerListSerializer_v390.java | 5 +++-- .../v503/serializer/AddPlayerSerializer_v503.java | 5 +++-- .../v534/serializer/AddPlayerSerializer_v534.java | 5 +++-- .../v557/serializer/AddPlayerSerializer_v557.java | 5 +++-- .../protocol/bedrock/data/BuildPlatform.java | 11 +++++------ .../protocol/bedrock/packet/AddPlayerPacket.java | 3 ++- .../protocol/bedrock/packet/PlayerListPacket.java | 3 ++- 10 files changed, 29 insertions(+), 20 deletions(-) diff --git a/adventure/src/test/java/org/cloudburstmc/protocol/bedrock/test/TextSerializationTest.java b/adventure/src/test/java/org/cloudburstmc/protocol/bedrock/test/TextSerializationTest.java index 79b1bef67..56b0ec19d 100644 --- a/adventure/src/test/java/org/cloudburstmc/protocol/bedrock/test/TextSerializationTest.java +++ b/adventure/src/test/java/org/cloudburstmc/protocol/bedrock/test/TextSerializationTest.java @@ -20,6 +20,7 @@ import org.cloudburstmc.protocol.bedrock.codec.v776.Bedrock_v776; import org.cloudburstmc.protocol.bedrock.data.Ability; import org.cloudburstmc.protocol.bedrock.data.AbilityLayer; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.data.GameType; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataMap; import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes; @@ -266,6 +267,7 @@ public void testBedrockComponentSurvivesAddPlayerPacketRoundTrip() { packet.setRotation(Vector3f.ZERO); packet.setDeviceId(""); packet.setHand(ItemData.AIR); + packet.setBuildPlatform(BuildPlatform.GOOGLE); packet.setGameType(GameType.SURVIVAL); packet.setPlatformChatId(""); diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/AddPlayerSerializer_v388.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/AddPlayerSerializer_v388.java index b26eefeaf..9bc216add 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/AddPlayerSerializer_v388.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/AddPlayerSerializer_v388.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; import org.cloudburstmc.protocol.bedrock.codec.v291.serializer.AddPlayerSerializer_v291; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.packet.AddPlayerPacket; @NoArgsConstructor(access = AccessLevel.PROTECTED) @@ -15,13 +16,13 @@ public class AddPlayerSerializer_v388 extends AddPlayerSerializer_v291 { public void serialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPacket packet) { super.serialize(buffer, helper, packet); - buffer.writeIntLE(packet.getBuildPlatform()); + buffer.writeIntLE(packet.getBuildPlatform().ordinal()); } @Override public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPacket packet) { super.deserialize(buffer, helper, packet); - packet.setBuildPlatform(buffer.readIntLE()); + packet.setBuildPlatform(BuildPlatform.from(buffer.readIntLE())); } } diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/PlayerListSerializer_v388.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/PlayerListSerializer_v388.java index 41c49a90f..e011cc4f3 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/PlayerListSerializer_v388.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v388/serializer/PlayerListSerializer_v388.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.packet.PlayerListPacket; import org.cloudburstmc.protocol.common.util.TextConverter; import org.cloudburstmc.protocol.common.util.VarInts; @@ -30,7 +31,7 @@ public void serialize(ByteBuf buffer, BedrockCodecHelper helper, PlayerListPacke helper.writeString(buffer, converter.serialize(entry.getName(CharSequence.class))); helper.writeString(buffer, entry.getXuid()); helper.writeString(buffer, entry.getPlatformChatId()); - buffer.writeIntLE(entry.getBuildPlatform()); + buffer.writeIntLE(entry.getBuildPlatform().ordinal()); helper.writeSkin(buffer, entry.getSkin()); buffer.writeBoolean(entry.isTeacher()); buffer.writeBoolean(entry.isHost()); @@ -53,7 +54,7 @@ public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, PlayerListPac entry.setName(converter.deserialize(helper.readString(buffer))); entry.setXuid(helper.readString(buffer)); entry.setPlatformChatId(helper.readString(buffer)); - entry.setBuildPlatform(buffer.readIntLE()); + entry.setBuildPlatform(BuildPlatform.from(buffer.readIntLE())); entry.setSkin(helper.readSkin(buffer)); entry.setTeacher(buffer.readBoolean()); entry.setHost(buffer.readBoolean()); diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v390/serializer/PlayerListSerializer_v390.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v390/serializer/PlayerListSerializer_v390.java index 5edfce337..8fafd3de7 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v390/serializer/PlayerListSerializer_v390.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v390/serializer/PlayerListSerializer_v390.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.packet.PlayerListPacket; import org.cloudburstmc.protocol.common.util.TextConverter; import org.cloudburstmc.protocol.common.util.VarInts; @@ -65,7 +66,7 @@ protected void writeEntryBase(ByteBuf buffer, BedrockCodecHelper helper, Entry e helper.writeString(buffer, converter.serialize(entry.getName(CharSequence.class))); helper.writeString(buffer, entry.getXuid()); helper.writeString(buffer, entry.getPlatformChatId()); - buffer.writeIntLE(entry.getBuildPlatform()); + buffer.writeIntLE(entry.getBuildPlatform().ordinal()); helper.writeSkin(buffer, entry.getSkin()); buffer.writeBoolean(entry.isTeacher()); buffer.writeBoolean(entry.isHost()); @@ -78,7 +79,7 @@ protected Entry readEntryBase(ByteBuf buffer, BedrockCodecHelper helper) { entry.setName(converter.deserialize(helper.readString(buffer))); entry.setXuid(helper.readString(buffer)); entry.setPlatformChatId(helper.readString(buffer)); - entry.setBuildPlatform(buffer.readIntLE()); + entry.setBuildPlatform(BuildPlatform.from(buffer.readIntLE())); entry.setSkin(helper.readSkin(buffer)); entry.setTeacher(buffer.readBoolean()); entry.setHost(buffer.readBoolean()); diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v503/serializer/AddPlayerSerializer_v503.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v503/serializer/AddPlayerSerializer_v503.java index d93cbcefe..27ce9bdcc 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v503/serializer/AddPlayerSerializer_v503.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v503/serializer/AddPlayerSerializer_v503.java @@ -4,6 +4,7 @@ import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; import org.cloudburstmc.protocol.bedrock.codec.v291.serializer.AdventureSettingsSerializer_v291; import org.cloudburstmc.protocol.bedrock.codec.v388.serializer.AddPlayerSerializer_v388; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.data.GameType; import org.cloudburstmc.protocol.bedrock.packet.AddPlayerPacket; import org.cloudburstmc.protocol.common.util.VarInts; @@ -28,7 +29,7 @@ public void serialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPacket AdventureSettingsSerializer_v291.INSTANCE.serialize(buffer, helper, packet.getAdventureSettings()); helper.writeArray(buffer, packet.getEntityLinks(), helper::writeEntityLink); helper.writeString(buffer, packet.getDeviceId()); - buffer.writeIntLE(packet.getBuildPlatform()); + buffer.writeIntLE(packet.getBuildPlatform().ordinal()); } @Override @@ -47,6 +48,6 @@ public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPack AdventureSettingsSerializer_v291.INSTANCE.deserialize(buffer, helper, packet.getAdventureSettings()); helper.readArray(buffer, packet.getEntityLinks(), helper::readEntityLink); packet.setDeviceId(helper.readString(buffer)); - packet.setBuildPlatform(buffer.readIntLE()); + packet.setBuildPlatform(BuildPlatform.from(buffer.readIntLE())); } } diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v534/serializer/AddPlayerSerializer_v534.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v534/serializer/AddPlayerSerializer_v534.java index a8d2ab20b..76d72e203 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v534/serializer/AddPlayerSerializer_v534.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v534/serializer/AddPlayerSerializer_v534.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; import org.cloudburstmc.protocol.bedrock.codec.v503.serializer.AddPlayerSerializer_v503; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.packet.AddPlayerPacket; import org.cloudburstmc.protocol.common.util.VarInts; @@ -27,7 +28,7 @@ public void serialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPacket helper.writePlayerAbilities(buffer, packet); helper.writeArray(buffer, packet.getEntityLinks(), helper::writeEntityLink); helper.writeString(buffer, packet.getDeviceId()); - buffer.writeIntLE(packet.getBuildPlatform()); + buffer.writeIntLE(packet.getBuildPlatform().ordinal()); } @Override @@ -45,6 +46,6 @@ public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPack helper.readPlayerAbilities(buffer, packet); helper.readArray(buffer, packet.getEntityLinks(), helper::readEntityLink); packet.setDeviceId(helper.readString(buffer)); - packet.setBuildPlatform(buffer.readIntLE()); + packet.setBuildPlatform(BuildPlatform.from(buffer.readIntLE())); } } diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v557/serializer/AddPlayerSerializer_v557.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v557/serializer/AddPlayerSerializer_v557.java index 8ea623701..075170cb5 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v557/serializer/AddPlayerSerializer_v557.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v557/serializer/AddPlayerSerializer_v557.java @@ -3,6 +3,7 @@ import io.netty.buffer.ByteBuf; import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper; import org.cloudburstmc.protocol.bedrock.codec.v534.serializer.AddPlayerSerializer_v534; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.packet.AddPlayerPacket; import org.cloudburstmc.protocol.common.util.VarInts; @@ -24,7 +25,7 @@ public void serialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPacket helper.writePlayerAbilities(buffer, packet); helper.writeArray(buffer, packet.getEntityLinks(), helper::writeEntityLink); helper.writeString(buffer, packet.getDeviceId()); - buffer.writeIntLE(packet.getBuildPlatform()); + buffer.writeIntLE(packet.getBuildPlatform().ordinal()); } @Override @@ -43,6 +44,6 @@ public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, AddPlayerPack helper.readPlayerAbilities(buffer, packet); helper.readArray(buffer, packet.getEntityLinks(), helper::readEntityLink); packet.setDeviceId(helper.readString(buffer)); - packet.setBuildPlatform(buffer.readIntLE()); + packet.setBuildPlatform(BuildPlatform.from(buffer.readIntLE())); } } diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BuildPlatform.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BuildPlatform.java index 9fa59582c..2f18b2bc8 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BuildPlatform.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/data/BuildPlatform.java @@ -1,15 +1,14 @@ package org.cloudburstmc.protocol.bedrock.data; public enum BuildPlatform { - - UNDEFINED, + UNKNOWN, /** * Android */ GOOGLE, IOS, /** - * Mac OS + * macOS */ OSX, /** @@ -23,16 +22,16 @@ public enum BuildPlatform { */ UWP, /** - * Educational edition + * Education Edition */ - WIN_32, + WIN32, DEDICATED, /** * Apple TV */ TV_OS, /** - * Playstation + * PlayStation */ SONY, /** diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AddPlayerPacket.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AddPlayerPacket.java index 7389593fd..8b3ae8c16 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AddPlayerPacket.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/AddPlayerPacket.java @@ -6,6 +6,7 @@ import lombok.ToString; import org.cloudburstmc.math.vector.Vector3f; import org.cloudburstmc.protocol.bedrock.data.AbilityLayer; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.data.GameType; import org.cloudburstmc.protocol.bedrock.data.PlayerAbilityHolder; import org.cloudburstmc.protocol.bedrock.data.PlayerPermission; @@ -36,7 +37,7 @@ public class AddPlayerPacket implements BedrockPacket, PlayerAbilityHolder { private ItemData hand; private AdventureSettingsPacket adventureSettings = new AdventureSettingsPacket(); private String deviceId; - private int buildPlatform; + private BuildPlatform buildPlatform; private GameType gameType; /** diff --git a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/PlayerListPacket.java b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/PlayerListPacket.java index effbbcdbc..b0c7a5cd9 100644 --- a/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/PlayerListPacket.java +++ b/bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/packet/PlayerListPacket.java @@ -4,6 +4,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; +import org.cloudburstmc.protocol.bedrock.data.BuildPlatform; import org.cloudburstmc.protocol.bedrock.data.skin.SerializedSkin; import org.cloudburstmc.protocol.common.PacketSignal; @@ -42,7 +43,7 @@ public final static class Entry { private CharSequence name; private String xuid; private String platformChatId; - private int buildPlatform; + private BuildPlatform buildPlatform; private SerializedSkin skin; private boolean teacher; private boolean host;