Class AbstractChanneledNetworkAddon<H>

java.lang.Object
net.fabricmc.fabric.impl.networking.AbstractNetworkAddon<H>
net.fabricmc.fabric.impl.networking.AbstractChanneledNetworkAddon<H>
Type Parameters:
H - the channel handler type
All Implemented Interfaces:
PacketSender, CommonPacketHandler
Direct Known Subclasses:
ClientConfigurationNetworkAddon, ClientPlayNetworkAddon, ServerConfigurationNetworkAddon, ServerPlayNetworkAddon

public abstract class AbstractChanneledNetworkAddon<H> extends AbstractNetworkAddon<H> implements PacketSender, CommonPacketHandler
A network addon which is aware of the channels the other side may receive.
  • Field Details

    • connection

      protected final net.minecraft.network.Connection connection
    • receiver

      protected final GlobalReceiverRegistry<H> receiver
    • sendableChannels

      protected final Set<net.minecraft.resources.Identifier> sendableChannels
    • commonVersion

      protected int commonVersion
  • Constructor Details

    • AbstractChanneledNetworkAddon

      protected AbstractChanneledNetworkAddon(GlobalReceiverRegistry<H> receiver, net.minecraft.network.Connection connection, String description)
  • Method Details

    • registerPendingChannels

      protected void registerPendingChannels(ChannelInfoHolder holder, net.minecraft.network.ConnectionProtocol state)
    • handle

      public boolean handle(net.minecraft.network.protocol.common.custom.CustomPacketPayload payload)
    • isOnReceiveThread

      protected abstract boolean isOnReceiveThread()
    • receive

      protected abstract void receive(H handler, net.minecraft.network.protocol.common.custom.CustomPacketPayload payload)
    • sendInitialChannelRegistrationPacket

      protected void sendInitialChannelRegistrationPacket()
    • createRegistrationPayload

      protected @Nullable RegistrationPayload createRegistrationPayload(net.minecraft.network.protocol.common.custom.CustomPacketPayload.Type<RegistrationPayload> type, Collection<net.minecraft.resources.Identifier> channels)
    • receiveRegistration

      protected void receiveRegistration(boolean register, RegistrationPayload payload)
    • sendPacket

      public void sendPacket(net.minecraft.network.protocol.Packet<?> packet, io.netty.channel.ChannelFutureListener callback)
      Description copied from interface: PacketSender
      Sends a packet.
      Specified by:
      sendPacket in interface PacketSender
      Parameters:
      packet - the packet
      callback - an optional callback to execute after the packet is sent, may be null.
    • disconnect

      public void disconnect(net.minecraft.network.chat.Component disconnectReason)
      Description copied from interface: PacketSender
      Disconnects the player.
      Specified by:
      disconnect in interface PacketSender
      Parameters:
      disconnectReason - the reason for disconnection
    • schedule

      protected abstract void schedule(Runnable task)
      Schedules a task to run on the main thread.
    • invokeRegisterEvent

      protected abstract void invokeRegisterEvent(List<net.minecraft.resources.Identifier> ids)
    • invokeUnregisterEvent

      protected abstract void invokeUnregisterEvent(List<net.minecraft.resources.Identifier> ids)
    • getSendableChannels

      public Set<net.minecraft.resources.Identifier> getSendableChannels()
    • onCommonVersionPacket

      public void onCommonVersionPacket(int negotiatedVersion)
      Specified by:
      onCommonVersionPacket in interface CommonPacketHandler
    • onCommonRegisterPacket

      public void onCommonRegisterPacket(CommonRegisterPayload payload)
      Specified by:
      onCommonRegisterPacket in interface CommonPacketHandler
    • createRegisterPayload

      public CommonRegisterPayload createRegisterPayload()
      Specified by:
      createRegisterPayload in interface CommonPacketHandler
    • getNegotiatedVersion

      public int getNegotiatedVersion()
      Specified by:
      getNegotiatedVersion in interface CommonPacketHandler