Class PacketDefinition<T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>

java.lang.Object
my.celium.org.network.PacketDefinition<T>
Type Parameters:
T - payload type

public final class PacketDefinition<T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> extends Object
Definition of one packet: its channel id, codec, direction and handler.

Payloads are plain CustomPacketPayload implementations owned by the mod, e.g.:

public record GreetPacket(String message) implements CustomPacketPayload {
    public static final Type<GreetPacket> TYPE = new Type<>(Identifier.fromNamespaceAndPath("mymod", "greet"));
    public static final StreamCodec<FriendlyByteBuf, GreetPacket> CODEC =
        StreamCodec.composite(ByteBufCodecs.STRING_UTF8, GreetPacket::message, GreetPacket::new);

    @Override
    public Type<? extends CustomPacketPayload> type() {
        return TYPE;
    }
}
  • Method Summary

    Modifier and Type
    Method
    Description
    net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, T>
     
     
     
    net.minecraft.resources.Identifier
    id()
    Channel id, e.g.
    static <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PacketDefinition<T>
    toClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, T> codec, PacketHandler<T> handler)
    Server -> client packet.
    static <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PacketDefinition<T>
    toServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, T> codec, PacketHandler<T> handler)
    Client -> server packet.
    net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T>
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • toClient

      public static <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PacketDefinition<T> toClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, T> codec, PacketHandler<T> handler)
      Server -> client packet.
    • toServer

      public static <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PacketDefinition<T> toServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, T> codec, PacketHandler<T> handler)
      Client -> server packet.
    • type

      public net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type()
    • id

      public net.minecraft.resources.Identifier id()
      Channel id, e.g. mymod:greet.
    • codec

      public net.minecraft.network.codec.StreamCodec<net.minecraft.network.FriendlyByteBuf, T> codec()
    • direction

      public PacketDirection direction()
    • handler

      public PacketHandler<T> handler()