Interface ScreenNetworking


public interface ScreenNetworking
ScreenNetworking handles screen-related network messages sent between the server and the client.

Registering a message receiver

Message receivers can be registered by calling receive(Identifier, MessageReceiver) on a ScreenNetworking for the receiving side. The message ID is a unique ID that matches between the sender and the receiver.

Message receivers should be registered in the constructor of a SyncedGuiDescription.

Sending messages

Messages can be sent by calling send(Identifier, Consumer) on a ScreenNetworking for the sending side. The message ID should match up with a receiver registered on the opposite side.

Example

 
 private static final Identifier MESSAGE_ID = new Identifier("my_mod", "some_message");

 // Receiver
 ScreenNetworking.of(this, NetworkSide.SERVER).receive(MESSAGE_ID, buf -> {
 	   // Example data: a lucky number as an int
     System.out.println("Your lucky number is " + buf.readInt() + "!");
 });

 // Sending

 // We're sending from a button. The packet data is our lucky number, 123.
 WButton button = ...;
 button.setOnClick(() -> {
     ScreenNetworking.of(this, NetworkSide.CLIENT).send(MESSAGE_ID, buf -> buf.writeInt(123));
 });
 
 
Since:
3.3.0
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    A handler for received screen messages.
  • Method Summary

    Modifier and Type
    Method
    Description
    of(SyncedGuiDescription description, NetworkSide networkSide)
    Gets a networking handler for the GUI description that is active on the specified side.
    void
    receive(net.minecraft.util.Identifier message, ScreenNetworking.MessageReceiver receiver)
    Registers a message receiver for the message.
    void
    send(net.minecraft.util.Identifier message, Consumer<net.minecraft.network.PacketByteBuf> writer)
    Sends a screen message to the other side of the connection.
  • Method Details

    • of

      static ScreenNetworking of(SyncedGuiDescription description, NetworkSide networkSide)
      Gets a networking handler for the GUI description that is active on the specified side.
      Parameters:
      description - the GUI description
      networkSide - the network side
      Returns:
      the network handler
      Throws:
      NullPointerException - if either parameter is null
    • receive

      void receive(net.minecraft.util.Identifier message, ScreenNetworking.MessageReceiver receiver)
      Registers a message receiver for the message.
      Parameters:
      message - the screen message ID
      receiver - the message receiver
      Throws:
      IllegalStateException - if the message has already been registered
      NullPointerException - if either parameter is null
    • send

      void send(net.minecraft.util.Identifier message, Consumer<net.minecraft.network.PacketByteBuf> writer)
      Sends a screen message to the other side of the connection.
      Parameters:
      message - the screen message ID
      writer - a writer that writes the message contents to a packet buffer; should not read the buffer
      Throws:
      NullPointerException - if either parameter is null