diff --git a/src/main/java/de/fanta/challenges/challenges/TiedTogether.java b/src/main/java/de/fanta/challenges/challenges/TiedTogether.java index db5a4f7..0999456 100644 --- a/src/main/java/de/fanta/challenges/challenges/TiedTogether.java +++ b/src/main/java/de/fanta/challenges/challenges/TiedTogether.java @@ -1,7 +1,6 @@ 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; @@ -11,20 +10,16 @@ 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() { + Player minXPlayer = plugin.getCurrentEditor(); + Player maxXPlayer = plugin.getCurrentEditor(); + + Player minYPlayer = plugin.getCurrentEditor(); + Player maxYPlayer = plugin.getCurrentEditor(); + + Player minZPlayer = plugin.getCurrentEditor(); + Player maxZPlayer = plugin.getCurrentEditor(); + for (Player p : Bukkit.getOnlinePlayers()) { if (plugin.getVanish().isVanish(p) || p.getGameMode() != GameMode.SURVIVAL) { continue; @@ -47,15 +42,17 @@ 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!"); + double xCenter = (maxXPlayer.getLocation().getX() + minXPlayer.getLocation().getX()) / 2; + double yCenter = (maxYPlayer.getLocation().getY() + minYPlayer.getLocation().getY()) / 2; + double zCenter = (maxZPlayer.getLocation().getZ() + minZPlayer.getLocation().getZ()) / 2; + Location center = new Location(plugin.getCurrentEditor().getWorld(), xCenter, yCenter, zCenter); + + if (p.getLocation().distanceSquared(center) > (plugin.getConfig().getDouble("playerrange") / 2) * (plugin.getConfig().getDouble("playerrange") / 2)) { + for (Player player : Bukkit.getOnlinePlayers()) { + player.damage(4); + } } } } } + 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 a6f1feb..71b31be 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java @@ -30,13 +30,16 @@ private static final int DEATH_ON_SPRINT_INDEX = 39; private static final int DEATH_ON_JUMP_INDEX = 40; private static final int CLEANR_INV_BY_DAMAGE_INDEX = 41; - private static final int MLG_INDEX = 42; + private static final int MLG_INDEX = 30; private static final int RANDOM_DROP_INDEX = 8; private static final int SHUFFLE_RANDOM_DROP_INDEX = 17; 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 TIED_TOGETHER_INDEX = 42; + private static final int RANGE_ON_TIED_TOGETHER_ADD_INDEX = 33; + private static final int RANGE_ON_TIED_TOGETHER_REMOVE_INDEX = 51; private static final int DMG_ON_SNEAK_INDEX = 43; private static final int DMG_ON_SNEAK_ADD_INDEX = 34; @@ -114,9 +117,13 @@ 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)); + SETTINGS_GUI.setItem(TIED_TOGETHER_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatColor.GREEN + "Zusammengebunden aktiviert", true, ChatColor.GREEN + "Maximale Entfernung der Spieler: " + plugin.getConfig().getDouble("playerrange"))); + SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_ADD_INDEX, CustomHeads.QUARTZ_ARROW_UP.getHead()); + SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_REMOVE_INDEX, CustomHeads.QUARTZ_ARROW_DOWN.getHead()); } else { SETTINGS_GUI.setItem(TIED_TOGETHER_INDEX, GUIUtils.createGuiItem(Material.DIAMOND_BOOTS, ChatColor.RED + "Zusammengebunden deaktiviert")); + SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_ADD_INDEX, GUIUtils.EMPTY_ICON); + SETTINGS_GUI.setItem(RANGE_ON_TIED_TOGETHER_REMOVE_INDEX, GUIUtils.EMPTY_ICON); } 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!")); @@ -277,6 +284,14 @@ GUIUtils.sendTitleToAll("Challenge", "Zusammengebunden aktiviert", ChatColor.GREEN); } break; + case RANGE_ON_TIED_TOGETHER_ADD_INDEX: + GUIUtils.setConfig("playerrange", plugin.getConfig().getDouble("playerrange") + 1); + break; + case RANGE_ON_TIED_TOGETHER_REMOVE_INDEX: + if (plugin.getConfig().getDouble("playerrange") > 0) { + GUIUtils.setConfig("playerrange", plugin.getConfig().getDouble("playerrange") - 1); + } + break; default: break; } diff --git a/src/main/java/de/fanta/challenges/listeners/DeathListener.java b/src/main/java/de/fanta/challenges/listeners/DeathListener.java index 6e76a1d..c421eba 100644 --- a/src/main/java/de/fanta/challenges/listeners/DeathListener.java +++ b/src/main/java/de/fanta/challenges/listeners/DeathListener.java @@ -17,49 +17,60 @@ public class DeathListener implements Listener { - private final Challenges plugin = Challenges.getPlugin(); + private final Challenges plugin = Challenges.getPlugin(); - @EventHandler - public void onPlayerDeath(PlayerDeathEvent e) { - if (plugin.getConfig().getBoolean("onelife")) { - plugin.getTimer().stopTimer(); - for (Player p : Bukkit.getOnlinePlayers()) { - p.setGameMode(GameMode.SPECTATOR); - } - e.setDeathMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + e.getEntity().getName() + ChatUtil.GREEN + " ist gestorben!"); - ChatUtil.sendBrodcastMessage("Verschwendete Zeit " + plugin.getTimer().formatTime(ChatColor.GOLD)); - ChatUtil.sendBrodcastMessage("Welt Seed: " + Bukkit.getWorlds().get(0).getSeed()); - ChatUtil.sendBrodcastMessage("Um alle wiederzubeleben benutze §c/revive ALL"); - } else { - if (plugin.getConfig().getBoolean("event.enabled")) { - e.setDeathMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + e.getEntity().getName() + ChatUtil.GREEN + " ist gestorben!"); - } else { - e.setDeathMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + e.getEntity().getName() + ChatUtil.GREEN + " ist gestorben!" + ChatUtil.ORANGE + " (" + e.getEntity().getLocation().getBlockX() + "/" + e.getEntity().getLocation().getBlockY() + "/" + e.getEntity().getLocation().getBlockZ() + ")"); - } - if (!plugin.getConfig().getBoolean("respawn")) { - Player editor = plugin.getCurrentEditor(); - ChatUtil.sendNormalMessage(editor, "§6Benutze §c/revive " + e.getEntity().getName() + " [world] [x] [y] [z] §6um ihn wiederzubeleben!"); - } - } - } - - @EventHandler - public void DragonDeath(EntityDeathEvent e) { - if (Objects.equals(plugin.getConfig().getString("event.type"), "nix")) { - if ((e.getEntity() instanceof EnderDragon && plugin.getConfig().getBoolean("target")) || (e.getEntity() instanceof Wither && !plugin.getConfig().getBoolean("target"))) { - 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>> §7Der §2§l" + e.getEntity().getName().toLowerCase() + " §7wurde besiegt."); - 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); - Bukkit.broadcastMessage(Challenges.PREFIX); - Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - } - } - } + @EventHandler + public void onPlayerDeath(PlayerDeathEvent e) { + if (plugin.getConfig().getBoolean("onelife")) { + plugin.getTimer().stopTimer(); + for (Player p : Bukkit.getOnlinePlayers()) { + p.setGameMode(GameMode.SPECTATOR); + } + e.setDeathMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + e.getEntity().getName() + ChatUtil.GREEN + " ist gestorben!"); + ChatUtil.sendBrodcastMessage("Verschwendete Zeit " + plugin.getTimer().formatTime(ChatColor.GOLD)); + ChatUtil.sendBrodcastMessage("Welt Seed: " + Bukkit.getWorlds().get(0).getSeed()); + ChatUtil.sendBrodcastMessage("Um alle wiederzubeleben benutze §c/revive ALL"); + } else { + if (plugin.getConfig().getBoolean("event.enabled")) { + e.setDeathMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + e.getEntity().getName() + ChatUtil.GREEN + " ist gestorben!"); + } else { + e.setDeathMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + e.getEntity().getName() + ChatUtil.GREEN + " ist gestorben!" + ChatUtil.ORANGE + " (" + e.getEntity().getLocation().getBlockX() + "/" + e.getEntity().getLocation().getBlockY() + "/" + e.getEntity().getLocation().getBlockZ() + ")"); + } + if (!plugin.getConfig().getBoolean("respawn")) { + Player editor = plugin.getCurrentEditor(); + ChatUtil.sendNormalMessage(editor, "§6Benutze §c/revive " + e.getEntity().getName() + " [world] [x] [y] [z] §6um ihn wiederzubeleben!"); + } + } + + if (plugin.getConfig().getBoolean("tiedtogether")) { + plugin.getTimer().stopTimer(); + for (Player p : Bukkit.getOnlinePlayers()) { + p.setGameMode(GameMode.SPECTATOR); + } + ChatUtil.sendBrodcastMessage("Ein Spieler hat sich zu weit entfernt! Die Challenge ist verloren!"); + ChatUtil.sendBrodcastMessage("Verschwendete Zeit: " + plugin.getTimer().formatTime(ChatColor.GOLD)); + ChatUtil.sendBrodcastMessage("Welt Seed: " + Bukkit.getWorlds().get(0).getSeed()); + ChatUtil.sendBrodcastMessage("Um alle wiederzubeleben benutze /revive ALL"); + } + } + + @EventHandler + public void DragonDeath(EntityDeathEvent e) { + if (Objects.equals(plugin.getConfig().getString("event.type"), "nix")) { + if ((e.getEntity() instanceof EnderDragon && plugin.getConfig().getBoolean("target")) || (e.getEntity() instanceof Wither && !plugin.getConfig().getBoolean("target"))) { + 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>> §7Der §2§l" + e.getEntity().getName().toLowerCase() + " §7wurde besiegt."); + 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); + Bukkit.broadcastMessage(Challenges.PREFIX); + Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + } + } + } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 99a8c8b..9c3e79e 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -17,6 +17,7 @@ target: true lavafloor: false tiedtogether: false +playerrange: 30 #Mögliche werte: 1-6 backpack_size: 3 mlg: