Skip to content
This repository was archived by the owner on Jun 18, 2026. It is now read-only.

Commit 8fadbfb

Browse files
committed
feat: preserve NetEase PlayerAuthInput and Text packet extras
1 parent 751829f commit 8fadbfb

6 files changed

Lines changed: 34 additions & 4 deletions

File tree

‎src/main/java/org/allaymc/protocol/extension/codec/v630/Bedrock_v630_NetEase.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.allaymc.protocol.extension.packet.ConfirmSkinPacket;
1111
import org.allaymc.protocol.extension.packet.NetEaseJsonPacket;
1212
import org.allaymc.protocol.extension.packet.NetEasePlayerAuthInputPacket;
13+
import org.allaymc.protocol.extension.packet.NetEaseTextPacket;
1314
import org.allaymc.protocol.extension.packet.PyRpcPacket;
1415
import org.allaymc.protocol.extension.packet.StoreBuySuccessPacket;
1516
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec;
@@ -41,7 +42,9 @@ public class Bedrock_v630_NetEase extends Bedrock_v630 {
4142
.updateFactory(PlayerAuthInputPacket.class, NetEasePlayerAuthInputPacket::new)
4243
.updateSerializer(PlayerAuthInputPacket.class, PlayerAuthInputSerializer_v630_NetEase.INSTANCE)
4344
.aliasPacket(NetEasePlayerAuthInputPacket.class, PlayerAuthInputPacket.class)
45+
.updateFactory(TextPacket.class, NetEaseTextPacket::new)
4446
.updateSerializer(TextPacket.class, TextSerializer_v630_NetEase.INSTANCE)
47+
.aliasPacket(NetEaseTextPacket.class, TextPacket.class)
4548
.updateSerializer(PlayerEnchantOptionsPacket.class, PlayerEnchantOptionsSerializer_v407_NetEase.INSTANCE)
4649
.registerPacket(PyRpcPacket::new, PyRpcSerializer.INSTANCE, 200, PacketRecipient.BOTH)
4750
.registerPacket(StoreBuySuccessPacket::new, StoreBuySuccessSerializer.INSTANCE, 202, PacketRecipient.BOTH) // TODO: check packet recipient

‎src/main/java/org/allaymc/protocol/extension/codec/v630/serializer/TextSerializer_v630_NetEase.java‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.allaymc.protocol.extension.codec.v630.serializer;
22

33
import io.netty.buffer.ByteBuf;
4+
import org.allaymc.protocol.extension.packet.NetEaseTextPacket;
45
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
56
import org.cloudburstmc.protocol.bedrock.codec.v554.serializer.TextSerializer_v554;
67
import org.cloudburstmc.protocol.bedrock.packet.TextPacket;
@@ -18,7 +19,8 @@ public void serialize(ByteBuf buffer, BedrockCodecHelper helper, TextPacket pack
1819

1920
var type = packet.getType();
2021
if (type == TextPacket.Type.CHAT || type == TextPacket.Type.POPUP) {
21-
helper.writeString(buffer, "");
22+
String unknown = packet instanceof NetEaseTextPacket netEase ? netEase.getUnknown() : "";
23+
helper.writeString(buffer, unknown);
2224
}
2325
}
2426

@@ -28,7 +30,10 @@ public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, TextPacket pa
2830

2931
var type = packet.getType();
3032
if (type == TextPacket.Type.CHAT || type == TextPacket.Type.POPUP) {
31-
helper.readString(buffer);
33+
String unknown = helper.readString(buffer);
34+
if (packet instanceof NetEaseTextPacket netEase) {
35+
netEase.setUnknown(unknown);
36+
}
3237
}
3338
}
3439
}

‎src/main/java/org/allaymc/protocol/extension/codec/v686/Bedrock_v686_NetEase.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.allaymc.protocol.extension.packet.ConfirmSkinPacket;
1010
import org.allaymc.protocol.extension.packet.NetEaseJsonPacket;
1111
import org.allaymc.protocol.extension.packet.NetEasePlayerAuthInputPacket;
12+
import org.allaymc.protocol.extension.packet.NetEaseTextPacket;
1213
import org.allaymc.protocol.extension.packet.PyRpcPacket;
1314
import org.allaymc.protocol.extension.packet.StoreBuySuccessPacket;
1415
import org.allaymc.protocol.extension.codec.common.serializer.PlayerEnchantOptionsSerializer_v407_NetEase;
@@ -40,7 +41,9 @@ public class Bedrock_v686_NetEase extends Bedrock_v686 {
4041
.updateFactory(PlayerAuthInputPacket.class, NetEasePlayerAuthInputPacket::new)
4142
.updateSerializer(PlayerAuthInputPacket.class, PlayerAuthInputSerializer_v686_NetEase.INSTANCE)
4243
.aliasPacket(NetEasePlayerAuthInputPacket.class, PlayerAuthInputPacket.class)
44+
.updateFactory(TextPacket.class, NetEaseTextPacket::new)
4345
.updateSerializer(TextPacket.class, TextSerializer_v686_NetEase.INSTANCE)
46+
.aliasPacket(NetEaseTextPacket.class, TextPacket.class)
4447
.updateSerializer(PlayerEnchantOptionsPacket.class, PlayerEnchantOptionsSerializer_v407_NetEase.INSTANCE)
4548
.registerPacket(PyRpcPacket::new, PyRpcSerializer.INSTANCE, 200, PacketRecipient.BOTH)
4649
.registerPacket(StoreBuySuccessPacket::new, StoreBuySuccessSerializer.INSTANCE, 202, PacketRecipient.BOTH) // TODO: check packet recipient

‎src/main/java/org/allaymc/protocol/extension/codec/v686/serializer/TextSerializer_v686_NetEase.java‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.allaymc.protocol.extension.codec.v686.serializer;
22

33
import io.netty.buffer.ByteBuf;
4+
import org.allaymc.protocol.extension.packet.NetEaseTextPacket;
45
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
56
import org.cloudburstmc.protocol.bedrock.codec.v685.serializer.TextSerializer_v685;
67
import org.cloudburstmc.protocol.bedrock.packet.TextPacket;
@@ -15,7 +16,8 @@ public void serialize(ByteBuf buffer, BedrockCodecHelper helper, TextPacket pack
1516

1617
var type = packet.getType();
1718
if (type == TextPacket.Type.CHAT || type == TextPacket.Type.POPUP) {
18-
helper.writeString(buffer, "");
19+
String unknown = packet instanceof NetEaseTextPacket netEase ? netEase.getUnknown() : "";
20+
helper.writeString(buffer, unknown);
1921
}
2022
}
2123

@@ -25,7 +27,10 @@ public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, TextPacket pa
2527

2628
var type = packet.getType();
2729
if (type == TextPacket.Type.CHAT || type == TextPacket.Type.POPUP) {
28-
helper.readString(buffer);
30+
String unknown = helper.readString(buffer);
31+
if (packet instanceof NetEaseTextPacket netEase) {
32+
netEase.setUnknown(unknown);
33+
}
2934
}
3035
}
3136
}

‎src/main/java/org/allaymc/protocol/extension/codec/v766/Bedrock_v766_NetEase.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.allaymc.protocol.extension.packet.ConfirmSkinPacket;
77
import org.allaymc.protocol.extension.packet.NetEaseJsonPacket;
88
import org.allaymc.protocol.extension.packet.NetEasePlayerAuthInputPacket;
9+
import org.allaymc.protocol.extension.packet.NetEaseTextPacket;
910
import org.allaymc.protocol.extension.packet.PyRpcPacket;
1011
import org.allaymc.protocol.extension.packet.StoreBuySuccessPacket;
1112
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec;
@@ -37,7 +38,9 @@ public class Bedrock_v766_NetEase extends Bedrock_v766 {
3738
.updateFactory(PlayerAuthInputPacket.class, NetEasePlayerAuthInputPacket::new)
3839
.updateSerializer(PlayerAuthInputPacket.class, PlayerAuthInputSerializer_v766_NetEase.INSTANCE)
3940
.aliasPacket(NetEasePlayerAuthInputPacket.class, PlayerAuthInputPacket.class)
41+
.updateFactory(TextPacket.class, NetEaseTextPacket::new)
4042
.updateSerializer(TextPacket.class, TextSerializer_v686_NetEase.INSTANCE)
43+
.aliasPacket(NetEaseTextPacket.class, TextPacket.class)
4144
.updateSerializer(PlayerEnchantOptionsPacket.class, PlayerEnchantOptionsSerializer_v407_NetEase.INSTANCE)
4245
.registerPacket(PyRpcPacket::new, PyRpcSerializer.INSTANCE, 200, PacketRecipient.BOTH)
4346
.registerPacket(StoreBuySuccessPacket::new, StoreBuySuccessSerializer.INSTANCE, 202, PacketRecipient.BOTH) // TODO: check packet recipient
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.allaymc.protocol.extension.packet;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import org.cloudburstmc.protocol.bedrock.packet.TextPacket;
6+
7+
@Getter
8+
@Setter
9+
public class NetEaseTextPacket extends TextPacket {
10+
private String unknown = "";
11+
}

0 commit comments

Comments
 (0)