Spielername im Command herausfinden?

MrAmazing2  12.08.2021, 13:12

Ich denke mal du willst wissen, wie man das Programmiert? (Spigot Plugin?)

Bajalula 
Fragesteller
 12.08.2021, 13:15

ja genau danke

3 Antworten

In deiner onCommand-Methode hast du ein String-Array, in den meisten Fällen heißt dieses args.

public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) {

In diesem String-Array stehen alle Argumente drin, also alles was nach dem /<command> kommt.

Möchtest du jetzt also einen Command entwickeln, welcher bspw. /player <Name> lautet, musst du auf dieses Array zugreifen:

String playerName = args[0];

Jetzt hast du dein 1. Argument, also in diesem Falle den Spielernamen. Um diesen jetzt als Spieler zu behandeln, benötigst du jetzt natürlich noch den Spieler selbst. Dafür hat die Bukkit-Klasse eine getPlayer(String) Methode. Heißt, du würdest das ganze folgendermaßen angehen:

Player targetPlayer = Bukkit.getPlayer(args[0]);

Dann hast du den Spieler den du im Command angegeben hast und kannst mit diesem agieren.

Eine kleine Warnung gebe ich jedoch noch: Den Code bitte nicht 1:1 so übernehmen. Hier fehlen noch null-Checks und co., für den Fall dass bspw. keine Argumente angegeben wurden oder der Spieler nicht Online ist.

Woher ich das weiß:Hobby – Ich spiele Minecraft seit >5 Jahren

Der steht in den String[] args.

In dem Fall also einfach mit

String name = args[0];
Woher ich das weiß:eigene Erfahrung – Minecraft-Experte. Aktiver Spieler seit 2011.
Bajalula 
Fragesteller
 12.08.2021, 13:18

Ich mache so einen Playerinfo Command, also ich muss dann auch zum beispiel:

name.getName();
0
MrAmazing2  12.08.2021, 13:24
@Bajalula

Denke schon, kommt drauf an was für Infos du willst und woher

0

Einfach die Tab Taste (unter Escape {ESC}) drücken und du siehst alle Spieler ..

Woher ich das weiß:eigene Erfahrung