@EventHandler public void onAuroraSneak(PlayerToggleSneakEvent e) { if (!WorldCheck.isEnabled(e.getPlayer().getWorld())) return; if (PlayerUtil.isInWater(e.getPlayer()) && Races.getMGPlayer(e.getPlayer()).hasAbility(AbilityType.AQUAMAN)) { AbilityType.AQUAMAN.run(e.getPlayer()); } }
@EventHandler public void onWaterFlow(BlockFromToEvent e) { if (!WorldCheck.isEnabled(e.getBlock().getWorld())) return; Material m = e.getBlock().getType(); if (m == Material.WATER || m == Material.STATIONARY_WATER) { if (TidalWave.blockMap.containsKey(e.getBlock().getLocation())) { e.setCancelled(true); } } }
@EventHandler public void onDrownOrFall(EntityDamageEvent e) { if (e.getEntity() instanceof Player && e.getCause() == EntityDamageEvent.DamageCause.DROWNING) { if (!WorldCheck.isEnabled(e.getEntity().getWorld())) return; Player p = (Player) e.getEntity(); if (Races.getMGPlayer(p).getAbilityLevel(AbilityType.FEESH) > 1) { e.setCancelled(true); } } else if (e.getEntity() instanceof Player && e.getCause() == EntityDamageEvent.DamageCause.FALL) { Player p = (Player) e.getEntity(); if (Races.getMGPlayer(p).getAbilityLevel(AbilityType.GLACIOUS) > 2) { Material mat = p.getLocation().getBlock().getRelative(BlockFace.DOWN).getType(); Material mat2 = p.getLocation().getBlock().getType(); if (snowBlocks.contains(mat) || snowBlocks.contains(mat2)) { e.setDamage(0.0); e.setCancelled(true); } } } }
@EventHandler public void onAuroraInteract(PlayerInteractEvent e) { if (!WorldCheck.isEnabled(e.getPlayer().getWorld())) return; if (e.getAction() == Action.LEFT_CLICK_BLOCK && e.getClickedBlock().getY() < e.getPlayer().getLocation().getY() && ItemUtil.isSword(e.getPlayer().getItemInHand().getType()) && Races.getMGPlayer(e.getPlayer()).hasAbility(AbilityType.FROST)) { AbilityType.FROST.run(e.getPlayer()); } if (e.getAction() == Action.RIGHT_CLICK_AIR && PlayerUtil.isInWater(e.getPlayer()) && ItemUtil.isSword(e.getPlayer().getItemInHand().getType()) && Races.getMGPlayer(e.getPlayer()).hasAbility(AbilityType.DROWNINGPOOL)) { AbilityType.DROWNINGPOOL.run(e.getPlayer()); } if (e.getAction() == Action.LEFT_CLICK_AIR && e.getPlayer().getItemInHand().getType() == Material.SNOW_BALL && Races.getMGPlayer(e.getPlayer()).hasAbility(AbilityType.TIDALWAVE)) { AbilityType.TIDALWAVE.run(e.getPlayer()); } }
@EventHandler public void onAuroraSnowball(ProjectileHitEvent e) { if (!WorldCheck.isEnabled(e.getEntity().getWorld())) return; if (e.getEntity().getShooter() instanceof Player && e.getEntity() instanceof Snowball) { Snowball ball = (Snowball) e.getEntity(); Player p = (Player) ball.getShooter(); if (!Races.getMGPlayer(p).hasAbility(AbilityType.ICEBARRAGE)) return; AbilityType.ICEBARRAGE.run(e); } if (e.getEntity().getShooter() instanceof IceBarrageThrower) { // Acceptable use of Entity::getNearbyEntities according to Spigot for (Entity ent : e.getEntity().getNearbyEntities(2, 2, 2)) { if (ent instanceof LivingEntity && !(ent instanceof Player && Races.getRace((Player) ent) == RaceType.AURORA)) { LivingEntity le = (LivingEntity) ent; PotionUtil.updatePotion(le, PotionEffectType.SLOW, 5, 8); } } EffectUtil.playSound(e.getEntity().getLocation(), Sound.DIG_SNOW); EffectUtil.playParticle(e.getEntity().getLocation(), Effect.SNOW_SHOVEL, 1, 1, 1, 14, 25); } else if (e.getEntity().getShooter() instanceof IceBarragePoisonThrower) { // Acceptable use of Entity::getNearbyEntities according to Spigot for (Entity ent : e.getEntity().getNearbyEntities(2, 2, 2)) { if (ent instanceof LivingEntity && !(ent instanceof Player && Races.getRace((Player) ent) == RaceType.AURORA)) { LivingEntity le = (LivingEntity) ent; PotionUtil.updatePotion(le, PotionEffectType.SLOW, 5, 8); PotionUtil.updatePotion(le, PotionEffectType.POISON, 1, 3); } } EffectUtil.playSound(e.getEntity().getLocation(), Sound.DIG_SNOW); EffectUtil.playParticle(e.getEntity().getLocation(), Effect.SNOW_SHOVEL, 1, 1, 1, 14, 25); } }