The following exception was thrown when calling the ProxiedPlayer#sendMessage() method:
https://pastebin.com/m7FeSwAM
Reason
It seems like after disconnecting a player using the ProxiedPlayer#disconnect() method, an invalid or broken reference to the player can still be obtained via the api using ProxyServer#getPlayers(). Using the sendMessage() function on such a reference results in an error.
How to reproduce
So as a basic example you want a custom kick command implemented as a plugin:
After disconnecting the player, you may want to send a message to other staff members.
The code could look something like this:
player.disconnect(text);
for (ProxiedPlayer staff: server.getPlayers()) {
staff.sendMessage(player.getName() + " was kicked by " + sender.getName());
}
In this specific example sure i can move the disconnect after the staff broadcast, however in other situations that might not be as easy and the api should be safe in that regard.
Problem
The following exception was thrown when calling the
ProxiedPlayer#sendMessage()
method: https://pastebin.com/m7FeSwAMReason
It seems like after disconnecting a player using the
ProxiedPlayer#disconnect()
method, an invalid or broken reference to the player can still be obtained via the api usingProxyServer#getPlayers()
. Using thesendMessage()
function on such a reference results in an error.How to reproduce
So as a basic example you want a custom kick command implemented as a plugin: After disconnecting the player, you may want to send a message to other staff members.
The code could look something like this:
In this specific example sure i can move the disconnect after the staff broadcast, however in other situations that might not be as easy and the api should be safe in that regard.