Class PlayerSocketConnection
java.lang.Object
net.minestom.server.network.player.PlayerConnection
net.minestom.server.network.player.PlayerSocketConnection
Represents a socket connection.
It is the implementation used for all network client.
-
Constructor Summary
ConstructorsConstructorDescriptionPlayerSocketConnection(@NotNull SocketChannel channel, SocketAddress remoteAddress) -
Method Summary
Modifier and TypeMethodDescriptionvoid@Nullable GameProfile@NotNull SocketChannel@Nullable StringRetrieves the username received from the client during connection.byte[]getNonce()intGets the protocol version of a client.@NotNull SocketAddressGets the remote address of the client.@Nullable StringGets the server address that the client used to connect.intGets the server port that the client used to connect.voidread(PacketParser<ClientPacket> packetParser) voidrefreshServerInformation(@Nullable String serverAddress, int serverPort, int protocolVersion) Used inClientHandshakePacketto change the internal fields.voidsendPacket(@NotNull SendablePacket packet) Serializes the packet and send it to the client.voidsendPackets(@NotNull Collection<SendablePacket> packets) voidsetEncryptionKey(@NotNull SecretKey secretKey) Sets the encryption key and add the codecs to the pipeline.voidsetNonce(byte[] nonce) voidsetRemoteAddress(@NotNull SocketAddress remoteAddress) Changes the internal remote address field.voidEnables compression and add a new codec to the pipeline.voidUNSAFE_setLoginUsername(@NotNull String loginUsername) Sets the internal login username field.voidUNSAFE_setProfile(@NotNull GameProfile gameProfile) Methods inherited from class net.minestom.server.network.player.PlayerConnection
disconnect, fetchCookie, getConnectionState, getIdentifier, getPlayer, isOnline, kick, loginPluginMessageProcessor, playerPublicKey, receiveCookieResponse, receiveKnownPacksResponse, requestKnownPacks, sendPackets, setConnectionState, setPlayer, setPlayerPublicKey, storeCookie, toString
-
Constructor Details
-
PlayerSocketConnection
-
-
Method Details
-
read
- Throws:
IOException
-
setEncryptionKey
Sets the encryption key and add the codecs to the pipeline.- Parameters:
secretKey- the secret key to use in the encryption- Throws:
IllegalStateException- if encryption is already enabled for this connection
-
startCompression
public void startCompression()Enables compression and add a new codec to the pipeline.- Throws:
IllegalStateException- if encryption is already enabled for this connection
-
sendPacket
Description copied from class:PlayerConnectionSerializes the packet and send it to the client.- Specified by:
sendPacketin classPlayerConnection- Parameters:
packet- the packet to send
-
sendPackets
- Overrides:
sendPacketsin classPlayerConnection
-
getRemoteAddress
Description copied from class:PlayerConnectionGets the remote address of the client.- Specified by:
getRemoteAddressin classPlayerConnection- Returns:
- the remote address
-
setRemoteAddress
Changes the internal remote address field.Mostly unsafe, used internally when interacting with a proxy.
- Parameters:
remoteAddress- the new connection remote address
-
getChannel
-
gameProfile
-
UNSAFE_setProfile
-
getLoginUsername
Retrieves the username received from the client during connection.This value has not been checked and could be anything.
- Returns:
- the username given by the client, unchecked
-
UNSAFE_setLoginUsername
Sets the internal login username field.- Parameters:
loginUsername- the new login username field
-
getServerAddress
Gets the server address that the client used to connect.WARNING: it is given by the client, it is possible for it to be wrong.
- Overrides:
getServerAddressin classPlayerConnection- Returns:
- the server address used
-
getServerPort
public int getServerPort()Gets the server port that the client used to connect.WARNING: it is given by the client, it is possible for it to be wrong.
- Overrides:
getServerPortin classPlayerConnection- Returns:
- the server port used
-
getProtocolVersion
public int getProtocolVersion()Gets the protocol version of a client.- Overrides:
getProtocolVersionin classPlayerConnection- Returns:
- protocol version of client.
-
refreshServerInformation
public void refreshServerInformation(@Nullable @Nullable String serverAddress, int serverPort, int protocolVersion) Used inClientHandshakePacketto change the internal fields.- Parameters:
serverAddress- the server address which the client usedserverPort- the server port which the client usedprotocolVersion- the protocol version which the client used
-
getNonce
public byte[] getNonce() -
setNonce
public void setNonce(byte[] nonce) -
flushSync
- Throws:
IOException
-