diff --git a/pom.xml b/pom.xml index c05a67a..b08c377 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,10 @@ destroystokyo-repo https://repo.destroystokyo.com/repository/maven-public/ + + OnARandomBox + http://repo.onarandombox.com/content/repositories/multiverse-snapshots + @@ -59,6 +63,11 @@ provided + com.onarandombox.multiversecore + Multiverse-Core + 4.1.1-SNAPSHOT + + org.projectlombok lombok 1.16.22 diff --git a/src/main/java/net/brennholz/challenges/Challenges.java b/src/main/java/net/brennholz/challenges/Challenges.java index 1564ba9..edca76e 100644 --- a/src/main/java/net/brennholz/challenges/Challenges.java +++ b/src/main/java/net/brennholz/challenges/Challenges.java @@ -1,8 +1,5 @@ package net.brennholz.challenges; -import com.google.common.io.MoreFiles; -import com.google.common.io.RecursiveDeleteOption; - import net.brennholz.commands.Challenges_Command; import net.brennholz.commands.Coords_Command; import net.brennholz.commands.HP_Command; @@ -17,7 +14,6 @@ import net.brennholz.events.InteractListener; import net.brennholz.events.InventoryClickListener; import net.brennholz.events.QuitJoinListener; - import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -33,6 +29,9 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; +import com.google.common.io.MoreFiles; +import com.google.common.io.RecursiveDeleteOption; + public class Challenges extends JavaPlugin { private static Challenges plugin; @@ -60,63 +59,63 @@ public void onEnable() { - plugin = this; - this.Timer = new Timer_Command(); - this.backpack = new Backpack(); - this.rndDrops = new RandomDrops(); - getCommand("hp").setExecutor(new HP_Command()); - getCommand("settings").setExecutor(new Settings_Command()); - getCommand("coords").setExecutor(new Coords_Command()); - getCommand("revive").setExecutor(new Revive_Command()); - getCommand("timer").setExecutor(new Timer_Command()); - getCommand("challenges").setExecutor(new Challenges_Command()); - getCommand("backpack").setExecutor(new Backpack()); - getCommand("reset").setExecutor(new Reset_Command()); - - Bukkit.getPluginManager().registerEvents(new InventoryClickListener(), (Plugin)this); - Bukkit.getPluginManager().registerEvents(new QuitJoinListener(), (Plugin)this); - Bukkit.getPluginManager().registerEvents(new BlockDestroyListener(), (Plugin)this); - Bukkit.getPluginManager().registerEvents(new BlockCreateListener(), (Plugin)this); - Bukkit.getPluginManager().registerEvents(new InteractListener(), (Plugin)this); - Bukkit.getPluginManager().registerEvents(new DamageListener(), (Plugin)this); - Bukkit.getPluginManager().registerEvents(new DeathListener(), (Plugin)this); - - saveDefaultConfig(); - reloadConfig(); - createRndDropsConfig(); - createBackpackConfig(); - if (getConfig().getBoolean("World_Reset")) { - getLogger().info("/Reset Command was executed!"); - getLogger().info("Preparing world reset!"); - String worldname = getConfig().getString("World_Name"); - String nethername = worldname + "_nether"; - String endname = worldname + "_the_end"; - File worldfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + worldname); - File netherfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + nethername); - File endfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + endname); - try { - MoreFiles.deleteRecursively(worldfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); - MoreFiles.deleteRecursively(netherfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); - MoreFiles.deleteRecursively(endfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); - getLogger().info("World reset successful!"); - } catch (IOException e) { - getLogger().info("World reset failed!"); - e.printStackTrace(); - } - getConfig().set("World_Reset", Boolean.valueOf(false)); - saveConfig(); - this.backpack.clearConfig(); - this.rndDrops.shuffleItems(); - this.rndDrops.saveItems(); - this.rndDrops.loadItems(); - } else { - this.rndDrops.loadItems(); - } - this.backpack.loadInventoryFromConfig(); - this.Timer.Run_Timer(); - getLogger().info("Plugin loaded!"); - this.sbManager = new SBManager(); - } + plugin = this; + this.Timer = new Timer_Command(); + this.backpack = new Backpack(); + this.rndDrops = new RandomDrops(); + getCommand("hp").setExecutor(new HP_Command()); + getCommand("settings").setExecutor(new Settings_Command()); + getCommand("coords").setExecutor(new Coords_Command()); + getCommand("revive").setExecutor(new Revive_Command()); + getCommand("timer").setExecutor(new Timer_Command()); + getCommand("challenges").setExecutor(new Challenges_Command()); + getCommand("backpack").setExecutor(new Backpack()); + getCommand("reset").setExecutor(new Reset_Command()); + + Bukkit.getPluginManager().registerEvents(new InventoryClickListener(), (Plugin)this); + Bukkit.getPluginManager().registerEvents(new QuitJoinListener(), (Plugin)this); + Bukkit.getPluginManager().registerEvents(new BlockDestroyListener(), (Plugin)this); + Bukkit.getPluginManager().registerEvents(new BlockCreateListener(), (Plugin)this); + Bukkit.getPluginManager().registerEvents(new InteractListener(), (Plugin)this); + Bukkit.getPluginManager().registerEvents(new DamageListener(), (Plugin)this); + Bukkit.getPluginManager().registerEvents(new DeathListener(), (Plugin)this); + + saveDefaultConfig(); + reloadConfig(); + createRndDropsConfig(); + createBackpackConfig(); + if (getConfig().getBoolean("World_Reset")) { + getLogger().info("/Reset Command was executed!"); + getLogger().info("Preparing world reset!"); + String worldname = getConfig().getString("World_Name"); + String nethername = worldname + "_nether"; + String endname = worldname + "_the_end"; + File worldfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + worldname); + File netherfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + nethername); + File endfolder = new File(Bukkit.getWorldContainer().getPath() + "/" + endname); + try { + MoreFiles.deleteRecursively(worldfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); + MoreFiles.deleteRecursively(netherfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); + MoreFiles.deleteRecursively(endfolder.toPath(), new RecursiveDeleteOption[] { RecursiveDeleteOption.ALLOW_INSECURE }); + getLogger().info("World reset successful!"); + } catch (IOException e) { + getLogger().info("World reset failed!"); + e.printStackTrace(); + } + getConfig().set("World_Reset", Boolean.valueOf(false)); + saveConfig(); + this.backpack.clearConfig(); + this.rndDrops.shuffleItems(); + this.rndDrops.saveItems(); + this.rndDrops.loadItems(); + } else { + this.rndDrops.loadItems(); + } + this.backpack.loadInventoryFromConfig(); + this.Timer.Run_Timer(); + getLogger().info("Plugin loaded!"); + this.sbManager = new SBManager(); + } @@ -185,6 +184,9 @@ SettingsGUI.setItem(8, addGUIItem(Material.BOOK, "§6Schaden in Chat", "§cZeigt Spielerschaden im Chat an")); SettingsGUI.setItem(18, addGUIItem(Material.DIAMOND_BOOTS, "§6Tod bei Sprinten", "§cSpieler Stirbt beim Sprinten")); SettingsGUI.setItem(19, addGUIItem(Material.LEATHER_BOOTS, "§6Tod bei Springen", "§cSpieler Stirbt beim Springen")); + SettingsGUI.setItem(20, addGUIItem(Material.BARRIER, "§6Inv Löschen bei DMG","§cLöscht das Inventar von allen wenn ein Spieler schaden bekommt!")); + + SettingsGUI.setItem(26, addGUIItem(Material.TNT, "§6Sterben durch TnT","§cTötet dich mit tnt bei der nicht Springen Schleichen und Jumpen Challenge")); SettingsGUI.setItem(36, addGUIItem(Material.CHEST, "§6KeepInventory", "§cStirbst du, beh§lst du dein Inventar")); SettingsGUI.setItem(44, addGUIItem(Material.GOLDEN_APPLE, "§6Natürliche Regeneration", "§cSchalte natürliche Regeneration um")); @@ -200,6 +202,9 @@ SettingsGUI.setItem(17, addGUIItem(getDye("dmginchat"), getBool("dmginchat"))); SettingsGUI.setItem(27, addGUIItem(getDye("deathonsprint"), getBool("deathonsprint"))); SettingsGUI.setItem(28, addGUIItem(getDye("deathonjump"), getBool("deathonjump"))); + SettingsGUI.setItem(29, addGUIItem(getDye("clinvdmg"), getBool("clinvdmg"))); + + SettingsGUI.setItem(35, addGUIItem(getDye("tntdeath"), getBool("tntdeath"))); SettingsGUI.setItem(37, addGUIItem(getgrDye("keepInventory"), getgrBool("keepInventory"))); SettingsGUI.setItem(43, addGUIItem(getgrDye("naturalRegeneration"), getgrBool("naturalRegeneration"))); diff --git a/src/main/java/net/brennholz/commands/Coords_Command.java b/src/main/java/net/brennholz/commands/Coords_Command.java index abdf14b..0d216f0 100644 --- a/src/main/java/net/brennholz/commands/Coords_Command.java +++ b/src/main/java/net/brennholz/commands/Coords_Command.java @@ -38,10 +38,7 @@ } else if (args.length == 1) { if (args[0].equalsIgnoreCase("share")) { if (p.hasPermission("challenges.coords.share")) { - chl.getServer() - .broadcastMessage("§c" + p.getName() + " §6ist bei §c" + p.getLocation().getBlockX() - + " " + p.getLocation().getBlockY() + " " + p.getLocation().getBlockZ() - + " §6in Welt §6" + p.getWorld().getName()); + chl.getServer().broadcastMessage("§c" + p.getName() + " §6ist bei §c" + p.getLocation().getBlockX() + " " + p.getLocation().getBlockY() + " " + p.getLocation().getBlockZ() + " §6in Welt §6" + p.getWorld().getName()); } else p.sendMessage("§cDu hast hierfür keine Berechtigung"); } else if (args[0].equalsIgnoreCase("get")) { @@ -58,11 +55,7 @@ if (args[0].equalsIgnoreCase("save")) { if (p.hasPermission("challenges.coords.save")) { if (!chl.getConfig().contains("Saved_Locations." + args[1])) { - chl.getServer() - .broadcastMessage("§6Die Position §c" + args[1] + " §6(§c" + p.getWorld().getName() - + " " + p.getLocation().getBlockX() + " " + p.getLocation().getBlockY() - + " " + p.getLocation().getBlockZ() + "§6) wurde von §c" + p.getName() - + " §6gespeichert"); + chl.getServer().broadcastMessage("§7| §aPosition §8>> §2" + p.getName() + " §7- " + args[1] + " §7[§2" + p.getLocation().getBlockX() + "§7/§2" + p.getLocation().getBlockY() + "§7/§2" + p.getLocation().getBlockZ() + "§7]"); chl.getConfig().set("Saved_Locations." + args[1] + ".World", p.getWorld().getName()); chl.getConfig().set("Saved_Locations." + args[1] + ".BlockX", p.getLocation().getBlockX()); chl.getConfig().set("Saved_Locations." + args[1] + ".BlockY", p.getLocation().getBlockY()); @@ -79,7 +72,7 @@ String x = chl.getConfig().getString("Saved_Locations." + args[1] + ".BlockX"); String y = chl.getConfig().getString("Saved_Locations." + args[1] + ".BlockY"); String z = chl.getConfig().getString("Saved_Locations." + args[1] + ".BlockZ"); - p.sendMessage("§6" + args[1] + ": §c" + w + " " + x + " " + y + " " + z); + p.sendMessage("§7| §aPosition §8>> §2" + p.getName() + " §7- " + args[1] + " §7[§2" + x + "§7/§2" + y + "§7/§2" + z + " " + w + "§7]"); } else p.sendMessage("§cDiese Position existiert nicht!"); } else diff --git a/src/main/java/net/brennholz/commands/Reset_Command.java b/src/main/java/net/brennholz/commands/Reset_Command.java index 8b22540..85a008c 100644 --- a/src/main/java/net/brennholz/commands/Reset_Command.java +++ b/src/main/java/net/brennholz/commands/Reset_Command.java @@ -1,22 +1,22 @@ package net.brennholz.commands; - - - + + + import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; - + import net.brennholz.challenges.Backpack; import net.brennholz.challenges.Challenges; - + public class Reset_Command implements CommandExecutor { - + private Challenges chl = Challenges.getplugin(); Backpack backpack; - + @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { { @@ -37,7 +37,7 @@ chl.getConfig().set("Saved_Locations." + key, null); } chl.saveConfig(); - + Bukkit.getScheduler().scheduleSyncDelayedTask(chl, new Runnable() { @Override public void run() { diff --git a/src/main/java/net/brennholz/commands/Timer_Command.java b/src/main/java/net/brennholz/commands/Timer_Command.java index e688e17..ce4c189 100644 --- a/src/main/java/net/brennholz/commands/Timer_Command.java +++ b/src/main/java/net/brennholz/commands/Timer_Command.java @@ -92,11 +92,11 @@ zeit = ttime; RefreshConfig(); for (Player p : chl.getServer().getOnlinePlayers()) { - p.sendActionBar("§7In Challenge§8: §2§l" + thrs + "§8§l:§2§l" + tmin + "§8§l:§2§l" + tsek); + p.sendActionBar("§7Challenge§8: §2§l" + thrs + ":" + tmin + ":" + tsek); } } else { for (Player p : chl.getServer().getOnlinePlayers()) { - p.sendActionBar("§cTimer pausiert..."); + p.sendActionBar("§6Der Timer ist pausiert."); } } } diff --git a/src/main/java/net/brennholz/events/DamageListener.java b/src/main/java/net/brennholz/events/DamageListener.java index 7fc2784..e15b7b0 100644 --- a/src/main/java/net/brennholz/events/DamageListener.java +++ b/src/main/java/net/brennholz/events/DamageListener.java @@ -3,10 +3,15 @@ import java.text.DecimalFormat; + + import org.bukkit.Bukkit; import org.bukkit.GameMode; +import org.bukkit.Location; import org.bukkit.Sound; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; +import org.bukkit.entity.TNTPrimed; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; @@ -81,33 +86,88 @@ } } + @SuppressWarnings("deprecation") @EventHandler public void PlayerSneak(PlayerToggleSneakEvent e) { Player p = (Player) e.getPlayer(); + if (p.getGameMode() == GameMode.SURVIVAL) { if (!p.isSneaking()) { if (chl.getConfig().getBoolean("damageonsneak") == true) { + if (chl.getConfig().getBoolean("tntdeath") == true) { + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.sendTitle("§c" + p.getDisplayName().toString() + " §ahat gesneakt!", "§b:>"); + EntityType tnt = EntityType.PRIMED_TNT; + Location loc = pp.getLocation(); + TNTPrimed PRIME_TNT = (TNTPrimed) pp.getWorld().spawnEntity(loc, tnt); + PRIME_TNT.setCustomName("§c§lNUKE"); + PRIME_TNT.setFuseTicks(15); + PRIME_TNT.setYield(120); + PRIME_TNT.setIsIncendiary(true); + } + } else { p.damage(chl.getConfig().getDouble("sneakdmg")); + } } } } +} + @SuppressWarnings("deprecation") @EventHandler public void PlayerSprint(PlayerToggleSprintEvent e) { Player p = (Player) e.getPlayer(); if (p.getGameMode() == GameMode.SURVIVAL) { if (!p.isSprinting()) { if (chl.getConfig().getBoolean("deathonsprint") == true) { + if (chl.getConfig().getBoolean("tntdeath") == true) { + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.sendTitle("§c" + p.getDisplayName().toString() + " §aist gesprintet!", "§b:>"); + EntityType tnt = EntityType.PRIMED_TNT; + Location loc = pp.getLocation(); + TNTPrimed PRIME_TNT = (TNTPrimed) pp.getWorld().spawnEntity(loc, tnt); + PRIME_TNT.setCustomName("§c§lNUKE"); + PRIME_TNT.setFuseTicks(15); + PRIME_TNT.setYield(120); + PRIME_TNT.setIsIncendiary(true); + } + } else { + p.setHealth(0); + } + } + } + } + } + @SuppressWarnings("deprecation") + @EventHandler + public void PlayerJump(PlayerJumpEvent e) { + Player p = (Player) e.getPlayer(); + if (p.getGameMode() == GameMode.SURVIVAL) { + if (chl.getConfig().getBoolean("deathonjump") == true) { + if (chl.getConfig().getBoolean("tntdeath") == true) { + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.sendTitle("§c" + p.getDisplayName().toString() + " §aist gesprungen!", "§b:>"); + EntityType tnt = EntityType.PRIMED_TNT; + Location loc = pp.getLocation(); + TNTPrimed PRIME_TNT = (TNTPrimed) pp.getWorld().spawnEntity(loc, tnt); + PRIME_TNT.setCustomName("§c§lNUKE"); + PRIME_TNT.setFuseTicks(15); + PRIME_TNT.setYield(120); + PRIME_TNT.setIsIncendiary(true); + } + } else { p.setHealth(0); } } } } @EventHandler - public void PlayerJump(PlayerJumpEvent e) { - Player p = (Player) e.getPlayer(); - if (p.getGameMode() == GameMode.SURVIVAL) { - if (chl.getConfig().getBoolean("deathonjump") == true) { - p.setHealth(0); + public void onDamageclear(EntityDamageEvent e) { + if (e.getEntity() instanceof Player) { + if (chl.getConfig().getBoolean("clinvdmg") == true) { + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.getInventory().clear(); + + } } } } diff --git a/src/main/java/net/brennholz/events/DeathListener.java b/src/main/java/net/brennholz/events/DeathListener.java index f60bb59..9534e79 100644 --- a/src/main/java/net/brennholz/events/DeathListener.java +++ b/src/main/java/net/brennholz/events/DeathListener.java @@ -19,7 +19,7 @@ private Challenges chl = Challenges.getplugin(); @EventHandler - public void onPlayerDeath(PlayerDeathEvent e) { + public void onPlayerDeath(PlayerDeathEvent e) { if (chl.getConfig().getBoolean("onelife") == true) { chl.getConfig().set("timer.enabled", false); chl.saveConfig(); @@ -61,9 +61,10 @@ chl.getServer().broadcastMessage(""); chl.getServer().broadcastMessage(""); chl.getServer().broadcastMessage(""); - chl.getServer().broadcastMessage("§aIhr habt die Challenge erfolgreich abgeschlossen!"); - chl.getServer().broadcastMessage("§aBenötigte Zeit: §b" + chl.getConfig().getInt("timer.hrs") + ":"+ chl.getConfig().getString("timer.min") + ":" + chl.getConfig().getString("timer.sek")); - chl.getServer().broadcastMessage("§cSeed: §b" + Bukkit.getWorlds().get(0).getSeed()); + chl.getServer().broadcastMessage("§8>> §aDie Challenge wurde §2§lerfolgreich §aabgeschlossen."); + chl.getServer().broadcastMessage("§8>> §7Der §2§lEnderdrache §7ist gestorben."); + chl.getServer().broadcastMessage("§8>> §7Benötigte Zeit: §2§l" + chl.getConfig().getInt("timer.hrs") + ":"+ chl.getConfig().getString("timer.min") + ":" + chl.getConfig().getString("timer.sek") + "§7!"); + chl.getServer().broadcastMessage("§8>> §7Seed: §2§l" + Bukkit.getWorlds().get(0).getSeed()); chl.getServer().broadcastMessage(""); chl.getServer().broadcastMessage(""); chl.getServer().broadcastMessage(""); diff --git a/src/main/java/net/brennholz/events/InventoryClickListener.java b/src/main/java/net/brennholz/events/InventoryClickListener.java index a0dae6d..ecba344 100644 --- a/src/main/java/net/brennholz/events/InventoryClickListener.java +++ b/src/main/java/net/brennholz/events/InventoryClickListener.java @@ -62,6 +62,12 @@ break; case 28: chl.getConfig().set("deathonjump", !(chl.getConfig().getBoolean("deathonjump"))); + break; + case 29: + chl.getConfig().set("clinvdmg", !(chl.getConfig().getBoolean("clinvdmg"))); + break; + case 35: + chl.getConfig().set("tntdeath", !(chl.getConfig().getBoolean("tntdeath"))); break; case 37: if (wld.getGameRuleValue("keepInventory").equals("true")) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 385db5a..d7859b4 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -10,7 +10,9 @@ dmginchat: false deathonsprint: false deathonjump: false +clinvdmg: false tabhp: true +tntdeath: false #Mögliche werte: 9 18 27 36 45 54 backpack_size: 27 timer: