Skip to content

Commit ef0d7fa

Browse files
committed
v924 new packets
1 parent 5e6cad4 commit ef0d7fa

24 files changed

+687
-11
lines changed

bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v924/Bedrock_v924.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.cloudburstmc.protocol.bedrock.codec.v898.BedrockCodecHelper_v898;
77
import org.cloudburstmc.protocol.bedrock.codec.v898.Bedrock_v898;
88
import org.cloudburstmc.protocol.bedrock.codec.v924.serializer.*;
9+
import org.cloudburstmc.protocol.bedrock.data.PacketRecipient;
910
import org.cloudburstmc.protocol.bedrock.data.SoundEvent;
1011
import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataFormat;
1112
import org.cloudburstmc.protocol.bedrock.data.entity.EntityDataTypes;
@@ -62,5 +63,12 @@ public class Bedrock_v924 extends Bedrock_v898 {
6263
.updateSerializer(ServerboundDiagnosticsPacket.class, ServerboundDiagnosticsSerializer_v924.INSTANCE)
6364
.updateSerializer(StartGamePacket.class, StartGameSerializer_v924.INSTANCE)
6465
.updateSerializer(TextPacket.class, TextSerializer_v924.INSTANCE)
66+
.registerPacket(ClientboundDataDrivenUIShowScreenPacket::new, ClientboundDataDrivenUIShowScreenSerializer_v924.INSTANCE, 333, PacketRecipient.CLIENT)
67+
.registerPacket(ClientboundDataDrivenUICloseAllScreensPacket::new, ClientboundDataDrivenUICloseAllScreensSerializer_v924.INSTANCE, 334, PacketRecipient.CLIENT)
68+
.registerPacket(ClientboundDataDrivenUIReloadPacket::new, ClientboundDataDrivenUIReloadSerializer_v924.INSTANCE, 335, PacketRecipient.CLIENT)
69+
.registerPacket(ClientboundTextureShiftPacket::new, ClientboundTextureShiftSerializer_v924.INSTANCE, 336, PacketRecipient.CLIENT)
70+
.registerPacket(VoxelShapesPacket::new, VoxelShapesSerializer_v924.INSTANCE, 337, PacketRecipient.CLIENT)
71+
.registerPacket(CameraSplinePacket::new, CameraSplineSerializer_v924.INSTANCE, 338, PacketRecipient.CLIENT)
72+
.registerPacket(CameraAimAssistActorPriorityPacket::new, CameraAimAssistActorPrioritySerializer_v924.INSTANCE, 339, PacketRecipient.CLIENT)
6573
.build();
6674
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
2+
3+
import io.netty.buffer.ByteBuf;
4+
import lombok.AccessLevel;
5+
import lombok.RequiredArgsConstructor;
6+
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
7+
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
8+
import org.cloudburstmc.protocol.bedrock.data.camera.AimAssistActorPriorityData;
9+
import org.cloudburstmc.protocol.bedrock.packet.CameraAimAssistActorPriorityPacket;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
13+
14+
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
15+
public class CameraAimAssistActorPrioritySerializer_v924 implements BedrockPacketSerializer<CameraAimAssistActorPriorityPacket> {
16+
17+
public static final CameraAimAssistActorPrioritySerializer_v924 INSTANCE = new CameraAimAssistActorPrioritySerializer_v924();
18+
19+
@Override
20+
public void serialize(ByteBuf buffer, BedrockCodecHelper helper, CameraAimAssistActorPriorityPacket packet) {
21+
helper.writeArray(buffer, packet.getPriorityData(), (buf, value) -> {
22+
buf.writeIntLE(value.getPresetIndex());
23+
buf.writeIntLE(value.getCategoryIndex());
24+
buf.writeIntLE(value.getActorIndex());
25+
buf.writeIntLE(value.getPriorityValue());
26+
});
27+
}
28+
29+
@Override
30+
public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, CameraAimAssistActorPriorityPacket packet) {
31+
List<AimAssistActorPriorityData> priorityData = new ArrayList<>();
32+
helper.readArray(buffer, priorityData, (buf, h) ->
33+
new AimAssistActorPriorityData(buf.readIntLE(), buf.readIntLE(), buf.readIntLE(), buf.readIntLE()));
34+
packet.setPriorityData(priorityData);
35+
}
36+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
2+
3+
import io.netty.buffer.ByteBuf;
4+
import lombok.AccessLevel;
5+
import lombok.RequiredArgsConstructor;
6+
import org.cloudburstmc.math.vector.Vector3f;
7+
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
8+
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
9+
import org.cloudburstmc.protocol.bedrock.data.camera.CameraEase;
10+
import org.cloudburstmc.protocol.bedrock.data.camera.CameraSplineDefinition;
11+
import org.cloudburstmc.protocol.bedrock.data.camera.CameraSplineInstruction;
12+
import org.cloudburstmc.protocol.bedrock.data.camera.CameraSplineType;
13+
import org.cloudburstmc.protocol.bedrock.packet.CameraSplinePacket;
14+
15+
import java.util.ArrayList;
16+
import java.util.List;
17+
18+
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
19+
public class CameraSplineSerializer_v924 implements BedrockPacketSerializer<CameraSplinePacket> {
20+
21+
public static final CameraSplineSerializer_v924 INSTANCE = new CameraSplineSerializer_v924();
22+
23+
@Override
24+
public void serialize(ByteBuf buffer, BedrockCodecHelper helper, CameraSplinePacket packet) {
25+
helper.writeArray(buffer, packet.getSplines(), (buf, spline) -> {
26+
helper.writeString(buf, spline.getName());
27+
buf.writeFloatLE(spline.getInstruction().getTotalTime());
28+
buf.writeByte(spline.getInstruction().getType().ordinal());
29+
helper.writeArray(buf, spline.getInstruction().getCurve(), helper::writeVector3f);
30+
helper.writeArray(buf, spline.getInstruction().getProgressKeyFrames(), (buf2, frame) -> {
31+
buf2.writeFloatLE(frame.getValue());
32+
buf2.writeFloatLE(frame.getTime());
33+
buf2.writeIntLE(frame.getEasingFunc().ordinal());
34+
});
35+
helper.writeArray(buf, spline.getInstruction().getRotationOption(), (buf2, rotationOption) -> {
36+
helper.writeVector3f(buf2, rotationOption.getKeyFrameValues());
37+
buf2.writeFloatLE(rotationOption.getKeyFrameTimes());
38+
});
39+
});
40+
}
41+
42+
@Override
43+
public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, CameraSplinePacket packet) {
44+
List<CameraSplineDefinition> splines = new ArrayList<>();
45+
46+
helper.readArray(buffer, splines, (buf, h) -> {
47+
String name = helper.readString(buf);
48+
float totalTime = buf.readFloatLE();
49+
CameraSplineType type = CameraSplineType.values()[buf.readUnsignedByte()];
50+
List<Vector3f> curve = new ArrayList<>();
51+
helper.readArray(buf, curve, helper::readVector3f);
52+
List<CameraSplineInstruction.SplineProgressOption> progressKeyFrames = new ArrayList<>();
53+
helper.readArray(buf, progressKeyFrames, buf2 -> {
54+
float value = buf2.readFloatLE();
55+
float time = buf2.readFloatLE();
56+
CameraEase easingFunc = CameraEase.values()[buf2.readIntLE()];
57+
return new CameraSplineInstruction.SplineProgressOption(value, time, easingFunc);
58+
});
59+
List<CameraSplineInstruction.SplineRotationOption> rotationOption = new ArrayList<>();
60+
helper.readArray(buf, rotationOption, buf2 -> {
61+
Vector3f keyFrameValues = helper.readVector3f(buf2);
62+
float keyFrameTimes = buf2.readFloatLE();
63+
return new CameraSplineInstruction.SplineRotationOption(keyFrameValues, keyFrameTimes);
64+
});
65+
return new CameraSplineDefinition(name, new CameraSplineInstruction(totalTime, type, curve, progressKeyFrames, rotationOption));
66+
});
67+
68+
packet.setSplines(splines);
69+
}
70+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
2+
3+
import io.netty.buffer.ByteBuf;
4+
import lombok.AccessLevel;
5+
import lombok.RequiredArgsConstructor;
6+
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
7+
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
8+
import org.cloudburstmc.protocol.bedrock.packet.ClientboundDataDrivenUICloseAllScreensPacket;
9+
10+
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
11+
public class ClientboundDataDrivenUICloseAllScreensSerializer_v924 implements BedrockPacketSerializer<ClientboundDataDrivenUICloseAllScreensPacket> {
12+
13+
public static final ClientboundDataDrivenUICloseAllScreensSerializer_v924 INSTANCE = new ClientboundDataDrivenUICloseAllScreensSerializer_v924();
14+
15+
@Override
16+
public void serialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundDataDrivenUICloseAllScreensPacket packet) {
17+
18+
}
19+
20+
@Override
21+
public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundDataDrivenUICloseAllScreensPacket packet) {
22+
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
2+
3+
import io.netty.buffer.ByteBuf;
4+
import lombok.AccessLevel;
5+
import lombok.RequiredArgsConstructor;
6+
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
7+
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
8+
import org.cloudburstmc.protocol.bedrock.packet.ClientboundDataDrivenUIReloadPacket;
9+
10+
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
11+
public class ClientboundDataDrivenUIReloadSerializer_v924 implements BedrockPacketSerializer<ClientboundDataDrivenUIReloadPacket> {
12+
13+
public static final ClientboundDataDrivenUIReloadSerializer_v924 INSTANCE = new ClientboundDataDrivenUIReloadSerializer_v924();
14+
15+
@Override
16+
public void serialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundDataDrivenUIReloadPacket packet) {
17+
18+
}
19+
20+
@Override
21+
public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundDataDrivenUIReloadPacket packet) {
22+
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
2+
3+
import io.netty.buffer.ByteBuf;
4+
import lombok.AccessLevel;
5+
import lombok.RequiredArgsConstructor;
6+
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
7+
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
8+
import org.cloudburstmc.protocol.bedrock.packet.ClientboundDataDrivenUIShowScreenPacket;
9+
10+
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
11+
public class ClientboundDataDrivenUIShowScreenSerializer_v924 implements BedrockPacketSerializer<ClientboundDataDrivenUIShowScreenPacket> {
12+
13+
public static final ClientboundDataDrivenUIShowScreenSerializer_v924 INSTANCE = new ClientboundDataDrivenUIShowScreenSerializer_v924();
14+
15+
@Override
16+
public void serialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundDataDrivenUIShowScreenPacket packet) {
17+
helper.writeString(buffer, packet.getScreenId());
18+
}
19+
20+
@Override
21+
public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundDataDrivenUIShowScreenPacket packet) {
22+
packet.setScreenId(helper.readString(buffer));
23+
}
24+
}

bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v924/serializer/ClientboundDataStoreSerializer_v924.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
22

33
import io.netty.buffer.ByteBuf;
4-
import lombok.AccessLevel;
5-
import lombok.RequiredArgsConstructor;
64
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
7-
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
85
import org.cloudburstmc.protocol.bedrock.codec.v898.serializer.ClientboundDataStoreSerializer_v898;
96
import org.cloudburstmc.protocol.bedrock.data.datastore.DataStoreChange;
107
import org.cloudburstmc.protocol.bedrock.data.datastore.DataStoreRemoval;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
2+
3+
import io.netty.buffer.ByteBuf;
4+
import lombok.AccessLevel;
5+
import lombok.RequiredArgsConstructor;
6+
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
7+
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
8+
import org.cloudburstmc.protocol.bedrock.packet.ClientboundTextureShiftPacket;
9+
import org.cloudburstmc.protocol.common.util.VarInts;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
13+
14+
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
15+
public class ClientboundTextureShiftSerializer_v924 implements BedrockPacketSerializer<ClientboundTextureShiftPacket> {
16+
17+
public static final ClientboundTextureShiftSerializer_v924 INSTANCE = new ClientboundTextureShiftSerializer_v924();
18+
19+
@Override
20+
public void serialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundTextureShiftPacket packet) {
21+
buffer.writeByte(packet.getAction().ordinal());
22+
helper.writeString(buffer, packet.getCollectionName());
23+
helper.writeString(buffer, packet.getFromStep());
24+
helper.writeString(buffer, packet.getToStep());
25+
helper.writeArray(buffer, packet.getAllSteps(), helper::writeString);
26+
VarInts.writeUnsignedLong(buffer, packet.getCurrentLengthTicks());
27+
VarInts.writeUnsignedLong(buffer, packet.getTotalLengthTicks());
28+
buffer.writeBoolean(packet.isEnabled());
29+
}
30+
31+
@Override
32+
public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, ClientboundTextureShiftPacket packet) {
33+
packet.setAction(ClientboundTextureShiftPacket.Action.values()[buffer.readUnsignedByte()]);
34+
packet.setCollectionName(helper.readString(buffer));
35+
packet.setFromStep(helper.readString(buffer));
36+
packet.setToStep(helper.readString(buffer));
37+
List<String> allSteps = new ArrayList<>();
38+
helper.readArray(buffer, allSteps, helper::readString);
39+
packet.setAllSteps(allSteps);
40+
packet.setCurrentLengthTicks(VarInts.readUnsignedLong(buffer));
41+
packet.setTotalLengthTicks(VarInts.readUnsignedLong(buffer));
42+
packet.setEnabled(buffer.readBoolean());
43+
}
44+
}

bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v924/serializer/ServerboundDataStoreSerializer_v924.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package org.cloudburstmc.protocol.bedrock.codec.v924.serializer;
22

33
import io.netty.buffer.ByteBuf;
4-
import lombok.AccessLevel;
5-
import lombok.RequiredArgsConstructor;
64
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodecHelper;
7-
import org.cloudburstmc.protocol.bedrock.codec.BedrockPacketSerializer;
85
import org.cloudburstmc.protocol.bedrock.codec.v898.serializer.ServerboundDataStoreSerializer_v898;
96
import org.cloudburstmc.protocol.bedrock.packet.ServerboundDataStorePacket;
10-
import org.cloudburstmc.protocol.common.util.VarInts;
117

128
public class ServerboundDataStoreSerializer_v924 extends ServerboundDataStoreSerializer_v898 {
139

bedrock-codec/src/main/java/org/cloudburstmc/protocol/bedrock/codec/v924/serializer/StartGameSerializer_v924.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ public void deserialize(ByteBuf buffer, BedrockCodecHelper helper, StartGamePack
3838
helper.readString(buffer),
3939
helper.readString(buffer)
4040
));
41-
System.out.println(packet);
4241
}
4342

4443
@Override

0 commit comments

Comments
 (0)