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 net.kyori.adventure.text.Component;
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(Component.text("Alle Spieler wurden wiederbelebt! Es kann weiter gehen!", ChatUtil.GREEN));
} 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.name().append(Component.text(" wurde von ").append(sender.name()).append(Component.text(" wiederbelebt!"))).color(ChatUtil.GREEN));
} 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;
}
}