EssentialsX

EssentialsX

2M Downloads

Problem with ServerListPingEvent

bigsmileling opened this issue ยท 15 comments

commented

Hi, i'm having this problem since the essentialsx has been updated to hide the players from the ping panel, i'm using bungeecord with the latest version of spigot and bungee, here its my error:

http://pastebin.com/9vUMTgZG

commented

BungeeSignsFree bug

commented

I have the same bug

commented

Throws:
UnsupportedOperationException - if the caller of this event does not support removing players

To me, this appears to be an issue with BungeeSigns. Also, the dev saying that it "doesn't forward the event to all other listeners" doesn't even make sense to me; it shouldn't cancel the event. I'll look into it. It seems that BungeeSigns is misusing the ServerListPingEvent to get a list of players.

commented

Hey,
yes it seems like Essentials is trying to do something which is not possible with that version, because of that it doesnt forward the event to all other listeners (also not to BungeeSigns) so you would have to wait for a fix on the Essentials Side.

from Bentipa (developer from Bungeesigns)

commented

https://www.spigotmc.org/resources/bungeesigns.6563/

Its a plugin to change with a sign the server

Essentials has with the newest version a problem with it.

commented

Can anyone link me to what they are doing?

commented

I'm getting the same error whenever a client refreshes my server in the server list.
The error goes away completely if I revert EssentialsX to build 423.
This is on a Thermos server that is heavily dependent on Forge mods, but it does not have BungeeSigns.

Error is as follows: http://hastebin.com/lanabayuva.avrasm

I'd be happy to provide more information if it would be helpful.

commented

I may have found a potential cause:

https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/browse/src/main/java/org/bukkit/event/server/ServerListPingEvent.java#144

Edit: In theory, #841 should have worked, but it doesn't because Bukkit doesn't actually support natively changing the server list ping player list (the list of players shown on the Multiplayer screen). That's what causes the error.

commented

As far as I can see, it's up to Thermos and BungeeSigns to fix their implementations of the ServerListPingEvent, and not technically an Essentials (or Bukkit) issue.

commented

@md678685 so the cause is that I read out motd, numplayers and maxplayers ? I don't write something to the ServerListPingEvent. What I meant by not being forwarded is, that the Error appears in EssentialsServerListener.java:22 not in any of my classes directly. What does happen in this line which could cause that error ?

commented

@Bentipa Your plugin seems to be firing a org.bukkit.event.server.ServerListPingEvent (presumably to get the MOTD, max players and number of players), which doesn't implement an iterator even though it should. The only reason the log mentions Essentials is because it tries to access the iterator, which should always be available in any well-written Bukkit implementation.

If you're trying to read the MOTD, max players and number of players, use org.bukkit.Server's methods.

commented

@syndr Your issue is unrelated; take it up with the Thermos devs and ask them to implement ServerListPingEvent#iterator() properly.

commented

What's now? Where is the bug und Where will be fix?

Since I has this error Bungeeonlinetime and Bungeeweb don't works correctly -- No errors ans only on servers with essentialsx.

commented

I'll look into merging those PRs.

commented

@Sprungente If those plugins are causing issues, Essentials can't fix this.