minecraft-src/net/minecraft/network/protocol/common/ServerboundCustomClickActionPacket.java
2025-09-18 12:27:44 +00:00

32 lines
1.3 KiB
Java

package net.minecraft.network.protocol.common;
import io.netty.buffer.ByteBuf;
import java.util.Optional;
import net.minecraft.nbt.NbtAccounter;
import net.minecraft.nbt.Tag;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.PacketType;
import net.minecraft.resources.ResourceLocation;
public record ServerboundCustomClickActionPacket(ResourceLocation id, Optional<Tag> payload) implements Packet<ServerCommonPacketListener> {
private static final StreamCodec<ByteBuf, Optional<Tag>> UNTRUSTED_TAG_CODEC = ByteBufCodecs.optionalTagCodec(() -> new NbtAccounter(32768L, 16))
.apply(ByteBufCodecs.lengthPrefixed(65536));
public static final StreamCodec<ByteBuf, ServerboundCustomClickActionPacket> STREAM_CODEC = StreamCodec.composite(
ResourceLocation.STREAM_CODEC,
ServerboundCustomClickActionPacket::id,
UNTRUSTED_TAG_CODEC,
ServerboundCustomClickActionPacket::payload,
ServerboundCustomClickActionPacket::new
);
@Override
public PacketType<ServerboundCustomClickActionPacket> type() {
return CommonPacketTypes.SERVERBOUND_CUSTOM_CLICK_ACTION;
}
public void handle(ServerCommonPacketListener serverCommonPacketListener) {
serverCommonPacketListener.handleCustomClickAction(this);
}
}