Newer
Older
ChallengeSystem / src / main / java / de / fanta / challenges / commands / ReviveCommand.java
@fanta fanta on 29 Aug 2022 2 KB Rework MLG Challenge
package de.fanta.challenges.commands;

import de.fanta.challenges.Challenges;
import de.fanta.challenges.challenges.MLGChallenge;
import de.fanta.challenges.utils.ChatUtil;
import de.iani.cubesideutils.bukkit.commands.SubCommand;
import de.iani.cubesideutils.commands.ArgsParser;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.OfflinePlayer;
import org.bukkit.attribute.Attribute;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class ReviveCommand extends SubCommand {

    private final Challenges plugin;

    public ReviveCommand(Challenges plugin) {
        this.plugin = plugin;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String lable, String s1, ArgsParser args) {
        if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) {
            if (!args.hasNext()) {
                ChatUtil.sendWarningMessage(sender, "Benutze: /revive <Spieler|All>");
                return true;
            }

            String next = args.next();
            if (next.equalsIgnoreCase("all")) {
                MLGChallenge.setMLGinProgress(false);
                for (Player p : Bukkit.getOnlinePlayers()) {
                    p.setHealth(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
                    p.setGameMode(GameMode.SURVIVAL);
                }
                ChatUtil.sendBrodcastMessage("Alle Spieler wurden wiederbelebt! Es kann weiter gehen!");
            } else {
                OfflinePlayer other = (Bukkit.getServer().getOfflinePlayer(next));
                if (other.isOnline()) {
                    Player p = (Player) other;
                    p.setHealth(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
                    p.setGameMode(GameMode.SURVIVAL);
                    ChatUtil.sendBrodcastMessage(p.getName() + " wurde von " + sender.getName() + " wiederbelebt!");
                } else {
                    ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!");
                }
            }
        } else {
            if (plugin.getCurrentEditor() != null) {
                if (plugin.getCurrentEditor() != sender) {
                    ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur " + plugin.getCurrentEditor().getName() + " kann Spieler wiederbeleben!");
                }
            } 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;
    }
}