@EventHandler() public void onEntityDeath(EntityDeathEvent event) { if (event.getEntity() instanceof Player) { Player player = (Player) event.getEntity(); MonsterHuntWorld world = HuntWorldManager.getWorld(player.getWorld().getName()); if (world == null || world.getWorld() == null) return; if (world.settings.getInt(Setting.DeathPenalty) == 0) return; if (world.state > 1 && world.Score.containsKey(player.getName())) { double score = world.Score.get(player.getName()) + 0.00; score = score - (score * world.settings.getInt(Setting.DeathPenalty) / 100.00); world.Score.put(player.getName(), (int) Math.round(score)); Util.Message(world.settings.getString(Setting.DeathMessage), player); } } if (!HuntZone.isInsideZone(event.getEntity().getLocation())) return; if (event.getEntity() == null || !(event.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent)) return; MonsterHuntWorld world = HuntWorldManager.getWorld(event.getEntity().getWorld().getName()); if (world == null || world.getWorld() == null || world.state < 2) return; Util.Debug("test"); kill((LivingEntity) event.getEntity(), world); }
@EventHandler() public void onCreatureSpawn(CreatureSpawnEvent event) { if (event.getEntity() instanceof Creature) { MonsterHuntWorld world = HuntWorldManager.getWorld(event.getLocation().getWorld().getName()); if (world == null || world.getWorld() == null) return; if (world.state == 0) return; if (!world.settings.getBoolean(Setting.OnlyCountMobsSpawnedOutside)) return; Block block = event.getLocation().getBlock(); int number = 0; while (block.getY() < 125) { number++; block = block.getRelative(BlockFace.UP); Boolean empty = false; if (block.getType() == Material.AIR || block.getType() == Material.LEAVES) empty = true; else if (block.getType() == Material.LOG) { if (block.getRelative(BlockFace.NORTH).getType() == Material.AIR || block.getRelative(BlockFace.NORTH).getType() == Material.LEAVES) empty = true; else if (block.getRelative(BlockFace.EAST).getType() == Material.AIR || block.getRelative(BlockFace.EAST).getType() == Material.LEAVES) empty = true; else if (block.getRelative(BlockFace.WEST).getType() == Material.AIR || block.getRelative(BlockFace.WEST).getType() == Material.LEAVES) empty = true; else if (block.getRelative(BlockFace.SOUTH).getType() == Material.AIR || block.getRelative(BlockFace.SOUTH).getType() == Material.LEAVES) empty = true; else if (block.getRelative(BlockFace.UP).getType() == Material.AIR || block.getRelative(BlockFace.UP).getType() == Material.LEAVES) empty = true; else if (block.getRelative(BlockFace.DOWN).getType() == Material.AIR || block.getRelative(BlockFace.DOWN).getType() == Material.LEAVES) empty = true; } if (!empty) { if (world.settings.getBoolean(Setting.OnlyCountMobsSpawnedOutsideBlackList)) world.properlyspawned.add(event.getEntity().getEntityId()); return; } if (world.settings.getInt(Setting.OnlyCountMobsSpawnedOutsideHeightLimit) > 0 && world.settings.getInt(Setting.OnlyCountMobsSpawnedOutside) < number) break; } if (!world.settings.getBoolean(Setting.OnlyCountMobsSpawnedOutsideBlackList)) world.properlyspawned.add(event.getEntity().getEntityId()); } }