Newer
Older
ChallengeSystem / src / main / java / net / brennholz / commands / Timer_Command.java
@fantahund fantahund on 10 May 2020 5 KB Ups :>
package net.brennholz.commands;



import net.brennholz.challenges.Challenges;
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 Timer_Command implements CommandExecutor {

    private Challenges chl = Challenges.getplugin();
    public boolean timer;
    private int zeit = chl.getConfig().getInt("timer.time");
    private int sek;
    private int min;
    private int hrs;
    private String ssek;
    private String smin;

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] args) {
        timer = chl.getConfig().getBoolean("timer.enabled");
        if (sender.hasPermission("challenges.timer")) {
            if (args.length >= 1) {
                if (args[0].equalsIgnoreCase("resume")) {
                    if (timer == false) {
                        timer = true;
                        chl.getServer().broadcastMessage("§aDer Timer wird fortgesetzt!");
                        chl.getConfig().set("timer.enabled", timer);
                        chl.saveConfig();
                    } else
                        sender.sendMessage("§cDer Timer läuft bereits!");
                } else if (args[0].equalsIgnoreCase("pause")) {
                    if (timer == true) {
                        timer = false;
                        chl.getServer().broadcastMessage("§6Der Timer wurde angehalten");
                        chl.getConfig().set("timer.enabled", timer);
                        chl.saveConfig();
                    } else
                        sender.sendMessage("§cDer Timer ist bereits pausiert!");
                } else if (args[0].equalsIgnoreCase("reset")) {
                    timer = false;
                    chl.getConfig().set("timer.enabled", timer);
                    chl.saveConfig();
                    zeit = 0;
                    sek = 0;
                    min = 0;
                    hrs = 0;
                    RefreshConfig();
                    chl.getServer().broadcastMessage("§cDer Timer wurde zurückgesetzt!");
                } else if (args.length >= 2) {
                    if (args[0].equalsIgnoreCase("set")) {
                        timer = false;
                        chl.getConfig().set("timer.enabled", timer);
                        chl.saveConfig();
                        zeit = Integer.parseInt(args[1]);
                        RefreshConfig();
                        chl.getServer().broadcastMessage(
                                "§bDer Timer wurde auf §a" + hrs + ":" + smin + ":" + ssek + " §bgesetzt!");
                    }
                } else
                    sender.sendMessage("§cBenutze: /timer resume/pause/reset/set [Zeit in Sekunden]");
            } else {
                sender.sendMessage("§c~~~~~ §6Timer command §c~~~~~");
                sender.sendMessage("§c/timer resume §4- §6Setze den Timer fort");
                sender.sendMessage("§c/timer pause §4- §6Pausiere den Timer");
                sender.sendMessage("§c/timer reset §4- §6Setze den Timer zurück");
                sender.sendMessage("§c/timer set [Zeit in Sekunden] §4- §6Setze den Timer auf eine bestimmte Zeit");
            }
        } else
            sender.sendMessage("§cDu hast hierfür keine Berechtigung");
        return true;

    }

    @SuppressWarnings("deprecation")
    public void Run_Timer() {
        Bukkit.getScheduler().scheduleAsyncRepeatingTask(chl, new Runnable() {
            @Override
            public void run() {
                boolean ttimer = chl.getConfig().getBoolean("timer.enabled");
                int ttime = chl.getConfig().getInt("timer.time");
                int thrs = chl.getConfig().getInt("timer.hrs");
                String tsek = chl.getConfig().getString("timer.sek");
                String tmin = chl.getConfig().getString("timer.min");
                if (ttimer) {
                    ttime = ttime + 1;
                    zeit = ttime;
                    RefreshConfig();
                    for (Player p : chl.getServer().getOnlinePlayers()) {
                        p.sendActionBar("§7Challenge§8: §2§l" + thrs + ":" + tmin + ":" + tsek);
                    }
                } else {
                    for (Player p : chl.getServer().getOnlinePlayers()) {
                        p.sendActionBar("§6Der Timer ist pausiert.");
                    }
                }
            }
        }, 1 * 20L, 1 * 20L);
    }

    public void RefreshConfig() {
        min = zeit / 60;
        hrs = min / 60;
        min = min % 60;
        sek = zeit % 60;
        if (sek >= 10) {
            ssek = Integer.toString(sek);
        } else
            ssek = '0' + Integer.toString(sek);
        if (min >= 10) {
            smin = Integer.toString(min);
        } else
            smin = '0' + Integer.toString(min);
        chl.getConfig().set("timer.time", zeit);
        chl.getConfig().set("timer.sek", ssek);
        chl.getConfig().set("timer.min", smin);
        chl.getConfig().set("timer.hrs", hrs);
        chl.saveConfig();
    }

}