public final class ServerPlayNetworking extends Object
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.
ServerLoginNetworking
,
ClientPlayNetworking
Modifier and Type | Class and Description |
---|---|
static interface |
ServerPlayNetworking.PlayChannelHandler |
Modifier and Type | Method and Description |
---|---|
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.
|
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.
|
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> |
getGlobalReceivers()
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 PacketSender |
getSender(net.minecraft.server.network.ServerPlayerEntity player)
Gets the packet sender which sends packets to the connected client.
|
static PacketSender |
getSender(net.minecraft.server.network.ServerPlayNetworkHandler handler)
Gets the packet sender which sends packets to the connected client.
|
static net.minecraft.server.MinecraftServer |
getServer(net.minecraft.server.network.ServerPlayNetworkHandler handler)
Returns the Minecraft Server of a server play network handler.
|
static boolean |
registerGlobalReceiver(net.minecraft.util.Identifier channelName,
ServerPlayNetworking.PlayChannelHandler channelHandler)
Registers a handler to a channel.
|
static boolean |
registerReceiver(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler,
net.minecraft.util.Identifier channelName,
ServerPlayNetworking.PlayChannelHandler channelHandler)
Registers a handler to a channel.
|
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.
|
static @Nullable ServerPlayNetworking.PlayChannelHandler |
unregisterGlobalReceiver(net.minecraft.util.Identifier channelName)
Removes the handler of a channel.
|
static @Nullable ServerPlayNetworking.PlayChannelHandler |
unregisterReceiver(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler,
net.minecraft.util.Identifier channelName)
Removes the handler of a channel.
|
public static boolean registerGlobalReceiver(net.minecraft.util.Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler)
If a handler is already registered to the channel
, this method will return false
, and no change will be made.
Use unregisterReceiver(ServerPlayNetworkHandler, Identifier)
to unregister the existing handler.
channelName
- the id of the channelchannelHandler
- the handlerunregisterGlobalReceiver(Identifier)
,
registerReceiver(ServerPlayNetworkHandler, Identifier, PlayChannelHandler)
@Nullable public static @Nullable ServerPlayNetworking.PlayChannelHandler unregisterGlobalReceiver(net.minecraft.util.Identifier channelName)
The channel
is guaranteed not to have a handler after this call.
channelName
- the id of the channelnull
if no handler was bound to the channelregisterGlobalReceiver(Identifier, PlayChannelHandler)
,
unregisterReceiver(ServerPlayNetworkHandler, Identifier)
public static Set<net.minecraft.util.Identifier> getGlobalReceivers()
public static boolean registerReceiver(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler, net.minecraft.util.Identifier channelName, ServerPlayNetworking.PlayChannelHandler channelHandler)
registerGlobalReceiver(Identifier, PlayChannelHandler)
since
the channel handler will only be applied to the player represented by the ServerPlayNetworkHandler
.
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 return false
, and no change will be made.
Use unregisterReceiver(ServerPlayNetworkHandler, Identifier)
to unregister the existing handler.
networkHandler
- the handlerchannelName
- the id of the channelchannelHandler
- the handlerServerPlayConnectionEvents.INIT
@Nullable public static @Nullable ServerPlayNetworking.PlayChannelHandler unregisterReceiver(net.minecraft.server.network.ServerPlayNetworkHandler networkHandler, net.minecraft.util.Identifier channelName)
The channelName
is guaranteed not to have a handler after this call.
channelName
- the id of the channelnull
if no handler was bound to the channel namepublic static Set<net.minecraft.util.Identifier> getReceived(net.minecraft.server.network.ServerPlayerEntity player)
player
- the playerpublic static Set<net.minecraft.util.Identifier> getReceived(net.minecraft.server.network.ServerPlayNetworkHandler handler)
handler
- the network handlerpublic static Set<net.minecraft.util.Identifier> getSendable(net.minecraft.server.network.ServerPlayerEntity player)
player
- the playerpublic static Set<net.minecraft.util.Identifier> getSendable(net.minecraft.server.network.ServerPlayNetworkHandler handler)
handler
- the network handlerpublic static boolean canSend(net.minecraft.server.network.ServerPlayerEntity player, net.minecraft.util.Identifier channelName)
player
- the playerchannelName
- the channel namepublic static boolean canSend(net.minecraft.server.network.ServerPlayNetworkHandler handler, net.minecraft.util.Identifier channelName)
handler
- the network handlerchannelName
- the channel namepublic static net.minecraft.network.Packet<?> createS2CPacket(net.minecraft.util.Identifier channelName, net.minecraft.network.PacketByteBuf buf)
channelName
- the channel namebuf
- the packet byte buf which represents the payload of the packetpublic static PacketSender getSender(net.minecraft.server.network.ServerPlayerEntity player)
player
- the playerpublic static PacketSender getSender(net.minecraft.server.network.ServerPlayNetworkHandler handler)
handler
- the network handler, representing the connection to the player/clientpublic static void send(net.minecraft.server.network.ServerPlayerEntity player, net.minecraft.util.Identifier channelName, net.minecraft.network.PacketByteBuf buf)
player
- the player to send the packet tochannelName
- the channel of the packetbuf
- the payload of the packet.public static net.minecraft.server.MinecraftServer getServer(net.minecraft.server.network.ServerPlayNetworkHandler handler)
handler
- the server play network handler