@EventHandler public void onBlockInteractEvent(PlayerInteractEvent event) { if (!(event.getAction().equals(Action.RIGHT_CLICK_AIR)) || !(event.getAction().equals(Action.RIGHT_CLICK_AIR))) { return; } if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { if (event.getClickedBlock().getType().equals(Material.SIGN) || event.getClickedBlock().getType().equals(Material.SIGN_POST) || event.getClickedBlock().getType().equals(Material.WALL_SIGN)) { return; } } Player player = event.getPlayer(); if (plugin.manager.isPlayerInGame(player)) { Game game = plugin.manager.getGame(player); if (!(game.mode == ArenaStatus.INGAME)) { return; } if (game.getPlayersGun(player) != null) { GunManager gunManager = game.getPlayersGun(player); if (gunManager.isGun()) { Gun gun = gunManager.getGun(player.getInventory().getHeldItemSlot()); if (gun.isReloading()) { player.getLocation().getWorld().playSound(player.getLocation(), Sound.CLICK, 1, 1); return; } gun.wasShot(); } } } }
@EventHandler public void onGunReload(PlayerInteractEvent e) { if (e.getAction().equals(Action.LEFT_CLICK_AIR) || e.getAction().equals(Action.LEFT_CLICK_BLOCK)) { Player player = e.getPlayer(); if (plugin.manager.isPlayerInGame(player)) { Game game = plugin.manager.getGame(player); if (!(game.mode == ArenaStatus.INGAME)) { return; } if (game.getPlayersGun(player) != null) { GunManager gunManager = game.getPlayersGun(player); if (gunManager.isGun()) { Gun gun = gunManager.getGun(player.getInventory().getHeldItemSlot()); gun.reload(); gun.updateGun(); } } } } }
@EventHandler public void onZombieHitEvent(EntityDamageByEntityEvent event) throws Exception { if (event.getDamager() instanceof Snowball) { Snowball snowball = (Snowball) event.getDamager(); if (snowball.getShooter() instanceof Player) { Player player = (Player) snowball.getShooter(); if (plugin.manager.isPlayerInGame(player)) { Game game = plugin.manager.getGame(player); GunManager manager = game.getPlayersGun(player); if (manager.isGun()) { Gun gun = manager.getGun(player.getInventory().getHeldItemSlot()); int damage = 0; if (gun.isPackOfPunched()) damage = gun.getType().packAPunchDamage; else damage = gun.getType().damage; if (event.getEntity() instanceof Zombie) { Zombie zomb = (Zombie) event.getEntity(); int totalHealth; if (gun.getType().name.equalsIgnoreCase("Zombie BFF")) { ParticleEffects eff = ParticleEffects.HEART; for (int i = 0; i < 30; i++) { float x = (float) (Math.random()); float y = (float) (Math.random()); float z = (float) (Math.random()); eff.sendToPlayer(player, zomb.getLocation(), x, y, z, 1, 1); } } for (Player pl : game.players) { pl.playSound(pl.getLocation(), Sound.LAVA_POP, 1.0F, 0.0F); } if (game.spawnManager.totalHealth().containsKey(event.getEntity())) { totalHealth = game.spawnManager.totalHealth().get(event.getEntity()); } else { game.spawnManager.setTotalHealth(event.getEntity(), 20); totalHealth = 20; } if (totalHealth >= 20) { zomb.setHealth(20); if (game.isDoublePoints()) { plugin.pointManager.addPoints(player, plugin.config.pointsOnHit * 2); } else { plugin.pointManager.addPoints(player, plugin.config.pointsOnHit); } if (game.spawnManager.totalHealth().get(event.getEntity()) <= 20) { zomb.setHealth(game.spawnManager.totalHealth().get(event.getEntity())); } else { game.spawnManager.setTotalHealth(event.getEntity(), totalHealth - damage); } plugin.pointManager.notifyPlayer(player); } else if (zomb.getHealth() - damage < 1) { OnZombiePerkDrop perkdrop = new OnZombiePerkDrop(plugin); perkdrop.perkDrop(zomb, player); zomb.remove(); boolean doublePoints = game.isDoublePoints(); if (doublePoints) { plugin.pointManager.addPoints(player, plugin.config.pointsOnKill * 2); } else { plugin.pointManager.addPoints(player, plugin.config.pointsOnKill); } zomb.playEffect(EntityEffect.DEATH); plugin.pointManager.notifyPlayer(player); game.spawnManager.removeEntity((Entity) zomb); game.zombieKilled(player); if (game.spawnManager.getEntities().size() <= 0) { game.nextWave(); } } else { event.setDamage(damage); boolean doublePoints = game.isDoublePoints(); if (doublePoints) { plugin.pointManager.addPoints(player, plugin.config.pointsOnHit * 2); } else { plugin.pointManager.addPoints(player, plugin.config.pointsOnHit); } plugin.pointManager.notifyPlayer(player); } if (game.isInstaKill()) { zomb.remove(); } } } } } } }