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:
ServerLoginNetworking,ClientPlayNetworking
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancanSend(net.minecraft.server.network.ServerPlayerEntity player, net.minecraft.util.Identifier channelName)Checks if the connected client declared the ability to receive a packet on a specified channel name.static booleancanSend(net.minecraft.server.network.ServerPlayNetworkHandler handler, net.minecraft.util.Identifier channelName)Checks if the connected client declared the ability to receive a packet on a specified channel name.static net.minecraft.network.Packet<?>createS2CPacket(net.minecraft.util.Identifier channelName, net.minecraft.network.PacketByteBuf buf)Creates a packet which may be sent to a the connected client.static Set<net.minecraft.util.Identifier>Gets all channel names which global receivers are registered for.static Set<net.minecraft.util.Identifier>getReceived(net.minecraft.server.network.ServerPlayerEntity player)Gets all the channel names that the server can receive packets on.static Set<net.minecraft.util.Identifier>getReceived(net.minecraft.server.network.ServerPlayNetworkHandler handler)Gets all the channel names that the server can receive packets on.static Set<net.minecraft.util.Identifier>getSendable(net.minecraft.server.network.ServerPlayerEntity player)Gets all channel names that the connected client declared the ability to receive a packets on.static Set<net.minecraft.util.Identifier>getSendable(net.minecraft.server.network.ServerPlayNetworkHandler handler)Gets all channel names that a the connected client declared the ability to receive a packets on.static PacketSendergetSender(net.minecraft.server.network.ServerPlayerEntity player)Gets the packet sender which sends packets to the connected client.static PacketSendergetSender(net.minecraft.server.network.ServerPlayNetworkHandler handler)Gets the packet sender which sends packets to the connected client.static net.minecraft.server.MinecraftServergetServer(net.minecraft.server.network.ServerPlayNetworkHandler handler)Returns the Minecraft Server of a server play network handler.static booleanregisterGlobalReceiver(net.minecraft.util.Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler)Registers a handler to a channel.static booleanregisterReceiver(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler, net.minecraft.util.Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler)Registers a handler to a channel.static voidsend(net.minecraft.server.network.ServerPlayerEntity player, net.minecraft.util.Identifier channelName, net.minecraft.network.PacketByteBuf buf)Sends a packet to a player.static @Nullable ServerPlayNetworking.PlayChannelHandlerunregisterGlobalReceiver(net.minecraft.util.Identifier channelName)Removes the handler of a channel.static @Nullable ServerPlayNetworking.PlayChannelHandlerunregisterReceiver(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler, net.minecraft.util.Identifier channelName)Removes the handler of a channel.
-
Method Details
-
registerGlobalReceiver
public static boolean registerGlobalReceiver(net.minecraft.util.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(Identifier),registerReceiver(ServerPlayNetworkHandler, Identifier, PlayChannelHandler)
-
unregisterGlobalReceiver
@Nullable public static @Nullable ServerPlayNetworking.PlayChannelHandler unregisterGlobalReceiver(net.minecraft.util.Identifier channelName)Removes the handler of a channel. A global receiver is registered to all connections, in the present and future.The
channelis guaranteed not to have a handler after this call.- Parameters:
channelName- the id of the channel- Returns:
- the previous handler, or
nullif no handler was bound to the channel - See Also:
registerGlobalReceiver(Identifier, PlayChannelHandler),unregisterReceiver(ServerPlayNetworkHandler, Identifier)
-
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(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler, net.minecraft.util.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.INITto 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:
ServerPlayConnectionEvents.INIT
-
unregisterReceiver
@Nullable public static @Nullable ServerPlayNetworking.PlayChannelHandler unregisterReceiver(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler, net.minecraft.util.Identifier channelName)Removes the handler of a channel.The
channelNameis guaranteed not to have a handler after this call.- Parameters:
channelName- the id of the channel- Returns:
- the previous handler, or
nullif no handler was bound to the channel name
-
getReceived
public static Set<net.minecraft.util.Identifier> getReceived(net.minecraft.server.network.ServerPlayerEntity player)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
public static Set<net.minecraft.util.Identifier> getReceived(net.minecraft.server.network.ServerPlayNetworkHandler handler)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
public static Set<net.minecraft.util.Identifier> getSendable(net.minecraft.server.network.ServerPlayerEntity player)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
public static Set<net.minecraft.util.Identifier> getSendable(net.minecraft.server.network.ServerPlayNetworkHandler handler)Gets all channel names that a the 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
public static boolean canSend(net.minecraft.server.network.ServerPlayerEntity player, net.minecraft.util.Identifier channelName)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
public static boolean canSend(net.minecraft.server.network.ServerPlayNetworkHandler handler, net.minecraft.util.Identifier channelName)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 net.minecraft.network.Packet<?> createS2CPacket(net.minecraft.util.Identifier channelName, net.minecraft.network.PacketByteBuf buf)Creates a packet which may be sent to a the 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
public static PacketSender getSender(net.minecraft.server.network.ServerPlayNetworkHandler handler)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
public static void send(net.minecraft.server.network.ServerPlayerEntity player, net.minecraft.util.Identifier channelName, net.minecraft.network.PacketByteBuf buf)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
public static net.minecraft.server.MinecraftServer getServer(net.minecraft.server.network.ServerPlayNetworkHandler handler)Returns the Minecraft Server of a server play network handler.- Parameters:
handler- the server play network handler
-