2016-04-19 8 views
1

Ich möchte den Player Count und die max. Spieler so etwas wie virtuell machen, also muss es nicht die richtige Nummer sein. I Thing, um eine virtuelle Zahl für die maximale Anzahl Spieler festzulegen Ich kann die Methode setMaxPlayers(int mxPlayers) from the ServerListPing Event verwenden. Aber was ist mit den Online-Spielern? Und funktioniert es auch, wenn ich versuche, die Spieler über eine Abfrage in einem Plugin zu bekommen?Anzahl virtueller Spieler und max. Spieler

Vielen Dank für Ihre Hilfe und sorry für mein schlechtes Englisch;)

Antwort

1

Es gibt keine direkte Möglichkeit, die Anzahl der Spieler, die über ServerListPingEvent einzustellen. Ich bin mir nicht sicher, warum sie beschlossen, es so zu implementieren.

Vom doc:

zeigter Spieler können durch Iterieren über dieses Ereignis überprüft und entfernt werden.

So hypothetisch Sie können die Spieler ändern, die es durch die Liste der Bearbeitung (und es wird die Zählung aktualisieren). Also, wenn Sie möchten, können Sie die Anzahl reduzieren (aber ich bin mir nicht sicher, ob das hilfreich wäre, da Sie nur die Zahlen reduzieren können).

int wantedCount = 5; 

Iterator<Player> itr = event.iterator(); 
while (event.getNumPlayers() > wantedCount) { 
    itr.next(); 
    itr.remove(); 
} 

Allerdings wäre die beste Wahl sein ProtocolLib zu verwenden und bearbeiten Sie die server list ping packet es mit anstatt zu versuchen, um das Ereignis zu verwenden.


Und funktioniert es auch, wenn ich versuche, die Spieler über eine Abfrage in einem Plugin zu bekommen?

Ich bin nicht ganz sicher, was Sie damit meinen, aber wenn Sie Bukkit.getPlayers() bedeuten verwenden, die nicht ServerListPingEvent so nicht verwenden, um Änderungen an der Veranstaltung wird es nicht bewirken.

+0

Danke, aber wie kann ich es lösen, wenn ich möchte, dass mehr Spieler angezeigt werden, als es Online-Spieler gibt? Und mit der Abfrage meine ich, dass zum Beispiel ich denke, TeleportSigns verwendet eine Abfrage, um die Spielerzahl zu erhalten und es auf einem Zeichen anzuzeigen ... – Nightfighter001

+0

@ Nightfighter001 Ich schreibe eine ProtocolLib ein. Ich nehme an, dass Sie BungeeCord auf diesem Server verwenden? In diesem Fall würde das Plugin wahrscheinlich einen Serverlisten-Ping verwenden. So wäre TeleportSigns wahrscheinlich damit verwendbar. [TeleportSigns ist jedoch Open Source] (https://github.com/zh32/TeleportSigns). Daher möchten Sie das Plug-In möglicherweise stattdessen bearbeiten, je nachdem, was Sie tun müssen. – Pokechu22

+0

Ja ich benutze BungeeCord :) Und danke ich denke meine Frage wird beantwortet :) – Nightfighter001