Newer
Older
ChallengeSystem / src / main / java / de / fanta / challenges / commands / event / EventStartCommand.java
@fanta fanta on 1 Dec 2021 2 KB Update to 1.16
package de.fanta.challenges.commands.event;

import de.fanta.challenges.Challenges;
import de.fanta.challenges.utils.ChatUtil;
import de.fanta.challenges.utils.guiutils.GUIUtils;
import de.iani.cubesideutils.bukkit.commands.SubCommand;
import de.iani.cubesideutils.commands.ArgsParser;
import org.bukkit.Bukkit;
import org.bukkit.GameRule;
import org.bukkit.World;
import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarStyle;
import org.bukkit.boss.BossBar;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;

public class EventStartCommand extends SubCommand {
    private final Challenges plugin;

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

    @Override
    public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) {
        if (!(sender instanceof Player)) {
            ChatUtil.sendErrorMessage(sender, "You are not a Player :>");
            return true;
        }
        if (sender.hasPermission("challenges.event")) {

            AtomicInteger i = new AtomicInteger(4);
            Bukkit.getScheduler().runTaskTimer(plugin, bukkitTask -> {
                int j = i.decrementAndGet();

                GUIUtils.sendTitleToAll("Event", j > 0 ? "" + j : "Go", ChatUtil.BLUE);

                if(j <= 0){
                    bukkitTask.cancel();
                    World world = Bukkit.getWorld("world");
                    if (Bukkit.getMotd().equalsIgnoreCase("Challenge")) {
                        world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, true);
                    }
                    plugin.getTimer().startTimer();

                    Bukkit.getOnlinePlayers().forEach(p -> plugin.getScoreManager().updateScore(p, 0));

                    if (Objects.equals(plugin.getConfig().getString("event.type"), "bingo")) {
                        for (Player p : Bukkit.getOnlinePlayers()) {
                            BossBar bossBar = Bukkit.createBossBar(ChatUtil.GREEN + "Nutze " + ChatUtil.BLUE + "/bingo" + ChatUtil.GREEN + " um die Items zu sehen", BarColor.GREEN, BarStyle.SOLID);
                            bossBar.setVisible(true);
                            bossBar.addPlayer(p);
                        }
                    }
                }
            }, 10, 20);



            return true;
        } else {
            ChatUtil.sendErrorMessage(sender, "Keine Berechtigung!");
        }
        return false;
    }
}