player.sendMessage() throws exception after calling player.disconnect()
Problem
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.
I weren't able to reproduce this issue on my setup. if it still persists (even with bungeecord) pls give me instructions so I can investigate further (if needed)