Class ServerPlayNetworking
Server-side networking functionalities include receiving serverbound packets, sending clientbound packets, and events related to server-side network handlers.
This class should be only used for the logical server.
- See Also:
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
canSend
(ServerPlayerEntity player, Identifier channelName) Checks if the connected client declared the ability to receive a packet on a specified channel name.static boolean
canSend
(ServerPlayNetworkHandler handler, Identifier channelName) Checks if the connected client declared the ability to receive a packet on a specified channel name.static Packet<ClientPlayPacketListener>
createS2CPacket
(Identifier channelName, PacketByteBuf buf) Creates a packet which may be sent to a connected client.static Set<Identifier>
Gets all channel names which global receivers are registered for.static Set<Identifier>
getReceived
(ServerPlayerEntity player) Gets all the channel names that the server can receive packets on.static Set<Identifier>
getReceived
(ServerPlayNetworkHandler handler) Gets all the channel names that the server can receive packets on.static Set<Identifier>
getSendable
(ServerPlayerEntity player) Gets all channel names that the connected client declared the ability to receive a packets on.static Set<Identifier>
getSendable
(ServerPlayNetworkHandler handler) Gets all channel names that a connected client declared the ability to receive a packets on.static PacketSender
getSender
(ServerPlayerEntity player) Gets the packet sender which sends packets to the connected client.static PacketSender
getSender
(ServerPlayNetworkHandler handler) Gets the packet sender which sends packets to the connected client.static MinecraftServer
getServer
(ServerPlayNetworkHandler handler) Returns the Minecraft Server of a server play network handler.static boolean
registerGlobalReceiver
(Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler) Registers a handler to a channel.static boolean
registerReceiver
(ServerPlayNetworkHandler networkHandler, Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler) Registers a handler to a channel.static void
send
(ServerPlayerEntity player, Identifier channelName, PacketByteBuf buf) Sends a packet to a player.unregisterGlobalReceiver
(Identifier channelName) Removes the handler of a channel.unregisterReceiver
(ServerPlayNetworkHandler networkHandler, Identifier channelName) Removes the handler of a channel.
-
Method Details
-
registerGlobalReceiver
public static boolean registerGlobalReceiver(Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler) Registers a handler to a channel. A global receiver is registered to all connections, in the present and future.If a handler is already registered to the
channel
, this method will returnfalse
, and no change will be made. UseunregisterReceiver(ServerPlayNetworkHandler, Identifier)
to unregister the existing handler.- Parameters:
channelName
- the id of the channelchannelHandler
- the handler- Returns:
- false if a handler is already registered to the channel
- See Also:
-
unregisterGlobalReceiver
@Nullable public static @Nullable ServerPlayNetworking.PlayChannelHandler unregisterGlobalReceiver(Identifier channelName) Removes the handler of a channel. A global receiver is registered to all connections, in the present and future.The
channel
is guaranteed not to have a handler after this call.- Parameters:
channelName
- the id of the channel- Returns:
- the previous handler, or
null
if no handler was bound to the channel - See Also:
-
getGlobalReceivers
Gets all channel names which global receivers are registered for. A global receiver is registered to all connections, in the present and future.- Returns:
- all channel names which global receivers are registered for.
-
registerReceiver
public static boolean registerReceiver(ServerPlayNetworkHandler networkHandler, Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler) Registers a handler to a channel. This method differs fromregisterGlobalReceiver(Identifier, PlayChannelHandler)
since the channel handler will only be applied to the player represented by theServerPlayNetworkHandler
.For example, if you only register a receiver using this method when a ServerLoginNetworking.registerGlobalReceiver(Identifier, ServerLoginNetworking.LoginQueryResponseHandler) login response has been received, you should use
ServerPlayConnectionEvents.INIT
to register the channel handler.If a handler is already registered to the
channelName
, this method will returnfalse
, and no change will be made. UseunregisterReceiver(ServerPlayNetworkHandler, Identifier)
to unregister the existing handler.- Parameters:
networkHandler
- the handlerchannelName
- the id of the channelchannelHandler
- the handler- Returns:
- false if a handler is already registered to the channel name
- See Also:
-
unregisterReceiver
@Nullable public static @Nullable ServerPlayNetworking.PlayChannelHandler unregisterReceiver(ServerPlayNetworkHandler networkHandler, Identifier channelName) Removes the handler of a channel.The
channelName
is guaranteed not to have a handler after this call.- Parameters:
channelName
- the id of the channel- Returns:
- the previous handler, or
null
if no handler was bound to the channel name
-
getReceived
Gets all the channel names that the server can receive packets on.- Parameters:
player
- the player- Returns:
- All the channel names that the server can receive packets on
-
getReceived
Gets all the channel names that the server can receive packets on.- Parameters:
handler
- the network handler- Returns:
- All the channel names that the server can receive packets on
-
getSendable
Gets all channel names that the connected client declared the ability to receive a packets on.- Parameters:
player
- the player- Returns:
- All the channel names the connected client declared the ability to receive a packets on
-
getSendable
Gets all channel names that a connected client declared the ability to receive a packets on.- Parameters:
handler
- the network handler- Returns:
- True if the connected client has declared the ability to receive a packet on the specified channel
-
canSend
Checks if the connected client declared the ability to receive a packet on a specified channel name.- Parameters:
player
- the playerchannelName
- the channel name- Returns:
- True if the connected client has declared the ability to receive a packet on the specified channel
-
canSend
Checks if the connected client declared the ability to receive a packet on a specified channel name.- Parameters:
handler
- the network handlerchannelName
- the channel name- Returns:
- True if the connected client has declared the ability to receive a packet on the specified channel
-
createS2CPacket
public static Packet<ClientPlayPacketListener> createS2CPacket(Identifier channelName, PacketByteBuf buf) Creates a packet which may be sent to a connected client.- Parameters:
channelName
- the channel namebuf
- the packet byte buf which represents the payload of the packet- Returns:
- a new packet
-
getSender
Gets the packet sender which sends packets to the connected client.- Parameters:
player
- the player- Returns:
- the packet sender
-
getSender
Gets the packet sender which sends packets to the connected client.- Parameters:
handler
- the network handler, representing the connection to the player/client- Returns:
- the packet sender
-
send
Sends a packet to a player.- Parameters:
player
- the player to send the packet tochannelName
- the channel of the packetbuf
- the payload of the packet.
-
getServer
Returns the Minecraft Server of a server play network handler.- Parameters:
handler
- the server play network handler
-