diff --git a/src/main/java/net/brennholz/challenges/Challenges.java b/src/main/java/net/brennholz/challenges/Challenges.java index 6631c26..bcd2ab7 100644 --- a/src/main/java/net/brennholz/challenges/Challenges.java +++ b/src/main/java/net/brennholz/challenges/Challenges.java @@ -285,7 +285,8 @@ return "§cFalse"; } - private Material getgrDye(String gr) { + @SuppressWarnings("deprecation") +private Material getgrDye(String gr) { ItemStack mat = new ItemStack(Material.GRAY_DYE); World wld = Bukkit.getWorlds().get(0); if (wld.getGameRuleValue(gr).equals("true")) { @@ -296,7 +297,8 @@ return mat.getType(); } - private String getgrBool(String gr) { + @SuppressWarnings("deprecation") +private String getgrBool(String gr) { World wld = Bukkit.getWorlds().get(0); if (wld.getGameRuleValue(gr).equals("true")) return "§aTrue"; diff --git a/src/main/java/net/brennholz/challenges/EventListener.java b/src/main/java/net/brennholz/challenges/EventListener.java index 9002bc5..f4c2e70 100644 --- a/src/main/java/net/brennholz/challenges/EventListener.java +++ b/src/main/java/net/brennholz/challenges/EventListener.java @@ -8,6 +8,7 @@ import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; +import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.entity.EnderDragon; import org.bukkit.entity.EntityType; @@ -16,11 +17,13 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockExplodeEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; @@ -41,12 +44,35 @@ public void onBlockBreak(BlockBreakEvent e) { if (this.chl.getConfig().getBoolean("rnddrops") == true) { 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.chl.getRandomDropsManager().getMaterialFromBlock(e.getBlock()))); } } + + @EventHandler + public void onBlockExplode(BlockExplodeEvent e) { + if (this.chl.getConfig().getBoolean("rnddrops") == true) { + e.setCancelled(true); + e.blockList().forEach(block -> { + block.getWorld().dropItem(block.getLocation().add(0.5D, 0.5D, 0.5D),new ItemStack(this.chl.getRandomDropsManager().getMaterialFromBlock(block))); + block.setType(Material.AIR); + e.getBlock().getWorld().playSound(e.getBlock().getLocation(), Sound.ENTITY_GENERIC_EXPLODE, (float) 0.1, 1); + }); + } + } @EventHandler + public void onEntityExplode(EntityExplodeEvent e) { + if (this.chl.getConfig().getBoolean("rnddrops") == true) { + e.setCancelled(true); + e.blockList().forEach(block -> { + block.getWorld().dropItem(block.getLocation().add(0.5D, 0.5D, 0.5D),new ItemStack(this.chl.getRandomDropsManager().getMaterialFromBlock(block))); + block.setType(Material.AIR); + e.getEntity().getWorld().playSound(e.getEntity().getLocation(), Sound.ENTITY_GENERIC_EXPLODE, (float) 0.1, 1); + }); + } + } + + @EventHandler public void PlayerJoinEvent(PlayerJoinEvent e) { Player p = e.getPlayer(); e.setJoinMessage("§6" + p.getName() + " §chat den Server betreten!"); @@ -97,19 +123,13 @@ chl.getServer().broadcastMessage(""); chl.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("§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"); } 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)"); + 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") == false) { - Bukkit.getServer().broadcastMessage("§6Benutze §c/revive " + e.getEntity().getName() - + " [world] [x] [y] [z] §6um ihn wiederzubeleben!"); + Bukkit.getServer().broadcastMessage("§6Benutze §c/revive " + e.getEntity().getName() + " [world] [x] [y] [z] §6um ihn wiederzubeleben!"); } } } @@ -146,8 +166,7 @@ if (e.getCause() == DamageCause.FALL) { if (chl.getConfig().getBoolean("deathonfall") == true) { if (chl.getConfig().getBoolean("dmginchat") == true) { - Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + p.getHealth() - + " §cHP Schaden genommen durch §4" + e.getCause()); + Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + p.getHealth() + " §cHP Schaden genommen durch §4" + e.getCause()); } Bukkit.getScheduler().scheduleSyncDelayedTask(chl, new Runnable() { @Override @@ -156,24 +175,28 @@ } }, 1); } else if (chl.getConfig().getBoolean("dmginchat") == true) { - Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + dmg - + " §cHP Schaden genommen durch §4" + e.getCause()); + Bukkit.broadcastMessage("§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") == true)) { - Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + chl.getConfig().getDouble("sneakdmg") - + " §cHP Schaden genommen durch §4SNEAKING"); + Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + chl.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") == true) { - Bukkit.broadcastMessage( - "§6" + p.getName() + " §chat §4" + dmg + " §cHP Schaden genommen durch §4" + e.getCause()); + Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + dmg + " §cHP Schaden genommen durch §4" + e.getCause()); } if (chl.getConfig().getBoolean("sharedmg") == true) { for (Player pp : Bukkit.getOnlinePlayers()) { if (pp != p) { - pp.setHealth(pp.getHealth() - e.getFinalDamage()); + double health = pp.getHealth() - e.getFinalDamage(); + if(health < 0) { + pp.setHealth(0); + }else { + pp.setHealth(health); + pp.getWorld().playSound(pp.getLocation(), Sound.ENTITY_PLAYER_HURT, (float) 1, 1); + } + } } } @@ -188,8 +211,7 @@ String dmg = new DecimalFormat("#.##").format(e.getFinalDamage()); if ((e.getCause() == DamageCause.ENTITY_ATTACK || e.getCause() == DamageCause.ENTITY_EXPLOSION) && chl.getConfig().getBoolean("dmginchat") == true) { - Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + dmg + " §cHP Schaden genommen durch §4" - + e.getDamager().getName()); + Bukkit.broadcastMessage("§6" + p.getName() + " §chat §4" + dmg + " §cHP Schaden genommen durch §4" + e.getDamager().getName()); } } } @@ -198,18 +220,18 @@ public void DragonDeath(EntityDeathEvent e) { if (e.getEntity() instanceof EnderDragon) { chl.getConfig().set("timer.enabled", false); - chl.getServer().broadcastMessage("§6§kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); + chl.getServer().broadcastMessage("§6§kLIpwjwdjmpwdjmimjPiwjdÜOaiwjdüoJwoüdMdJM"); chl.getServer().broadcastMessage(""); chl.getServer().broadcastMessage("§aGRATULATION! IHR 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("§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(""); - chl.getServer().broadcastMessage("§6§kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); + chl.getServer().broadcastMessage("§6§kLIpwjwdjmpwdjmimjPiwjdÜOaiwjdüoJwoüdMdJM"); } } + @SuppressWarnings({ "deprecation", "static-access" }) @EventHandler public void InvClick(InventoryClickEvent e) { World wld = Bukkit.getWorlds().get(0);