diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java index e7d4db2..7730f73 100644 --- a/src/main/java/de/fanta/challenges/Challenges.java +++ b/src/main/java/de/fanta/challenges/Challenges.java @@ -109,40 +109,7 @@ this.backpack = new BackpackCommand(this); - getCommand("settings").setExecutor(new SettingsCommandTODO(this)); - getCommand("revive").setExecutor(new ReviveCommandTODO(this)); - - CommandRouter challengesRouter = new CommandRouter(getCommand("challenges")); - challengesRouter.addCommandMapping(new ChallengesCommand(this)); - - CommandRouter resetRouter = new CommandRouter(getCommand("reset")); - resetRouter.addCommandMapping(new ResetCommand(this)); - - CommandRouter backpackRouter = new CommandRouter(getCommand("backpack")); - backpackRouter.addCommandMapping(backpack); - - - CommandRouter coordsRouter = new CommandRouter(getCommand("coords")); - coordsRouter.addCommandMapping(new CoordsCommand(this)); - coordsRouter.addCommandMapping(new CoordsShareCommand(this), "share"); - coordsRouter.addCommandMapping(new CoordsGetCommand(this), "get"); - coordsRouter.addCommandMapping(new CoordsSaveCommand(this), "save"); - coordsRouter.addCommandMapping(new CoordsDeleteCommand(this), "delete"); - - CommandRouter hpRouter = new CommandRouter(getCommand("hp")); - hpRouter.addCommandMapping(new HPAddCommand(this), "add"); - hpRouter.addCommandMapping(new HPGetCommand(this), "get"); - hpRouter.addCommandMapping(new HPMaxCommand(this), "max"); - hpRouter.addCommandMapping(new HPRemoveCommand(this), "remove"); - hpRouter.addCommandMapping(new HPSetCommand(this), "set"); - - CommandRouter timerRouter = new CommandRouter(getCommand("timer")); - timerRouter.addCommandMapping(new TimerForceMLGCommand(this), "forcemlg"); - timerRouter.addCommandMapping(new TimerPauseCommand(this), "pause"); - timerRouter.addCommandMapping(new TimerResetCommand(this), "reset"); - timerRouter.addCommandMapping(new TimerReverseCommand(this), "reverse"); - timerRouter.addCommandMapping(new TimerSetCommand(this), "set"); - timerRouter.addCommandMapping(new TimerStartCommand(this), "start"); + registerCommands(); Bukkit.getPluginManager().registerEvents(new InventoryClickListener(), this); Bukkit.getPluginManager().registerEvents(new QuitJoinListener(), this); @@ -177,12 +144,7 @@ getLogger().info("World reset failed!"); e.printStackTrace(); } - getConfig().set("World_Reset", Boolean.valueOf(false)); - getConfig().set("timer.enabled", Boolean.valueOf(false)); - getConfig().set("timer.time", Integer.valueOf(0)); - getConfig().set("timer.sek", "00"); - getConfig().set("timer.min", "00"); - getConfig().set("timer.hrs", Integer.valueOf(0)); + getConfig().set("World_Reset", false); saveConfig(); this.backpack.clearConfig(); this.rndDrops.shuffleItems(); @@ -194,6 +156,44 @@ this.backpack.loadInventoryFromConfig(); getLogger().info("Plugin loaded!"); this.sbManager = new SBManager(); + + timer.setTime(getConfig().getInt("timertime")); + } + + private void registerCommands() { + getCommand("settings").setExecutor(new SettingsCommandTODO(this)); + getCommand("revive").setExecutor(new ReviveCommandTODO(this)); + + CommandRouter challengesRouter = new CommandRouter(getCommand("challenges")); + challengesRouter.addCommandMapping(new ChallengesCommand(this)); + + CommandRouter resetRouter = new CommandRouter(getCommand("reset")); + resetRouter.addCommandMapping(new ResetCommand(this)); + + CommandRouter backpackRouter = new CommandRouter(getCommand("backpack")); + backpackRouter.addCommandMapping(backpack); + + CommandRouter coordsRouter = new CommandRouter(getCommand("coords")); + coordsRouter.addCommandMapping(new CoordsCommand(this)); + coordsRouter.addCommandMapping(new CoordsShareCommand(this), "share"); + coordsRouter.addCommandMapping(new CoordsGetCommand(this), "get"); + coordsRouter.addCommandMapping(new CoordsSaveCommand(this), "save"); + coordsRouter.addCommandMapping(new CoordsDeleteCommand(this), "delete"); + + CommandRouter hpRouter = new CommandRouter(getCommand("hp")); + hpRouter.addCommandMapping(new HPAddCommand(this), "add"); + hpRouter.addCommandMapping(new HPGetCommand(this), "get"); + hpRouter.addCommandMapping(new HPMaxCommand(this), "max"); + hpRouter.addCommandMapping(new HPRemoveCommand(this), "remove"); + hpRouter.addCommandMapping(new HPSetCommand(this), "set"); + + CommandRouter timerRouter = new CommandRouter(getCommand("timer")); + timerRouter.addCommandMapping(new TimerForceMLGCommand(this), "forcemlg"); + timerRouter.addCommandMapping(new TimerPauseCommand(this), "pause"); + timerRouter.addCommandMapping(new TimerResetCommand(this), "reset"); + timerRouter.addCommandMapping(new TimerReverseCommand(this), "reverse"); + timerRouter.addCommandMapping(new TimerSetCommand(this), "set"); + timerRouter.addCommandMapping(new TimerStartCommand(this), "start"); } @Override @@ -205,6 +205,8 @@ } catch (IOException e) { e.printStackTrace(); } + getConfig().set("timertime", timer.getTime()); + saveConfig(); getLogger().info("Plugin unloaded"); } diff --git a/src/main/java/de/fanta/challenges/Timer.java b/src/main/java/de/fanta/challenges/Timer.java index 0130753..a8e23bb 100644 --- a/src/main/java/de/fanta/challenges/Timer.java +++ b/src/main/java/de/fanta/challenges/Timer.java @@ -20,6 +20,7 @@ private final Challenges plugin; private final Random random; private int taskId; + private int idleTaskId; private int time; // seconds private int timeSinceMLG; // seconds @@ -31,9 +32,17 @@ this.plugin = plugin; this.random = new Random(); this.maxMLGTime = plugin.getConfig().getInt("mlg.maxtime"); + + if (!isRunning()) { + sendIdleActionBar(); + } } public void startTimer() { + if (idleTaskId > 0) { + Bukkit.getScheduler().cancelTask(idleTaskId); + idleTaskId = -1; + } taskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> { int random = this.random.nextInt(750); timeSinceMLG++; @@ -68,12 +77,18 @@ taskId = -1; } - for (Player p : Bukkit.getOnlinePlayers()) { - p.sendActionBar(ChatColor.GOLD + "" + ChatColor.BOLD + "Der Timer ist pausiert."); - if (p.getGameMode() != GameMode.SPECTATOR) { - p.getWorld().playEffect(p.getLocation(), Effect.ENDER_SIGNAL, 2); + sendIdleActionBar(); + } + + private void sendIdleActionBar() { + idleTaskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> { + for (Player p : Bukkit.getOnlinePlayers()) { + p.sendActionBar(ChatColor.GOLD + "" + ChatColor.BOLD + "Der Timer ist pausiert."); + if (p.getGameMode() != GameMode.SPECTATOR) { + p.getWorld().playEffect(p.getLocation(), Effect.ENDER_SIGNAL, 2); + } } - } + }, 0L, 20L); } public boolean triggerMLG() { @@ -97,12 +112,8 @@ } } - public void setTimer(int seconds) { - this.time = seconds; - } - public String formatTime(ChatColor color) { - return color + StringUtil.formatTimespan((long) time * 1000L, ChatColor.GOLD + " Day/s", "", "", "", color + ":", ":", true, true); + return color + StringUtil.formatTimespan((long) time * 1000L, ChatColor.GOLD + " Day/s", "", "", "", color + ":", ":", false, true); } public void reverseTimer() { @@ -157,4 +168,12 @@ public boolean isReverse() { return reverse; } + + public int getTime() { + return time; + } + + public void setTime(int seconds) { + this.time = seconds; + } } \ No newline at end of file diff --git a/src/main/java/de/fanta/challenges/commands/ResetCommand.java b/src/main/java/de/fanta/challenges/commands/ResetCommand.java index 32294ad..bfffda2 100644 --- a/src/main/java/de/fanta/challenges/commands/ResetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/ResetCommand.java @@ -22,17 +22,14 @@ @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { - if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) {// + if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { + plugin.getTimer().stopTimer(); + plugin.getTimer().setTime(0); for (Player p : Bukkit.getOnlinePlayers()) { p.sendTitle(ChatColor.GREEN + "Server wird zurückgesetzt!", ChatColor.RED + "Bitte warte einen Moment" + ChatColor.GREEN + "." + ChatColor.AQUA + "." + ChatColor.YELLOW + ".", 10, 220, 10); } plugin.getConfig().set("World_Name", Bukkit.getWorlds().get(0).getName()); plugin.getConfig().set("World_Reset", true); - plugin.getConfig().set("timer.enabled", false); - plugin.getConfig().set("timer.time", 0); - plugin.getConfig().set("timer.sek", "00"); - plugin.getConfig().set("timer.min", "00"); - plugin.getConfig().set("timer.hrs", 0); for (String key : plugin.getConfig().getConfigurationSection("Saved_Locations").getKeys(false)) { plugin.getConfig().set("Saved_Locations." + key, null); } @@ -42,8 +39,7 @@ for (Player p : Bukkit.getOnlinePlayers()) { p.kickPlayer(ChatColor.RED + "Welt wird zurückgesetzt!\n" + ChatColor.RED + "Bitte warte einen Moment..."); } - ConsoleCommandSender console = Bukkit.getServer().getConsoleSender(); - Bukkit.dispatchCommand(console, "restart"); + Bukkit.shutdown(); }, 60); } else { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur" + plugin.getCurrentEditor().getName() + " kann die Map zurücksetzen!"); diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java index bfb7d9b..3df6007 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java @@ -25,7 +25,7 @@ return true; } if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { - plugin.getTimer().setTimer(0); + plugin.getTimer().setTime(0); Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.RED + " Der Timer wurde zurückgesetzt!"); } else { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java index 8c85a5f..2b9c0ca 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java @@ -28,7 +28,7 @@ int time = args.getNext(-1); if (time >= 0) { if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { - plugin.getTimer().setTimer(time); + plugin.getTimer().setTime(time); Bukkit.broadcastMessage(Challenges.PREFIX + " §bDer Timer wurde auf " + plugin.getTimer().formatTime(ChatColor.GREEN) + " §bgesetzt!"); } else { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); diff --git a/src/main/java/de/fanta/challenges/events/BlockCreateListener.java b/src/main/java/de/fanta/challenges/events/BlockCreateListener.java index 2b49fdf..8cc2db3 100644 --- a/src/main/java/de/fanta/challenges/events/BlockCreateListener.java +++ b/src/main/java/de/fanta/challenges/events/BlockCreateListener.java @@ -1,7 +1,5 @@ package de.fanta.challenges.events; - - import de.fanta.challenges.Challenges; import org.bukkit.GameMode; import org.bukkit.event.EventHandler; @@ -11,19 +9,19 @@ public class BlockCreateListener implements Listener { - private Challenges chl = Challenges.getplugin(); - - @EventHandler - public void onBlockPlace(BlockPlaceEvent e) { - if (!this.chl.getConfig().getBoolean("timer.enabled") && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { - e.setCancelled(true); - } - } - - @EventHandler - public void onBucketPlace(PlayerBucketEmptyEvent e) { - if (!this.chl.getConfig().getBoolean("timer.enabled") && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { - e.setCancelled(true); - } - } + private Challenges plugin = Challenges.getplugin(); + + @EventHandler + public void onBlockPlace(BlockPlaceEvent e) { + if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + e.setCancelled(true); + } + } + + @EventHandler + public void onBucketPlace(PlayerBucketEmptyEvent e) { + if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + e.setCancelled(true); + } + } } diff --git a/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java b/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java index 058ccff..be611f4 100644 --- a/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java +++ b/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java @@ -14,25 +14,25 @@ public class BlockDestroyListener implements Listener { - private Challenges chl = Challenges.getplugin(); + private Challenges plugin = Challenges.getplugin(); @EventHandler public void onBlockBreak(BlockBreakEvent e) { - if (this.chl.getConfig().getBoolean("rnddrops") && this.chl.getConfig().getBoolean("timer.enabled")) { + if (this.plugin.getConfig().getBoolean("rnddrops") && plugin.getTimer().isRunning()) { e.setDropItems(false); - e.getBlock().getWorld().dropItem(e.getBlock().getLocation().add(0.5D, 0.5D, 0.5D), new ItemStack(this.chl.getRandomDropsManager().getMaterialFromBlock(e.getBlock()))); + e.getBlock().getWorld().dropItem(e.getBlock().getLocation().add(0.5D, 0.5D, 0.5D), new ItemStack(this.plugin.getRandomDropsManager().getMaterialFromBlock(e.getBlock()))); } - if ((!this.chl.getConfig().getBoolean("timer.enabled")) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if ((!plugin.getTimer().isRunning()) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { e.setCancelled(true); } } @EventHandler public void onBlockExplode(BlockExplodeEvent e) { - if (this.chl.getConfig().getBoolean("rnddrops")) { + if (this.plugin.getConfig().getBoolean("rnddrops")) { e.blockList().forEach(block -> { if(!block.getType().isAir()){ - block.getWorld().dropItem(block.getLocation().add(0.5D, 0.5D, 0.5D),new ItemStack(this.chl.getRandomDropsManager().getMaterialFromBlock(block))); + block.getWorld().dropItem(block.getLocation().add(0.5D, 0.5D, 0.5D),new ItemStack(this.plugin.getRandomDropsManager().getMaterialFromBlock(block))); block.setType(Material.AIR); } }); @@ -42,10 +42,10 @@ @EventHandler public void onEntityExplode(EntityExplodeEvent e) { - if (this.chl.getConfig().getBoolean("rnddrops")) { + if (this.plugin.getConfig().getBoolean("rnddrops")) { e.blockList().forEach(block -> { if(!block.getType().isAir()){ - block.getWorld().dropItem(block.getLocation().add(0.5D, 0.5D, 0.5D),new ItemStack(this.chl.getRandomDropsManager().getMaterialFromBlock(block))); + block.getWorld().dropItem(block.getLocation().add(0.5D, 0.5D, 0.5D),new ItemStack(this.plugin.getRandomDropsManager().getMaterialFromBlock(block))); block.setType(Material.AIR); } }); diff --git a/src/main/java/de/fanta/challenges/events/DamageListener.java b/src/main/java/de/fanta/challenges/events/DamageListener.java index e6ea44b..49ae40a 100644 --- a/src/main/java/de/fanta/challenges/events/DamageListener.java +++ b/src/main/java/de/fanta/challenges/events/DamageListener.java @@ -22,7 +22,7 @@ public class DamageListener implements Listener { - private Challenges chl = Challenges.getplugin(); + private Challenges plugin = Challenges.getplugin(); @EventHandler public void onDamage(EntityDamageEvent e) { @@ -31,29 +31,29 @@ String dmg = new DecimalFormat("#.##").format(e.getFinalDamage()); if (e.getFinalDamage() > 0) { if (e.getCause() == DamageCause.FALL) { - if (chl.getConfig().getBoolean("deathonfall")) { - if (chl.getConfig().getBoolean("dmginchat")) { + if (plugin.getConfig().getBoolean("deathonfall")) { + if (plugin.getConfig().getBoolean("dmginchat")) { Bukkit.broadcastMessage(Challenges.PREFIX + "§6 " + p.getName() + " §chat §4" + p.getHealth() + " §cHP Schaden genommen durch §4" + e.getCause()); } - Bukkit.getScheduler().scheduleSyncDelayedTask(chl, new Runnable() { + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { @Override public void run() { p.setHealth(0); } }, 1); - } else if (chl.getConfig().getBoolean("dmginchat")) { + } else if (plugin.getConfig().getBoolean("dmginchat")) { Bukkit.broadcastMessage(Challenges.PREFIX + "§6 " + p.getName() + " §chat §4" + dmg + " §cHP Schaden genommen durch §4" + e.getCause()); } } else if (e.getCause() == DamageCause.CUSTOM) { - if (!p.isSneaking() && (chl.getConfig().getBoolean("dmginchat"))) { - Bukkit.broadcastMessage(Challenges.PREFIX + "§6 " + p.getName() + " §chat §4" + chl.getConfig().getDouble("sneakdmg") + " §cHP Schaden genommen durch §4SNEAKING"); + if (!p.isSneaking() && (plugin.getConfig().getBoolean("dmginchat"))) { + Bukkit.broadcastMessage(Challenges.PREFIX + "§6 " + p.getName() + " §chat §4" + plugin.getConfig().getDouble("sneakdmg") + " §cHP Schaden genommen durch §4SNEAKING"); } } else if (e.getCause() == DamageCause.ENTITY_ATTACK || e.getCause() == DamageCause.ENTITY_EXPLOSION) { - } else if (chl.getConfig().getBoolean("dmginchat")) { + } else if (plugin.getConfig().getBoolean("dmginchat")) { Bukkit.broadcastMessage(Challenges.PREFIX + "§6 " + p.getName() + " §chat §4" + dmg + " §cHP Schaden genommen durch §4" + e.getCause()); } - if (chl.getConfig().getBoolean("sharedmg")) { + if (plugin.getConfig().getBoolean("sharedmg")) { for (Player pp : Bukkit.getOnlinePlayers()) { if (pp != p) { double health = pp.getHealth() - e.getFinalDamage(); @@ -79,7 +79,7 @@ if ((e.getEntity() instanceof Player) && (e.getFinalDamage() > 0)) { Player p = (Player) e.getEntity(); String dmg = new DecimalFormat("#.##").format(e.getFinalDamage()); - if ((e.getCause() == DamageCause.ENTITY_ATTACK || e.getCause() == DamageCause.ENTITY_EXPLOSION) && chl.getConfig().getBoolean("dmginchat")) { + if ((e.getCause() == DamageCause.ENTITY_ATTACK || e.getCause() == DamageCause.ENTITY_EXPLOSION) && plugin.getConfig().getBoolean("dmginchat")) { Bukkit.broadcastMessage(Challenges.PREFIX + "§6 " + p.getName() + " §chat §4" + dmg + " §cHP Schaden genommen durch §4" + e.getDamager().getName()); } } @@ -89,10 +89,10 @@ @EventHandler public void PlayerSneak(PlayerToggleSneakEvent e) { Player p = e.getPlayer(); - if ((this.chl.getConfig().getBoolean("timer.enabled")) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { if (!p.isSneaking()) { - if (chl.getConfig().getBoolean("damageonsneak")) { - if (chl.getConfig().getBoolean("tntdeath")) { + if (plugin.getConfig().getBoolean("damageonsneak")) { + if (plugin.getConfig().getBoolean("tntdeath")) { for (Player pp : Bukkit.getOnlinePlayers()) { pp.sendTitle("§c" + p.getDisplayName().toString() + " §ahat gesneakt!", "§b:>"); EntityType tnt = EntityType.PRIMED_TNT; @@ -104,7 +104,7 @@ PRIME_TNT.setIsIncendiary(true); } } else { - p.damage(chl.getConfig().getDouble("sneakdmg")); + p.damage(plugin.getConfig().getDouble("sneakdmg")); } } } @@ -115,10 +115,10 @@ @EventHandler public void PlayerSprint(PlayerToggleSprintEvent e) { Player p = e.getPlayer(); - if ((this.chl.getConfig().getBoolean("timer.enabled")) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { if (!p.isSprinting()) { - if (chl.getConfig().getBoolean("deathonsprint")) { - if (chl.getConfig().getBoolean("tntdeath")) { + if (plugin.getConfig().getBoolean("deathonsprint")) { + if (plugin.getConfig().getBoolean("tntdeath")) { for (Player pp : Bukkit.getOnlinePlayers()) { pp.sendTitle("§c" + p.getDisplayName().toString() + " §aist gesprintet!", "§bBOOOM :>"); EntityType tnt = EntityType.PRIMED_TNT; @@ -141,9 +141,9 @@ @EventHandler public void onPlayerJump(PlayerJumpEvent e) { Player p = e.getPlayer(); - if ((this.chl.getConfig().getBoolean("timer.enabled")) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { - if (chl.getConfig().getBoolean("deathonjump")) { - if (chl.getConfig().getBoolean("tntdeath")) { + if (plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (plugin.getConfig().getBoolean("deathonjump")) { + if (plugin.getConfig().getBoolean("tntdeath")) { for (Player pp : Bukkit.getOnlinePlayers()) { pp.sendTitle("§c" + p.getDisplayName().toString() + " §aist gesprungen!", "§bBOOOM :>"); EntityType tnt = EntityType.PRIMED_TNT; @@ -166,8 +166,8 @@ if (e.getEntity() instanceof Player) { Player p = (Player) e.getEntity(); if (e.getEntity() instanceof Player) { - if (chl.getConfig().getBoolean("clinvdmg")) { - if ((this.chl.getConfig().getBoolean("timer.enabled")) && p.getGameMode() == GameMode.SURVIVAL) { + if (plugin.getConfig().getBoolean("clinvdmg")) { + if (plugin.getTimer().isRunning() && p.getGameMode() == GameMode.SURVIVAL) { for (Player pp : Bukkit.getOnlinePlayers()) { pp.getInventory().clear(); ChatUtil.sendNormalMessage(pp, e.getEntity().getName() + " hat Schaden bekommen! Alle Inventare wurden gelöscht!"); @@ -183,9 +183,9 @@ @EventHandler public void PlayerGetXP(PlayerExpChangeEvent e) { Player p = e.getPlayer(); - if ((this.chl.getConfig().getBoolean("timer.enabled")) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { - if (chl.getConfig().getBoolean("xpdeath")) { - if (chl.getConfig().getBoolean("tntdeath")) { + if (plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (plugin.getConfig().getBoolean("xpdeath")) { + if (plugin.getConfig().getBoolean("tntdeath")) { for (Player pp : Bukkit.getOnlinePlayers()) { pp.sendTitle("§c" + p.getDisplayName().toString() + " §ahat XP eingesammelt!", "§bPling :>"); EntityType tnt = EntityType.PRIMED_TNT; diff --git a/src/main/java/de/fanta/challenges/events/DeathListener.java b/src/main/java/de/fanta/challenges/events/DeathListener.java index 9501676..de4aac7 100644 --- a/src/main/java/de/fanta/challenges/events/DeathListener.java +++ b/src/main/java/de/fanta/challenges/events/DeathListener.java @@ -16,25 +16,25 @@ public class DeathListener implements Listener { - private Challenges chl = Challenges.getplugin(); + private Challenges plugin = Challenges.getplugin(); @EventHandler public void onPlayerDeath(PlayerDeathEvent e) { - if (chl.getConfig().getBoolean("onelife")) { - chl.getConfig().set("timer.enabled", false); - chl.saveConfig(); + if (plugin.getConfig().getBoolean("onelife")) { + plugin.getTimer().stopTimer(); + plugin.saveConfig(); for (Player p : Bukkit.getOnlinePlayers()) { p.setGameMode(GameMode.SPECTATOR); } - chl.getServer().broadcastMessage(""); - chl.getServer().broadcastMessage(""); + plugin.getServer().broadcastMessage(""); + plugin.getServer().broadcastMessage(""); e.setDeathMessage("§6" + e.getEntity().getName() + " §cist gestorben!"); - chl.getServer().broadcastMessage("§cDie Challenge wurde nach §6" + chl.getConfig().getInt("timer.hrs") + ":" + chl.getConfig().getString("timer.min") + ":" + chl.getConfig().getString("timer.sek") + " §cabgebrochen!"); - chl.getServer().broadcastMessage("§aSeed: §b" + Bukkit.getWorlds().get(0).getSeed()); - chl.getServer().broadcastMessage("§6Um alle wiederzubeleben benutze §c/revive ALL"); + plugin.getServer().broadcastMessage("§cDie Challenge wurde nach §6" + plugin.getTimer().formatTime(ChatColor.GOLD) + " §cabgebrochen!"); + plugin.getServer().broadcastMessage("§aSeed: §b" + Bukkit.getWorlds().get(0).getSeed()); + plugin.getServer().broadcastMessage("§6Um alle wiederzubeleben benutze §c/revive ALL"); } else { e.setDeathMessage("§6" + e.getEntity().getName() + " §cist gestorben! §6(" + e.getEntity().getWorld().getName() + " " + e.getEntity().getLocation().getBlockX() + " " + e.getEntity().getLocation().getBlockY() + " " + e.getEntity().getLocation().getBlockZ() + "§c)"); - if (!chl.getConfig().getBoolean("respawn")) { + if (!plugin.getConfig().getBoolean("respawn")) { Bukkit.getServer().broadcastMessage("§6Benutze §c/revive " + e.getEntity().getName() + " [world] [x] [y] [z] §6um ihn wiederzubeleben!"); } } @@ -42,9 +42,9 @@ @EventHandler public void onPlayerRespawn(PlayerRespawnEvent e) { - if (!chl.getConfig().getBoolean("respawn")) { + if (!plugin.getConfig().getBoolean("respawn")) { e.getPlayer().sendTitle("§cDu bist gestorben!", "§4Du bist nun Zuschauer", 10, 80, 10); - Bukkit.getScheduler().scheduleSyncDelayedTask(chl, new Runnable() { + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { @Override public void run() { e.getPlayer().setGameMode(GameMode.SPECTATOR); @@ -56,14 +56,14 @@ @EventHandler public void DragonDeath(EntityDeathEvent e) { if (e.getEntity() instanceof EnderDragon) { - chl.getConfig().set("timer.enabled", false); + plugin.getTimer().stopTimer(); Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); Bukkit.broadcastMessage(Challenges.PREFIX); Bukkit.broadcastMessage(Challenges.PREFIX); Bukkit.broadcastMessage(Challenges.PREFIX); Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §aDie Challenge wurde §2§lerfolgreich §aabgeschlossen."); Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Der §2§lEnderdrache §7ist gestorben."); - Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Benötigte Zeit: §2§l" + chl.getConfig().getInt("timer.hrs") + ":"+ chl.getConfig().getString("timer.min") + ":" + chl.getConfig().getString("timer.sek") + "§7!"); + Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Benötigte Zeit: §2§l" + plugin.getTimer().formatTime(ChatColor.GREEN) + "§7!"); Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Seed: §2§l" + Bukkit.getWorlds().get(0).getSeed()); Bukkit.broadcastMessage(Challenges.PREFIX); Bukkit.broadcastMessage(Challenges.PREFIX); diff --git a/src/main/java/de/fanta/challenges/events/InteractListener.java b/src/main/java/de/fanta/challenges/events/InteractListener.java index 8197508..5df1cb5 100644 --- a/src/main/java/de/fanta/challenges/events/InteractListener.java +++ b/src/main/java/de/fanta/challenges/events/InteractListener.java @@ -25,7 +25,7 @@ e.setCancelled(true); } } - if ((!this.chl.getConfig().getBoolean("timer.enabled")) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (!chl.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { e.setCancelled(true); } } @@ -38,7 +38,7 @@ e.setCancelled(true); } } - if ((!this.chl.getConfig().getBoolean("timer.enabled")) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (!chl.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { e.setCancelled(true); } } diff --git a/src/main/java/de/fanta/challenges/events/QuitJoinListener.java b/src/main/java/de/fanta/challenges/events/QuitJoinListener.java index 5e1979a..534ce66 100644 --- a/src/main/java/de/fanta/challenges/events/QuitJoinListener.java +++ b/src/main/java/de/fanta/challenges/events/QuitJoinListener.java @@ -56,8 +56,7 @@ e.setQuitMessage(null); if (Bukkit.getOnlinePlayers().size() == 1) { - plugin.getConfig().set("timer.enabled", false); - plugin.saveConfig(); + plugin.getTimer().stopTimer(); } if (plugin.getCurrentEditor() != null && player.getUniqueId().equals(plugin.getCurrentEditor().getUniqueId())) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 0cf264c..21ae682 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -20,13 +20,7 @@ enabled: false killall: false maxtime: 600 -timer: - enabled: false - reverse: false - time: 0 - sek: '00' - min: '00' - hrs: 0 +timertime: 0 Saved_Locations: {} World_Name: world World_Reset: false \ No newline at end of file