So, als erstes sind mir ein paar Fehler aufgefallen:
Code:
@Override
public void onEnable() {
System.out.println("Archipelago ist Gestartet");
}
@Override
public void onDisable() {
System.out.println("Archipelago ist Gestoppt");
}
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
// [...]
return true;
}
Das @Override solltest du angeben, weil du ja die Methoden von JavaPlugin überschreibst. Und was noch viel schlimmer war und die Ausführung deiner Befehle komplett verhindert hat: Dein onCommand hat nicht den Vorgaben entsprochen und wurde dadurch niemals aufgerufen.
So, jetzt zum Spielernamen, oder auch der Frage was du eigentlich erreichen willst.
Bei deinen Befehlen hast du überall im Usage-Text stehen, dass sie einen Spielernamen erwarten. Bei manchen mag das Sinn machen, bei anderen überhaupt nicht. Deinen aktuellen Code kümmert das jedenfalls überhaupt nicht und du ignorierst einen eventuell angegebenen Namen komplett.
Ich werde das ganze jetzt nur am Beispiel des Heal-Befehls zeigen, weil es letztendlich für alle Befehle das selbe ist. Ich werde dir jetzt auch nur eine der möglichen Lösungen zeigen, wenn die dir nicht gefällt denk dir selbst eine aus, das ist ja das schöne an der Programmierung.
Code:
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
Player p = null;
if((sender instanceof Player)) {
p = (Player)sender;
}
Player p2 = null;
if(args.length == 1) {
p2 = Bukkit.getPlayer(args[0]);
}
if (cmd.getName().equalsIgnoreCase("Heal")) {
if (p.hasPermission("PluginArchipelago.Heal")) {
if (p2 != null) {
sender.sendMessage("Du hast den Spieler erfolgreich geheilt.");
p2.sendMessage("§aDu Wurdest erfolgreich geheilt.");
p2.setFoodLevel(20);
p2.setHealth(20);
p2.setMaxHealth(20);
} else if(p != null) {
p.sendMessage("§aDu Wurdest erfolgreich geheilt.");
p.setFoodLevel(20);
p.setHealth(20);
p.setMaxHealth(20);
} else {
sender.sendMessage("Du bist kein Spieler!");
}
} else {
p.sendMessage("Du hast keine Berechtigung.");
}
}
return true;
}
Bevor du das jetzt einfach übernimmst solltest du noch wissen, dass du mir dem Code bei allen anderen Befehlen (also nicht bei heal) wieder Fehler bekommst wenn es kein Spieler ausführt. Die anderen Befehle müsstest du also erst noch entsprechend anpassen.
Ich könnte dir jetzt alle Befehle anpassen, sodass sie mit der Überarbeitung für heal funktionieren und auch selbst auf andere Spieler angewendet werden können. Da das aber reine Fleißarbeit und keine großartigen überlegungen braucht, werde ich darauf jetzt verzichten.
So jetzt muss ich einfach noch eine Frage stellen (wenn ich es nicht tue wird es ein anderer machen) und will dir dann noch ein paar Tipps geben.
Weißt du überhaupt was du das tust? Hast du vorher Java gelernt? Oder direkt damit angefangen aus Videos abzuschreiben?
Ich glaube nicht, dass Videos die beste Wahl sind wenn es darum geht das Programmieren zu lernen. Es mag Personen geben, die damit perfekt klar kommen, bei den meisten scheint es aber bloß dazu zu führen, dass die alles abschreiben und dann glauben etwas gelernt zu haben, was eigentlich fast nie der Fall ist.
Deshalb kann ich dir nur empfehlen, lern erstmal Java und nimm dazu ein Buch. Und ich will dir da auch gleich eins vorschlagen: Java ist auch eine Insel (

oder als

)
Wenn du Java kannst, kann ich dir auch wieder nur empfehlen die Programmierung von Bukkitplugins in Textform zu lernen. Die Dokumentation von Bukkit ist großartig und enthält auch einige gute Tutorials und jede Menge gute Erklärungen.