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 callingreceive(net.minecraft.util.Identifier, com.mojang.serialization.Decoder<D>, io.github.cottonmc.cotton.gui.networking.ScreenNetworking.MessageReceiver<D>)
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 callingsend(net.minecraft.util.Identifier, com.mojang.serialization.Encoder<D>, D)
on a ScreenNetworking
for the sending side. The message ID and codec 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, Codec.INT, data -> {
// Example data: a lucky number as an int
System.out.println("Your lucky number is " + data + "!");
});
// 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, Codec.INT, 123);
});
- Since:
- 3.3.0
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
A handler for received screen messages. -
Method Summary
Modifier and TypeMethodDescriptionstatic ScreenNetworking
of
(SyncedGuiDescription description, NetworkSide networkSide) Gets a networking handler for the GUI description that is active on the specified side.<D> void
receive
(Identifier message, com.mojang.serialization.Decoder<D> decoder, ScreenNetworking.MessageReceiver<D> receiver) Registers a message receiver for the message.<D> void
send
(Identifier message, com.mojang.serialization.Encoder<D> encoder, D data) Sends a screen message to the other side of the connection.
-
Method Details
-
of
Gets a networking handler for the GUI description that is active on the specified side.- Parameters:
description
- the GUI descriptionnetworkSide
- the network side- Returns:
- the network handler
- Throws:
NullPointerException
- if either parameter is null
-
receive
<D> void receive(Identifier message, com.mojang.serialization.Decoder<D> decoder, ScreenNetworking.MessageReceiver<D> receiver) Registers a message receiver for the message.The decoder can depend on registry data and
RegistryOps
is available.- Type Parameters:
D
- the message data type- Parameters:
message
- the screen message IDdecoder
- the message codecreceiver
- the message receiver- Throws:
IllegalStateException
- if the message has already been registeredNullPointerException
- if any parameter is null
-
send
Sends a screen message to the other side of the connection.The encoder can depend on registry data and
RegistryOps
is available.- Parameters:
message
- the screen message IDencoder
- the message encoderdata
- the message data- Throws:
NullPointerException
- if the message ID or the encoder is null
-