package de.fanta.challenges.commands.hp;
import de.fanta.challenges.Challenges;
import de.fanta.challenges.utils.ChatUtil;
import de.fanta.challenges.utils.Config;
import de.iani.cubesideutils.bukkit.commands.SubCommand;
import de.iani.cubesideutils.commands.ArgsParser;
import org.bukkit.Bukkit;
import org.bukkit.attribute.Attribute;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class HPSetCommand extends SubCommand {
private final Challenges plugin;
public HPSetCommand(Challenges plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) {
if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) {
if (args.hasNext()) {
String playerName = args.getNext();
Player player = Bukkit.getPlayer(playerName);
if (player == null) {
ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!");
return true;
}
if (args.hasNext()) {
double input = args.getNext(0.0);
if (input <= player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue() && input >= 0) {
player.setHealth(input);
ChatUtil.sendNormalMessage(player, sender.getName() + " hat deine HP auf " + input + " gesetzt!");
ChatUtil.sendNormalMessage(sender, "Du hast die HP von " + player.getName() + " auf " + input + " gesetzt!");
if (!Config.getBoolean("editsettings")) {
Config.setValue("editsettings", true, false);
plugin.getLogger().info("Diese Challenge ist kein SpeedRun mehr da die HP von " + player.getName() + " auf " + input + " geändert wurden.");
if (plugin.getCurrentEditor() != null) {
ChatUtil.sendWarningMessage(plugin.getCurrentEditor(), "Diese Challenge wird nicht mehr als Speed Run gezählt, da die HP von einem Spieler bearbeitet wurden.");
}
}
} else {
ChatUtil.sendErrorMessage(sender, "Operation nicht möglich!");
}
return true;
}
}
} else if (plugin.getCurrentEditor() != null) {
ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!");
return true;
} else {
ChatUtil.sendErrorMessage(sender, "Aktuell gibt es keinen Editor!");
ChatUtil.sendErrorMessage(sender, "Um selbst Editor zu werden musst du dir im Freebuild VIP kaufen!");
return true;
}
return false;
}
@Override
public boolean requiresPlayer() {
return true;
}
@Override
public String getUsage() {
return "<Spieler> <Wert> - Setze die Herzen eines Spieler auf die angegebene Zahl";
}
}