Interface FabricPacket


public interface FabricPacket
A packet to be sent using Networking API. An instance of this class is created each time the packet is sent. This can be used on both the client and the server.

Implementations should have fields of values sent over the network. For example, a packet consisting of two integers should have two int fields with appropriate name. This is written to the buffer in write(net.minecraft.network.PacketByteBuf). The packet should have two constructors: one that creates a packet on the sender, which initializes the fields to be written, and one that takes a PacketByteBuf and reads the packet.

For each packet class, a corresponding PacketType instance should be created. The type should be stored in a static final field, and getType() should return that type.

Example of a packet:


 public record BoomPacket(boolean fire) implements FabricPacket {
 	public static final PacketType<BoomPacket> TYPE = PacketType.create(new Identifier("example:boom"), BoomPacket::new);

 	public BoomPacket(PacketByteBuf buf) {
 		this(buf.readBoolean());
 	}

 	@Override
 	public void write(PacketByteBuf buf) {
 		buf.writeBoolean(this.fire);
 	}

 	@Override
 	public PacketType<?> getType() {
 		return TYPE;
 	}
 }
 
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the packet type of this packet.
    void
    Writes the contents of this packet to the buffer.
  • Method Details

    • write

      void write(PacketByteBuf buf)
      Writes the contents of this packet to the buffer.
      Parameters:
      buf - the output buffer
    • getType

      PacketType<?> getType()
      Returns the packet type of this packet.

      Implementations should store the packet type instance in a static final field and return that here, instead of creating a new instance.

      Returns:
      the type of this packet