@EventHandler(priority = EventPriority.HIGH) public void onBlockIgniteEvent(BlockIgniteEvent event) { if (event.isCancelled()) { return; } if (event.getPlayer() == null) { return; } Player player = event.getPlayer(); if (vanishNoPacket.isPlayerInvisible(player)) { return; } Block block = event.getBlock(); Set<Snitch> snitches = snitchManager.findSnitches(block.getWorld(), block.getLocation()); for (Snitch snitch : snitches) { if (!snitch.shouldLog()) { continue; } if (!isOnSnitch(snitch, player.getName()) || isDebugging()) { if (checkProximity(snitch, player.getName())) { plugin.getJaLogger().logSnitchIgnite(snitch, player, block); } } } }
@EventHandler(priority = EventPriority.HIGH) public void playerKillEntity(EntityDeathEvent event) { LivingEntity entity = event.getEntity(); LivingEntity killer = entity.getKiller(); // TODO: This should never be true, bug? if (entity instanceof Player) { return; } if (!(killer instanceof Player)) { return; } if (vanishNoPacket.isPlayerInvisible((Player) killer)) { return; } Player player = (Player) killer; Set<Snitch> snitches = snitchManager.findSnitches(player.getWorld(), player.getLocation()); for (Snitch snitch : snitches) { if (!snitch.shouldLog()) { continue; } if (!isOnSnitch(snitch, player.getName()) || isDebugging()) { if (checkProximity(snitch, player.getName())) { plugin.getJaLogger().logSnitchEntityKill(snitch, player, entity); } } } }
@EventHandler(priority = EventPriority.HIGH) public void onBlockBurnEvent(BlockBurnEvent event) { if (event.isCancelled()) { return; } Block block = event.getBlock(); Set<Snitch> snitches = snitchManager.findSnitches(block.getWorld(), block.getLocation()); for (Snitch snitch : snitches) { if (!snitch.shouldLog()) { continue; } if (snitch.getGroup() != null) { continue; } plugin.getJaLogger().logSnitchBlockBurn(snitch, block); } }
@EventHandler(priority = EventPriority.HIGH) public void playerKillPlayer(PlayerDeathEvent event) { if (!(event.getEntity().getKiller() instanceof Player)) { return; } Player killed = event.getEntity(); Player killer = killed.getKiller(); if (vanishNoPacket.isPlayerInvisible(killer)) { return; } Set<Snitch> snitches = snitchManager.findSnitches(killed.getWorld(), killed.getLocation()); for (Snitch snitch : snitches) { if (!snitch.shouldLog()) { continue; } if (!isOnSnitch(snitch, killer.getName()) || isDebugging()) { if (checkProximity(snitch, killed.getName()) || checkProximity(snitch, killer.getName())) { plugin.getJaLogger().logSnitchPlayerKill(snitch, killer, killed); } } } }
@EventHandler(priority = EventPriority.HIGH) public void enterSnitchProximity(PlayerMoveEvent event) { Location from = event.getFrom(); Location to = event.getTo(); if (from.getBlockX() == to.getBlockX() && from.getBlockY() == to.getBlockY() && from.getBlockZ() == to.getBlockZ() && from.getWorld().equals(to.getWorld())) { // Player didn't move by at least one block. return; } Player player = event.getPlayer(); if (vanishNoPacket.isPlayerInvisible(player)) { return; } String playerName = player.getName(); Location location = player.getLocation(); World world = location.getWorld(); Set<Snitch> inList = playersInSnitches.get(playerName); if (inList == null) { inList = new TreeSet<Snitch>(); playersInSnitches.put(player.getName(), inList); } Set<Snitch> snitches = snitchManager.findSnitches(world, location); for (Snitch snitch : snitches) { if (doesSnitchExist(snitch, true) && (!isOnSnitch(snitch, playerName) || isDebugging())) { if (!inList.contains(snitch)) { inList.add(snitch); for (Player remoteplayer : playerManager.getPlayers()) { String remoteName = remoteplayer.getName(); if (isOnSnitch(snitch, remoteName)) { remoteplayer.sendMessage( ChatColor.AQUA + " * " + playerName + " entered snitch at " + snitch.getName() + " [" + snitch.getX() + " " + snitch.getY() + " " + snitch.getZ() + "]"); } } if (snitch.shouldLog()) { plugin.getJaLogger().logSnitchEntry(snitch, location, player); } } } } snitches = snitchManager.findSnitches(world, location, true); Set<Snitch> rmList = new TreeSet<Snitch>(); for (Snitch snitch : inList) { if (snitches.contains(snitch)) { continue; } rmList.add(snitch); } inList.removeAll(rmList); }