CraftBukkit/nms-patches/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.patch
2023-09-22 02:40:00 +10:00

44 lines
2.4 KiB
Diff

--- a/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.java
+++ b/net/minecraft/network/protocol/common/ServerboundCustomPayloadPacket.java
@@ -12,7 +12,7 @@
public record ServerboundCustomPayloadPacket(CustomPacketPayload payload) implements Packet<ServerCommonPacketListener> {
private static final int MAX_PAYLOAD_SIZE = 32767;
- private static final Map<MinecraftKey, PacketDataSerializer.a<? extends CustomPacketPayload>> KNOWN_TYPES = ImmutableMap.builder().put(BrandPayload.ID, BrandPayload::new).build();
+ private static final Map<MinecraftKey, PacketDataSerializer.a<? extends CustomPacketPayload>> KNOWN_TYPES = ImmutableMap.<MinecraftKey, PacketDataSerializer.a<? extends CustomPacketPayload>>builder().put(BrandPayload.ID, BrandPayload::new).build(); // CraftBukkit - decompile error
public ServerboundCustomPayloadPacket(PacketDataSerializer packetdataserializer) {
this(readPayload(packetdataserializer.readResourceLocation(), packetdataserializer));
@@ -24,12 +24,13 @@
return (CustomPacketPayload) (packetdataserializer_a != null ? (CustomPacketPayload) packetdataserializer_a.apply(packetdataserializer) : readUnknownPayload(minecraftkey, packetdataserializer));
}
- private static DiscardedPayload readUnknownPayload(MinecraftKey minecraftkey, PacketDataSerializer packetdataserializer) {
+ private static UnknownPayload readUnknownPayload(MinecraftKey minecraftkey, PacketDataSerializer packetdataserializer) { // CraftBukkit
int i = packetdataserializer.readableBytes();
if (i >= 0 && i <= 32767) {
- packetdataserializer.skipBytes(i);
- return new DiscardedPayload(minecraftkey);
+ // CraftBukkit start
+ return new UnknownPayload(minecraftkey, packetdataserializer.readBytes(i));
+ // CraftBukkit end
} else {
throw new IllegalArgumentException("Payload may not be larger than 32767 bytes");
}
@@ -44,4 +45,14 @@
public void handle(ServerCommonPacketListener servercommonpacketlistener) {
servercommonpacketlistener.handleCustomPayload(this);
}
+
+ // CraftBukkit start
+ public record UnknownPayload(MinecraftKey id, io.netty.buffer.ByteBuf data) implements CustomPacketPayload {
+
+ @Override
+ public void write(PacketDataSerializer packetdataserializer) {
+ packetdataserializer.writeBytes(data);
+ }
+ }
+ // CraftBukkit end
}