diff --git a/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java b/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java index e3c0fba..79f7be3 100644 --- a/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java +++ b/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java @@ -2,6 +2,7 @@ import de.fanta.challenges.Challenges; import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.commands.timer.TimerUtil; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; @@ -25,6 +26,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] args) { if ((plugin.getCurrentEditor() != null && ((Player) sender).getUniqueId().equals(plugin.getCurrentEditor().getUniqueId())) || sender.hasPermission("Challenges.editor.override")) { if (args.length == 1) { + TimerUtil.setMlg_active(false); if (args[0].equalsIgnoreCase("all")) { for (Player p : Bukkit.getOnlinePlayers()) { p.setHealth(p.getMaxHealth()); diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerForcemlgCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerForcemlgCommand.java index d0f7607..0a3eeca 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerForcemlgCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerForcemlgCommand.java @@ -10,6 +10,8 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import java.util.Random; + public class TimerForcemlgCommand extends SubCommand { private final Challenges plugin; @@ -18,8 +20,6 @@ this.plugin = plugin; } - private static boolean mlg_active = false; - @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { if (!(sender instanceof Player)) { @@ -27,19 +27,10 @@ return true; } if ((plugin.getCurrentEditor() != null && ((Player) sender).getUniqueId().equals(plugin.getCurrentEditor().getUniqueId())) || sender.hasPermission("Challenges.editor.override")) { - if (!mlg_active) { - mlg_active = true; - Bukkit.broadcastMessage(Challenges.PREFIX + " §bZeit für einen MLG! §6Viel Glück!"); - for (Player p : Bukkit.getOnlinePlayers()) { - if (p.getGameMode() == GameMode.SURVIVAL && !p.isDead()) { - TimerUtil.TPMLG(p); - } - return true; - } - } else { - ChatUtil.sendWarningMessage(sender, "Ein MLG findet bereits statt!"); - return true; + if (!TimerUtil.triggerMLG()) { + ChatUtil.sendWarningMessage(sender,"Ein MLG findet bereits statt!"); } + } 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/TimerUtil.java b/src/main/java/de/fanta/challenges/commands/timer/TimerUtil.java index 6fe6274..ddab03a 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerUtil.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerUtil.java @@ -55,14 +55,8 @@ if (ttimer) { tsincemlg++; - if (plugin.getConfig().getBoolean("mlg.enabled") && !mlg_active && Bukkit.getOnlinePlayers().size() >= 1 && (rndnmbr == 638 || tsincemlg >= plugin.getConfig().getInt("mlg.maxtime"))) { - Bukkit.broadcastMessage(Challenges.PREFIX + " §bZeit für einen MLG! §6Viel Glück!"); - tsincemlg = 0; - for (Player p : Bukkit.getOnlinePlayers()) { - if ((((p.getGameMode() == GameMode.SURVIVAL) ? 1 : 0) & (!p.isDead() ? 1 : 0)) != 0) { - TPMLG(p); - } - } + if (rndnmbr == 638 || tsincemlg >= plugin.getConfig().getInt("mlg.maxtime")) { + triggerMLG(); } if (plugin.getConfig().getBoolean("timer.reverse")) { @@ -100,6 +94,21 @@ }, 20L, 20L); } + public static boolean triggerMLG() { + if (plugin.getConfig().getBoolean("mlg.enabled") && !mlg_active && Bukkit.getOnlinePlayers().size() >= 1) { + mlg_active = true; + Bukkit.broadcastMessage(Challenges.PREFIX + " §bZeit für einen MLG! §6Viel Glück!"); + tsincemlg = 0; + for (Player p : Bukkit.getOnlinePlayers()) { + if ((((p.getGameMode() == GameMode.SURVIVAL) ? 1 : 0) & (!p.isDead() ? 1 : 0)) != 0) { + TPMLG(p); + } + } + return true; + } + return false; + } + private void sendTimerActionBar(ChatColor color) { for (Player p : Bukkit.getOnlinePlayers()) { p.sendActionBar(color + StringUtil.formatTimespan(time * 1000, ChatColor.GOLD + " Day/s", "", "", "", color + ":", ":", true, true)); @@ -138,13 +147,13 @@ plugin.saveConfig(); } - @SuppressWarnings("deprecation") + public static void TPMLG(Player p) { p.closeInventory(); Inventory inv = Bukkit.createInventory(p, InventoryType.PLAYER, p.getName()); inv.setContents(p.getInventory().getContents()); p.getInventory().clear(); - p.getInventory().setItemInHand(new ItemStack(Material.WATER_BUCKET)); + p.getInventory().setItemInMainHand(new ItemStack(Material.WATER_BUCKET)); int rndY = random.nextInt(20); Location oldloc = p.getLocation(); @@ -159,13 +168,9 @@ public void run() { mlg_active = false; if (!p.isDead() && p.getWorld() == Bukkit.getWorld("mlg_challenge")) { - if (plugin.getConfig().getBoolean("timer.enabled")) { ChatUtil.sendNormalMessage(p, "§aDu hast den §bMLG §aerfolgreich absolviert! §6Weitere folgen..."); p.setInvulnerable(true); MLGBack(p, loc, inv); - } else { - MLGBack(p, loc, inv); - } } else if (Bukkit.getWorlds().get(0).getGameRuleValue("keepInventory").equals("true")) { p.getInventory().setContents(inv.getContents()); } @@ -184,4 +189,11 @@ }, 60L); } + public static boolean isMlg_active() { + return mlg_active; + } + + public static void setMlg_active(boolean mlg_active) { + TimerUtil.mlg_active = mlg_active; + } } \ No newline at end of file