package de.viper.survivalplus.commands;

import de.viper.survivalplus.SurvivalPlus;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class HealCommand implements CommandExecutor {

    private final SurvivalPlus plugin;

    public HealCommand(SurvivalPlus plugin) {
        this.plugin = plugin;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        if (!(sender instanceof Player player)) {
            sender.sendMessage("§cDieser Befehl kann nur von Spielern verwendet werden!");
            return true;
        }

        // /heal ohne Argument → eigener Spieler
        if (args.length == 0) {
            if (!player.hasPermission("survivalplus.heal")) {
                player.sendMessage("§cDu hast keine Berechtigung, dich zu heilen!");
                return true;
            }
            player.setHealth(player.getMaxHealth());
            player.setFoodLevel(20);
            player.sendMessage("§aDu wurdest vollständig geheilt!");
            return true;
        }

        // /heal <Spieler> → anderen Spieler heilen
        if (args.length == 1) {
            if (!player.hasPermission("survivalplus.heal.others")) {
                player.sendMessage("§cDu hast keine Berechtigung, andere Spieler zu heilen!");
                return true;
            }

            Player target = Bukkit.getPlayerExact(args[0]);
            if (target == null || !target.isOnline()) {
                player.sendMessage("§cDieser Spieler ist nicht online!");
                return true;
            }

            target.setHealth(target.getMaxHealth());
            target.setFoodLevel(20);
            target.sendMessage("§aDu wurdest von §e" + player.getName() + " §ageheilt!");
            player.sendMessage("§aDu hast §e" + target.getName() + " §ageheilt!");
            return true;
        }

        // Falsche Benutzung
        player.sendMessage("§eBenutzung: /heal [Spieler]");
        return true;
    }
}
