Newer
Older
ChallengeSystem / src / main / java / de / fanta / challenges / commands / hp / HPAddCommand.java
@fanta fanta on 7 Sep 2023 3 KB some fixes
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 HPAddCommand extends SubCommand {

    private final Challenges plugin;

    public HPAddCommand(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);
                    double finalAddHP = player.getHealth() + input;

                    if (finalAddHP <= player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue() && finalAddHP >= 0) {
                        player.setHealth(finalAddHP);
                        ChatUtil.sendNormalMessage(player, "Du wurdest von " + sender.getName() + " um " + input + "HP geheilt!");
                        ChatUtil.sendNormalMessage(sender, "Du hast " + player.getName() + " " + input + "HP hinzugefügt!");

                        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> - Füge einem Spieler die angegebene Zahl an Herzen hinzu";
    }
}