(Falls die Frage noch eine Antwort benötigt:)
Ich habe mir genau das gleiche Tutorial angeschaut und deine if-Abfragen sind sehr komisch und falsch geschachtelt, zumal du gar keine if-Abfrage hast sondern nur else und else if. Ich habe hier mal nen vollständigen Code:
(Hab aber die Errors die man gesendet bekommt mit nem enum gemacht, deswegen musst du die einfach durch:
player.sendMessage("Nachricht");
ersetzen und den Rest rauslassen.
Hier der Code:
package de.zomlim.tutorial.commands;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import de.zomlim.tutorial.util.ErrorType;
public class HealCommand implements CommandExecutor {
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(sender instanceof Player) {
Player player = (Player) sender;
if(args.length == 0) {
if(player.hasPermission("tutorial.heal.me")) {
if(player.getHealth() <= 20) {
player.setHealth(20);
player.setFoodLevel(20);
player.sendMessage("§4System§8 >> §aDu wurdest geheilt!");
}else if(player.getFoodLevel() <= 20) {
player.setHealth(20);
player.setFoodLevel(20);
player.sendMessage("§4System§8 >> §aDu wurdest geheilt!");
}else
sendError(player, ErrorType.PLAYERALREADYFULL);
}else
sendError(player, ErrorType.NOPERMS);
}else if(args.length == 1) {
if(player.hasPermission("tutorial.heal.other")) {
Player target = Bukkit.getPlayer(args[0]);
if(target != null) {
if(target.getHealth() <= 20) {
target.setHealth(20);
target.setFoodLevel(20);
target.sendMessage("§4System§8 >> §aDu wurdest geheilt!");
player.sendMessage("§4System§8 >> §aDu hast den Spieler §6" + target.getName() + " §ageheilt.");
}else if(target.getFoodLevel() <= 20) {
target.setHealth(20);
target.setFoodLevel(20);
target.sendMessage("§4System§8 >> §aDu wurdest geheilt!");
player.sendMessage("§4System§8 >> §aDu hast den Spieler §6" + target.getName() + " §ageheilt.");
}else
sendError(player, ErrorType.OTHERALREADYFULL);
}else
sendError(player, ErrorType.USAGE);
}else
sendError(player, ErrorType.NOPERMS);
}else
sendError(player, ErrorType.USAGE);
}else
sendError(sender, ErrorType.INVALIDSENDER);
return false;
}
public void sendError(CommandSender receiver, ErrorType error) {
if(error == ErrorType.NOPERMS)
receiver.sendMessage("§4System §8>> §4Keine Berechtigung.");
else if(error == ErrorType.USAGE)
receiver.sendMessage("§4System §8>> §cBitte Benutze: §6/heal <Spieler>");
else if(error == ErrorType.NOTONLINE)
receiver.sendMessage("§4System §8>> §cDieser Spieler ist nicht online");
else if(error == ErrorType.INVALIDSENDER)
receiver.sendMessage("§4System §8>> §cDieser Befehl ist nur für Spieler :S");
else if(error == ErrorType.OTHERALREADYFULL)
receiver.sendMessage("§4System §8>> §cDieser Spieler hat bereits volles Leben!");
else if(error == ErrorType.PLAYERALREADYFULL)
receiver.sendMessage("§4System §8>> §cDu hast bereits volles Leben!");
}
}