Class PayloadRegistrar

java.lang.Object
net.neoforged.neoforge.network.registration.PayloadRegistrar

public class PayloadRegistrar extends Object
Builder-style helper for registering CustomPacketPayloads, used for modded networking.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private boolean
     
     
    private String
     
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
     
     
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    commonBidirectional(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a bidirectional payload for all phases.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    commonToClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a client-bound payload for all phases.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    commonToServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a server-bound payload for all phases.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    configurationBidirectional(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a bidirectional payload for the configuration phase.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    configurationToClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a client-bound payload for the configuration phase.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    configurationToServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a server-bound payload for the configuration phase.
    Creates a copy of this registrar with a different default handling thread.
    Creates a copy of this registrar with optional mode enabled.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    playBidirectional(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.RegistryFriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a bidirectional payload for the play phase.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    playToClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.RegistryFriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a client-bound payload for the play phase.
    <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload>
    PayloadRegistrar
    playToServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.RegistryFriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
    Registers a server-bound payload for the play phase.
    private <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload, B extends net.minecraft.network.FriendlyByteBuf>
    void
    register(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super B,T> codec, IPayloadHandler<T> handler, List<net.minecraft.network.ConnectionProtocol> protocols, Optional<net.minecraft.network.protocol.PacketFlow> flow, String version, boolean optional)
     
    versioned(String version)
    Creates a copy of this registrar with a different version.

    Methods inherited from class java.lang.Object

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

    • version

      private String version
    • optional

      private boolean optional
    • thread

      private HandlerThread thread
  • Constructor Details

    • PayloadRegistrar

      public PayloadRegistrar(String version)
    • PayloadRegistrar

      private PayloadRegistrar(PayloadRegistrar source)
  • Method Details

    • playToClient

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar playToClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.RegistryFriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a client-bound payload for the play phase.
    • playToServer

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar playToServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.RegistryFriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a server-bound payload for the play phase.
    • playBidirectional

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar playBidirectional(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.RegistryFriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a bidirectional payload for the play phase.

      Consider using DirectionalPayloadHandler to wrap client and server handlers.

    • configurationToClient

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar configurationToClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a client-bound payload for the configuration phase.
    • configurationToServer

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar configurationToServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a server-bound payload for the configuration phase.
    • configurationBidirectional

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar configurationBidirectional(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a bidirectional payload for the configuration phase.

      Consider using DirectionalPayloadHandler to wrap client and server handlers.

    • commonToClient

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar commonToClient(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a client-bound payload for all phases.
    • commonToServer

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar commonToServer(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a server-bound payload for all phases.
    • commonBidirectional

      public <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload> PayloadRegistrar commonBidirectional(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super net.minecraft.network.FriendlyByteBuf,T> reader, IPayloadHandler<T> handler)
      Registers a bidirectional payload for all phases.

      Consider using DirectionalPayloadHandler to wrap client and server handlers.

    • executesOn

      public PayloadRegistrar executesOn(HandlerThread thread)
      Creates a copy of this registrar with a different default handling thread.

      When the handling thread is set to HandlerThread.MAIN, all registered handlers will be wrapped in MainThreadPayloadHandler.

      The initial handling thread is HandlerThread.MAIN.

      Parameters:
      thread - The default handling thread.
      Returns:
      A new registrar, which will map payload handlers to the desired thread.
    • versioned

      public PayloadRegistrar versioned(String version)
      Creates a copy of this registrar with a different version. Payloads registered with the returned copy will use the passed version, instead of the version from the constructor.

      On Neo-Neo connections, the connection will only succeed if all registered payloads have the same version.

      On other connections, the payload version is ignored, since only Neo knows how to communicate Neo payload versions.

      Parameters:
      version - The version to use.
      Returns:
      A new registrar, ready to configure payloads with that version.
    • optional

      public PayloadRegistrar optional()
      Creates a copy of this registrar with optional mode enabled. Payloads registered with the returned copy will be marked as optional.

      If any non-optional payloads are missing during a connection attempt, the connection will fail.

      Returns:
      A new registrar, ready to configure payloads as optional.
    • register

      private <T extends net.minecraft.network.protocol.common.custom.CustomPacketPayload, B extends net.minecraft.network.FriendlyByteBuf> void register(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<T> type, net.minecraft.network.codec.StreamCodec<? super B,T> codec, IPayloadHandler<T> handler, List<net.minecraft.network.ConnectionProtocol> protocols, Optional<net.minecraft.network.protocol.PacketFlow> flow, String version, boolean optional)