Frage von OnlineMii, 364

Wie kann ich bei spigot prüfen ob ein bestimmter Spieler gerade auf dem selben Server online ist?

Hallo,

ich hatte neulich mal wieder Lust ein Plugin zu schreiben und dachte mir, ich könnte doch mal einen Command einfügen, mit dem ma n den onlinestatus auf meinem Server abfragen kann. Leider bin ich wohl etwas raus gekommen. Folgendes habe ich programmiert

        if(cmd.getName().equalsIgnoreCase("team")) {
        if (args.length == 0){
            p.getServer().getPlayer("Spielername");
            if(p != null){
                p.sendMessage("Spieler: online");
                return true;
            } else {
                p.sendMessage("Spieler: offline");
                return true;
            }
            }
            }

Ja, das ist etwas unordentlich weil ich das etwas aus dem Kontext gerissen habe, aber das wesentliche sollte man erkennen können ;) Ich weiß, dass ich damit prüfe, ob der Spieler, der den Command ausführt online ist und nicht der Spieler den ich hinten angegeben habe, allerdings ist mein Problem eher, dass ich nicht weiß, ob dieser Code üerhaupt prüft, ob der Spieler auf dem Server ist, als viel mehr ob der Spieler in der Datenbank von Mojang eingespeichert ist, sprich einen Premium-Account besitzt. (Wie gesagt, ist lange her, dass ich mich mal mit bukkit / spigot befasst habe)

Wenn mir jemand sagen könnte, ob der Code überhaupt das tut, was ich will wäre das bereits eine große Hilfe. Wenn man mir direkt noch einen Tipp gibt, wie ich meinen Code "richtig" mache wäre das wirklich der Hammer :)

Vielen Dank

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von JFWR737, 300
if(Bukkit.getOnlinePlayers.contains(args[1])){

//true: der Spieler ist online.
//false: der Spieler ist nicht online.

Der Rest ist selbstverständlich (hoffentlich)

Kommentar von OnlineMii ,

Vielen Dank,

ich denke mit diesem Rat werde ich den gewünschten Befehl umsetzen können :)

Lg

Kommentar von JFWR737 ,

Alles klar. Falls noch Fragen bestehen einfach ein weiteres Kommentar :)

Antwort
von Atomtoasty, 195

Ic verstehe deine Frage überhaupt nicht... Möchtest du jetzt testen, ob der Spieler einen online (also gekauften) MC Account hat oder möchtest du testen, ob der Spieler auf deinem Server online ist?

LG Atomsi

Kommentar von OnlineMii ,

Hi,

bitte entschuldige die ungenaue Fragestellung. Ich wollte wissen, wie ich das ändern muss, um mit dem Comman /team eine Liste aller Teammitglieder des Servers und deren aktuellen onlinestatus auf dem Server selbst abzurufen.

Lg

Kommentar von Atomtoasty ,

Ach so, ja das ist einfach. Um abzufragen, ob ein Spieler online ist, nutzt du einfach den Befehl Bukkit.getOnlinePlayer(Name) oder Bukkit.getPlayer(Name)... Ich bin mir Grad nicht sicher, welches man davon benutzt, aber wenn du das ganze in eine if Schleif einbaust, musst du einfach nur abfragen, ob der Rückgabewert gleich null ist. Sobald das der Fall ist, ist der Spieler auf deinem Netzwerk nicht online. Um eine Befehl mit einer Liste aller Teammitglieder zu erhalten, könntest du einfach eine Liste nehmen und darein die Namen schreiben und durch eine for-Schleife alle auslesen und prüfen lassen.

Ich hoffe ich konnte dir helfen:

LG Atomsi

Keine passende Antwort gefunden?

Fragen Sie die Community