diff --git a/src/main/java/de/fanta/challenges/Bingo.java b/src/main/java/de/fanta/challenges/Bingo.java deleted file mode 100644 index 5a03a34..0000000 --- a/src/main/java/de/fanta/challenges/Bingo.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.fanta.challenges; - -import de.fanta.challenges.utils.ChatSkullAPI.ChatSkull; -import de.fanta.challenges.utils.ChatUtil; -import de.fanta.challenges.utils.guiutils.GUIUtils; -import org.bukkit.Bukkit; -import org.bukkit.GameMode; -import org.bukkit.Material; -import org.bukkit.Sound; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -public class Bingo { - - private Challenges plugin = Challenges.getPlugin(); - - private boolean running; - - private List materials; - private Map> playerMaterials; - - public Bingo() { - this.materials = new ArrayList(); - this.playerMaterials = new HashMap<>(); - } - - public void setMaterials(List materials) { - this.materials = materials; - } - - public List getMaterials() { - return materials; - } - - public Map> getPlayerMaterials() { - return playerMaterials; - } - - public boolean isRunning() { - return running; - } - - public void setRunning(boolean running) { - this.running = running; - } - - public void addDiscoveredItem(Player player, ItemStack itemStack) { - UUID uuid = player.getUniqueId(); - Material material = itemStack.getType(); - if (this.materials.contains(material)) { - List items = new ArrayList<>(); - if (playerMaterials.get(uuid) != null) { - items = playerMaterials.get(uuid); - } - if (!items.contains(material)) { - items.add(material); - playerMaterials.put(uuid, items); - plugin.getScoreManager().updateScore(player, 1); - ChatUtil.sendNormalMessage(player, "Item: " + ChatUtil.BLUE + itemStack.getI18NDisplayName() + ChatUtil.GREEN + " wurde Registriert"); - player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); - - if(plugin.getScoreManager().getScore(player) == materials.size()){ - plugin.getTimer().stopTimer(); - GUIUtils.sendTitleToAll("Event", ChatUtil.BLUE + player.getName() + ChatUtil.GREEN + " hat alle Items gefunden!", ChatUtil.BLUE); - String[] lines = {"","",""," " + ChatUtil.BLUE + player.getName(),ChatUtil.GREEN + " hat alle Items gefunden!","","",""}; - ChatSkull.sendAll(player, lines); - for (Player pp : Bukkit.getOnlinePlayers()) { - pp.setGameMode(GameMode.SPECTATOR); - } - } - } - } - } - -} diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java index 13b2fb8..279e155 100644 --- a/src/main/java/de/fanta/challenges/Challenges.java +++ b/src/main/java/de/fanta/challenges/Challenges.java @@ -1,6 +1,8 @@ package de.fanta.challenges; +import de.fanta.challenges.challenges.Bingo; import de.fanta.challenges.challenges.RandomDrops; +import de.fanta.challenges.challenges.TiedTogether; import de.fanta.challenges.commands.CommandRegistration; import de.fanta.challenges.events.PlayerCountChangedEvent; import de.fanta.challenges.events.ServerStatusChangedEvent; @@ -73,6 +75,8 @@ private Bingo bingo; + private TiedTogether tiedTogether; + private VanishUtils vanish; private BackpackGui backpack; @@ -151,6 +155,7 @@ this.timer = new Timer(this); this.rndDrops = new RandomDrops(); this.bingo = new Bingo(); + this.tiedTogether = new TiedTogether(); this.scoreManager = new ScoreManager(this); this.vanish = new VanishUtils(this); @@ -367,6 +372,10 @@ return bingo; } + public TiedTogether getTiedTogether() { + return tiedTogether; + } + public VanishUtils getVanish() { return vanish; } diff --git a/src/main/java/de/fanta/challenges/RIPBoden.java b/src/main/java/de/fanta/challenges/RIPBoden.java deleted file mode 100644 index 87d2e41..0000000 --- a/src/main/java/de/fanta/challenges/RIPBoden.java +++ /dev/null @@ -1,47 +0,0 @@ -package de.fanta.challenges; - -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.scheduler.BukkitRunnable; - -import java.util.ArrayList; - -public class RIPBoden { - private static Challenges plugin = Challenges.getPlugin(); - public static ArrayList LAVA_BLOCKS = new ArrayList<>(); - - public static void setMagma(Block b, Material old) { - new BukkitRunnable() { - - @Override - public void run() { - b.setType(Material.MAGMA_BLOCK); - setLava(b, old); - } - }.runTaskLater(plugin, 20L); - } - - public static void setLava(Block b, Material old) { - new BukkitRunnable() { - - @Override - public void run() { - b.setType(Material.LAVA); - setOld(b, old); - } - }.runTaskLater(plugin, 60L); - } - - public static void setOld(Block b, Material old) { - new BukkitRunnable() { - - @Override - public void run() { - if (b.getType() == Material.LAVA || b.getType() == Material.OBSIDIAN || b.getType() == Material.COBBLESTONE || b.getType() == Material.STONE) { - b.setType(old); - } - LAVA_BLOCKS.remove(b); - } - }.runTaskLater(plugin, 200L); - } -} diff --git a/src/main/java/de/fanta/challenges/challenges/Bingo.java b/src/main/java/de/fanta/challenges/challenges/Bingo.java new file mode 100644 index 0000000..c4b71d7 --- /dev/null +++ b/src/main/java/de/fanta/challenges/challenges/Bingo.java @@ -0,0 +1,82 @@ +package de.fanta.challenges.challenges; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.ChatSkullAPI.ChatSkull; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.guiutils.GUIUtils; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +public class Bingo { + + private Challenges plugin = Challenges.getPlugin(); + + private boolean running; + + private List materials; + private Map> playerMaterials; + + public Bingo() { + this.materials = new ArrayList(); + this.playerMaterials = new HashMap<>(); + } + + public void setMaterials(List materials) { + this.materials = materials; + } + + public List getMaterials() { + return materials; + } + + public Map> getPlayerMaterials() { + return playerMaterials; + } + + public boolean isRunning() { + return running; + } + + public void setRunning(boolean running) { + this.running = running; + } + + public void addDiscoveredItem(Player player, ItemStack itemStack) { + UUID uuid = player.getUniqueId(); + Material material = itemStack.getType(); + if (this.materials.contains(material)) { + List items = new ArrayList<>(); + if (playerMaterials.get(uuid) != null) { + items = playerMaterials.get(uuid); + } + if (!items.contains(material)) { + items.add(material); + playerMaterials.put(uuid, items); + plugin.getScoreManager().updateScore(player, 1); + ChatUtil.sendNormalMessage(player, "Item: " + ChatUtil.BLUE + itemStack.getI18NDisplayName() + ChatUtil.GREEN + " wurde Registriert"); + player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); + + if(plugin.getScoreManager().getScore(player) == materials.size()){ + plugin.getTimer().stopTimer(); + GUIUtils.sendTitleToAll("Event", ChatUtil.BLUE + player.getName() + ChatUtil.GREEN + " hat alle Items gefunden!", ChatUtil.BLUE); + String[] lines = {"","",""," " + ChatUtil.BLUE + player.getName(),ChatUtil.GREEN + " hat alle Items gefunden!","","",""}; + ChatSkull.sendAll(player, lines); + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.setGameMode(GameMode.SPECTATOR); + } + } + } + } + } + +} diff --git a/src/main/java/de/fanta/challenges/challenges/RIPBoden.java b/src/main/java/de/fanta/challenges/challenges/RIPBoden.java new file mode 100644 index 0000000..ec52d21 --- /dev/null +++ b/src/main/java/de/fanta/challenges/challenges/RIPBoden.java @@ -0,0 +1,48 @@ +package de.fanta.challenges.challenges; + +import de.fanta.challenges.Challenges; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.scheduler.BukkitRunnable; + +import java.util.ArrayList; + +public class RIPBoden { + private static Challenges plugin = Challenges.getPlugin(); + public static ArrayList LAVA_BLOCKS = new ArrayList<>(); + + public static void setMagma(Block b, Material old) { + new BukkitRunnable() { + + @Override + public void run() { + b.setType(Material.MAGMA_BLOCK); + setLava(b, old); + } + }.runTaskLater(plugin, 20L); + } + + public static void setLava(Block b, Material old) { + new BukkitRunnable() { + + @Override + public void run() { + b.setType(Material.LAVA); + setOld(b, old); + } + }.runTaskLater(plugin, 60L); + } + + public static void setOld(Block b, Material old) { + new BukkitRunnable() { + + @Override + public void run() { + if (b.getType() == Material.LAVA || b.getType() == Material.OBSIDIAN || b.getType() == Material.COBBLESTONE || b.getType() == Material.STONE) { + b.setType(old); + } + LAVA_BLOCKS.remove(b); + } + }.runTaskLater(plugin, 200L); + } +} diff --git a/src/main/java/de/fanta/challenges/challenges/TiedTogether.java b/src/main/java/de/fanta/challenges/challenges/TiedTogether.java new file mode 100644 index 0000000..db5a4f7 --- /dev/null +++ b/src/main/java/de/fanta/challenges/challenges/TiedTogether.java @@ -0,0 +1,61 @@ +package de.fanta.challenges.challenges; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.ChatUtil; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +public class TiedTogether { + + private static final Challenges plugin = Challenges.getPlugin(); + + private Player minXPlayer = plugin.getCurrentEditor(); + private Player maxXPlayer = plugin.getCurrentEditor(); + private double xCenter; + + private Player minYPlayer = plugin.getCurrentEditor(); + private Player maxYPlayer = plugin.getCurrentEditor(); + private double yCenter; + + private Player minZPlayer = plugin.getCurrentEditor(); + private Player maxZPlayer = plugin.getCurrentEditor(); + private double zCenter; + + + public void calculateDistances() { + for (Player p : Bukkit.getOnlinePlayers()) { + if (plugin.getVanish().isVanish(p) || p.getGameMode() != GameMode.SURVIVAL) { + continue; + } + if (p.getLocation().getX() < minXPlayer.getLocation().getX()) { + minXPlayer = p; + } + if (p.getLocation().getX() > maxXPlayer.getLocation().getX()) { + maxXPlayer = p; + } + if (p.getLocation().getY() < minYPlayer.getLocation().getY()) { + minYPlayer = p; + } + if (p.getLocation().getY() > maxYPlayer.getLocation().getY()) { + maxYPlayer = p; + } + if (p.getLocation().getZ() < minZPlayer.getLocation().getZ()) { + minZPlayer = p; + } + if (p.getLocation().getZ() > maxZPlayer.getLocation().getZ()) { + maxZPlayer = p; + } + xCenter = maxXPlayer.getLocation().getX() + minXPlayer.getLocation().getX() / 2; + yCenter = maxYPlayer.getLocation().getY() + minYPlayer.getLocation().getY() / 2; + zCenter = maxZPlayer.getLocation().getZ() + minZPlayer.getLocation().getZ() / 2; + Location center = new Location(plugin.getCurrentEditor().getWorld(), xCenter, yCenter, zCenter); + if (p.getLocation().distanceSquared(center) > 900) { + plugin.getTimer().stopTimer(); + p.setGameMode(GameMode.ADVENTURE); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat sich zu weit entfernt! Die Challenge ist verloren!"); + } + } + } +} diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java index db27185..31d4cb3 100644 --- a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java +++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java @@ -24,8 +24,8 @@ import de.fanta.challenges.commands.hp.HPSetCommand; import de.fanta.challenges.commands.reset.ResetCommand; import de.fanta.challenges.commands.reset.ResetConfirmCommand; -import de.fanta.challenges.commands.revive.ReviveCommandTODO; -import de.fanta.challenges.commands.settings.SettingsCommandTODO; +import de.fanta.challenges.commands.revive.ReviveCommand; +import de.fanta.challenges.commands.settings.SettingsCommand; import de.fanta.challenges.commands.timer.TimerCommand; import de.fanta.challenges.commands.timer.TimerPauseCommand; import de.fanta.challenges.commands.timer.TimerResetCommand; @@ -42,8 +42,6 @@ } public void registerCommands() { - plugin.getCommand("settings").setExecutor(new SettingsCommandTODO(plugin)); - plugin.getCommand("revive").setExecutor(new ReviveCommandTODO(plugin)); CommandRouter challengesRouter = new CommandRouter(plugin.getCommand("challenges")); challengesRouter.addCommandMapping(new ChallengesCommand(plugin)); @@ -111,5 +109,11 @@ CommandRouter voidRouter = new CommandRouter(plugin.getCommand("void")); voidRouter.addCommandMapping(new VoidToggleCommand(plugin, true), "enable"); voidRouter.addCommandMapping(new VoidToggleCommand(plugin, false), "disable"); + + CommandRouter settingsRouter = new CommandRouter(plugin.getCommand("settings")); + settingsRouter.addCommandMapping(new SettingsCommand(plugin)); + + CommandRouter reviveRouter = new CommandRouter(plugin.getCommand("revive")); + reviveRouter.addCommandMapping(new ReviveCommand(plugin)); } } diff --git a/src/main/java/de/fanta/challenges/commands/revive/ReviveCommand.java b/src/main/java/de/fanta/challenges/commands/revive/ReviveCommand.java new file mode 100644 index 0000000..e4f4a8a --- /dev/null +++ b/src/main/java/de/fanta/challenges/commands/revive/ReviveCommand.java @@ -0,0 +1,62 @@ +package de.fanta.challenges.commands.revive; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.ChatUtil; +import de.iani.cubesideutils.bukkit.commands.SubCommand; +import de.iani.cubesideutils.commands.ArgsParser; +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 "); + return true; + } + + String next = args.next(); + if (next.equalsIgnoreCase("all")) { + plugin.getTimer().setMlgActive(false); + for (Player p : Bukkit.getOnlinePlayers()) { + p.setHealth(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); + p.setGameMode(GameMode.SURVIVAL); + } + ChatUtil.sendBrodcastMessage("Alle Spieler wurden wiederbelebt! Es kann weiter gehen!"); + } 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.getName() + " wurde von " + sender.getName() + " wiederbelebt!"); + } 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; + } +} \ No newline at end of file diff --git a/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java b/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java deleted file mode 100644 index 5a8af9a..0000000 --- a/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java +++ /dev/null @@ -1,81 +0,0 @@ -package de.fanta.challenges.commands.revive; - -import de.fanta.challenges.Challenges; -import de.fanta.challenges.utils.ChatUtil; -import org.bukkit.Bukkit; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.OfflinePlayer; -import org.bukkit.World; -import org.bukkit.attribute.Attribute; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class ReviveCommandTODO implements CommandExecutor { - - private final Challenges plugin; - - public ReviveCommandTODO(Challenges plugin) { - this.plugin = plugin; - } - @Deprecated - @Override - public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] args) { - if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { - if (args.length == 1) { - plugin.getTimer().setMlgActive(false); - if (args[0].equalsIgnoreCase("all")) { - for (Player p : Bukkit.getOnlinePlayers()) { - p.setHealth(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); - p.setGameMode(GameMode.SURVIVAL); - } - Bukkit.broadcastMessage("§bAlle Spieler wurden wiederbelebt! §aEs kann weiter gehen!"); - } else { - OfflinePlayer other = (Bukkit.getServer().getOfflinePlayer(args[0])); - if (other.isOnline()) { - Player p = (Player) other; - p.setHealth(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); - p.setGameMode(GameMode.SURVIVAL); - Bukkit.broadcastMessage("§b" + p.getName() + " §awurde von §b" + sender.getName() + " §awiederbelebt!"); - } else - sender.sendMessage("§cDieser Spieler ist nicht online!"); - } - } else if (args.length >= 4) { - World w = Bukkit.getWorld(args[1]); - double x = Double.parseDouble(args[2]); - double y = Double.parseDouble(args[3]); - double z = Double.parseDouble(args[4]); - Location loc = new Location(w, x, y, z); - if (args[0].equalsIgnoreCase("all")) { - for (Player p : Bukkit.getOnlinePlayers()) { - p.teleport(loc); - p.setHealth(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); - p.setGameMode(GameMode.SURVIVAL); - } - Bukkit.broadcastMessage("§bAlle Spieler wurden bei §c" + w.getName() + " " + x + " " + y + " " + z + " §bwiederbelebt! §aEs kann weiter gehen!"); - } else { - OfflinePlayer other = (Bukkit.getServer().getOfflinePlayer(args[0])); - if (other.isOnline()) { - Player p = (Player) other; - p.teleport(loc); - p.setHealth(p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); - p.setGameMode(GameMode.SURVIVAL); - Bukkit.broadcastMessage("§b" + p.getName() + " §awurde von §b" + sender.getName() + " §abei §c" + w.getName() + " " + x + " " + y + " " + z + " §awiederbelebt!"); - } else - sender.sendMessage("§cDieser Spieler ist nicht online!"); - } - } else - sender.sendMessage("§cBenutze: /revive [world] [x] [y] [z]"); - return true; - } else if (plugin.getCurrentEditor() != null) { - ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur" + plugin.getCurrentEditor().getName() + " kann Spieler wiederbeleben!"); - return true; - } 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; - } - } -} diff --git a/src/main/java/de/fanta/challenges/commands/settings/SettingsCommand.java b/src/main/java/de/fanta/challenges/commands/settings/SettingsCommand.java new file mode 100644 index 0000000..42a3b34 --- /dev/null +++ b/src/main/java/de/fanta/challenges/commands/settings/SettingsCommand.java @@ -0,0 +1,37 @@ +package de.fanta.challenges.commands.settings; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.guis.settingsgui.MainGui; +import de.fanta.challenges.utils.ChatUtil; +import de.iani.cubesideutils.bukkit.commands.SubCommand; +import de.iani.cubesideutils.commands.ArgsParser; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class SettingsCommand extends SubCommand { + + private final Challenges plugin; + + public SettingsCommand(Challenges plugin) { + this.plugin = plugin; + } + + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String s1, ArgsParser args) { + if (sender instanceof Player) { + Player p = (Player) sender; + if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { + MainGui.createMainGUI(p); + } else { + ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); + } + } else if (plugin.getCurrentEditor() != null) { + ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); + } 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; + } +} diff --git a/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java b/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java deleted file mode 100644 index 49408b3..0000000 --- a/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.fanta.challenges.commands.settings; - -import de.fanta.challenges.Challenges; -import de.fanta.challenges.guis.settingsgui.MainGui; -import de.fanta.challenges.utils.ChatUtil; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class SettingsCommandTODO implements CommandExecutor { - - private final Challenges plugin; - - public SettingsCommandTODO(Challenges plugin) { - this.plugin = plugin; - } - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { - if (sender instanceof Player) { - Player p = (Player) sender; - if (args.length == 0) { - if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { - MainGui.createMainGUI(p); - return true; - } else { - ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); - } - } else if (plugin.getCurrentEditor() != null) { - ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); - return true; - } 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; - } - } - return true; - } -} diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java index f9f65eb..6b66814 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java @@ -30,7 +30,7 @@ World world = Bukkit.getWorld("world"); world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false); plugin.getTimer().stopTimer(); - ChatUtil.sendBrodcastMessage(ChatUtil.RED + " Der Timer wurde angehalten"); + ChatUtil.sendBrodcastMessage(ChatUtil.RED + "Der Timer wurde angehalten"); } else { ChatUtil.sendWarningMessage(sender, "Der Timer ist bereits pausiert!"); } diff --git a/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java b/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java index 1106ee6..8f5e03b 100644 --- a/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java +++ b/src/main/java/de/fanta/challenges/guis/eventgui/EventItemsGui.java @@ -1,6 +1,6 @@ package de.fanta.challenges.guis.eventgui; -import de.fanta.challenges.Bingo; +import de.fanta.challenges.challenges.Bingo; import de.fanta.challenges.Challenges; import org.bukkit.Bukkit; import org.bukkit.Material; diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java index 8310de0..a6f1feb 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java @@ -36,6 +36,7 @@ private static final int TARGET_INDEX = 4; private static final int SHARE_DMG_INDEX = 28; private static final int LAVA_FLOOR_INDEX = 29; + private static final int TIED_TOGETHER_INDEX = 30; private static final int DMG_ON_SNEAK_INDEX = 43; private static final int DMG_ON_SNEAK_ADD_INDEX = 34; @@ -112,6 +113,11 @@ } else { SETTINGS_GUI.setItem(LAVA_FLOOR_INDEX, GUIUtils.createGuiItem(Material.MAGMA_BLOCK, ChatColor.RED + "Der Boden ist Lava deaktiviert")); } + if (plugin.getConfig().getBoolean("tiedtogether")) { + SETTINGS_GUI.setItem(TIED_TOGETHER_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatColor.GREEN + "Zusammengebunden aktiviert", true)); + } else { + SETTINGS_GUI.setItem(TIED_TOGETHER_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatColor.RED + "Zusammengebunden deaktiviert")); + } SETTINGS_GUI.setItem(SHUFFLE_RANDOM_DROP_INDEX, GUIUtils.createGuiItem(Material.CHORUS_FLOWER, ChatColor.GREEN + "Zufällige Drops neu mischen")); SETTINGS_GUI.setItem(CLOSE_GUI_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED + "Menü verlassen!")); SETTINGS_GUI.setItem(BACK_BUTTON_INDEX, GUIUtils.createGuiItem(Material.ARROW, ChatColor.GREEN + "Zurück")); @@ -262,6 +268,15 @@ GUIUtils.sendTitleToAll("Challenge", "Der Boden ist Lava aktiviert", ChatColor.GREEN); } break; + case TIED_TOGETHER_INDEX: + if (plugin.getConfig().getBoolean("tiedtogether")) { + GUIUtils.setConfig("tiedtogether", false); + GUIUtils.sendTitleToAll("Challenge", "Zusammengebunden deaktiviert", ChatColor.RED); + } else { + GUIUtils.setConfig("tiedtogether", true); + GUIUtils.sendTitleToAll("Challenge", "Zusammengebunden aktiviert", ChatColor.GREEN); + } + break; default: break; } diff --git a/src/main/java/de/fanta/challenges/listeners/BingoListener.java b/src/main/java/de/fanta/challenges/listeners/BingoListener.java index d0fe660..aac7a1a 100644 --- a/src/main/java/de/fanta/challenges/listeners/BingoListener.java +++ b/src/main/java/de/fanta/challenges/listeners/BingoListener.java @@ -1,6 +1,6 @@ package de.fanta.challenges.listeners; -import de.fanta.challenges.Bingo; +import de.fanta.challenges.challenges.Bingo; import de.fanta.challenges.Challenges; import de.fanta.challenges.events.TimerChangedEvent; import de.fanta.challenges.guis.eventgui.EventItemsGui; diff --git a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java index c53e2ca..93d7fc8 100644 --- a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java +++ b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java @@ -1,9 +1,8 @@ package de.fanta.challenges.listeners; -import com.destroystokyo.paper.event.player.PlayerJumpEvent; -import de.fanta.challenges.Bingo; import de.fanta.challenges.Challenges; -import de.fanta.challenges.RIPBoden; +import de.fanta.challenges.challenges.Bingo; +import de.fanta.challenges.challenges.RIPBoden; import de.fanta.challenges.events.PlayerCountChangedEvent; import de.fanta.challenges.guis.eventgui.EventItemsGui; import de.fanta.challenges.utils.ChatUtil; @@ -18,24 +17,13 @@ import org.bukkit.event.entity.EntityTargetLivingEntityEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.player.PlayerAttemptPickupItemEvent; -import org.bukkit.event.player.PlayerBucketEmptyEvent; -import org.bukkit.event.player.PlayerBucketFillEvent; -import org.bukkit.event.player.PlayerDropItemEvent; -import org.bukkit.event.player.PlayerLevelChangeEvent; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerPickupItemEvent; -import org.bukkit.event.player.PlayerPortalEvent; -import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.event.player.*; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; import org.kitteh.vanish.event.VanishStatusChangeEvent; -import java.util.Arrays; -import java.util.List; import java.util.Objects; -import java.util.Random; public class PlayerListener implements Listener { @@ -130,7 +118,6 @@ int newz = newLoc.getBlockZ(); if (newx != oldx || newy != oldy || newz != oldz) { new BukkitRunnable() { - @Override public void run() { Block b = player.getLocation().subtract(0, 1, 0).getBlock(); @@ -143,6 +130,9 @@ } } } + if (plugin.getConfig().getBoolean("tiedtogether")) { + plugin.getTiedTogether().calculateDistances(); + } } @EventHandler diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 57d2648..99a8c8b 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -16,6 +16,7 @@ tntdeath: false target: true lavafloor: false +tiedtogether: false #Mögliche werte: 1-6 backpack_size: 3 mlg: