package hu.jgj52.pvpcore.Commands;

import hu.jgj52.pvpcore.Main;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.metadata.FixedMetadataValue;

public class SpectateCommand implements CommandExecutor {
    private final Main plugin;

    public SpectateCommand(Main plugin) {
        this.plugin = plugin;
    }
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        if (!(sender instanceof Player)) {
            sender.sendMessage("nem vagy jatekos ez nem cica");
            return true;
        }

        Player player = (Player) sender;

        if (args.length != 1) {
            player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §cKell egy játékosnév is dumbass");
            return true;
        }

        Player target = Bukkit.getPlayer(args[0]);
        if (target == null || !target.isOnline()) {
            player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §cA játékos jelenleg nem elérhető");
            return true;
        }

        if (!target.hasMetadata("DuelingWith") || target.getMetadata("DuelingWith").isEmpty()) {
            player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §cEz a játékos jelenleg nincs párbajban");
            return true;
        }

        player.setMetadata("IsSpectating", new FixedMetadataValue(plugin, true));
        player.setGameMode(GameMode.SPECTATOR);
        player.teleport(target);
        player.sendMessage("§7[§9§lInsane§e§lDuels§7] §7» §aMostantól §e" + target.getName() + "§a párbaját figyeled!");

        return true;
    }
}
