diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java index 2842332f..eef73c7e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java @@ -22,8 +22,8 @@ import org.bukkit.potion.PotionEffectType; public class Monitors extends FreedomService { @Getter - private List> allThrownPotions = new ArrayList<>(); - private Map> recentlyThrownPotions = new HashMap<>(); + private final List> allThrownPotions = new ArrayList<>(); + private final Map> recentlyThrownPotions = new HashMap<>(); private final List badPotionEffects = new ArrayList<>(Arrays.asList(PotionEffectType.BLINDNESS, PotionEffectType.LEVITATION, PotionEffectType.CONFUSION, PotionEffectType.SLOW, PotionEffectType.SLOW_DIGGING, PotionEffectType.HUNGER)); // A list of all effects that count as "troll". @@ -34,25 +34,22 @@ public class Monitors extends FreedomService { for (Player player : recentlyThrownPotions.keySet()) { - if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getPotionSpy()) + List playerThrownPotions = recentlyThrownPotions.get(player); + ThrownPotion latestThrownPotion = playerThrownPotions.get(playerThrownPotions.size() - 1); // Get most recently thrown potion for the position. + int potionsThrown = playerThrownPotions.size(); + int trollPotions = 0; + + for (ThrownPotion potion : playerThrownPotions) { - List playerThrownPotions = recentlyThrownPotions.get(player); - ThrownPotion latestThrownPotion = playerThrownPotions.get(playerThrownPotions.size() - 1); // Get most recently thrown potion for the position. - int potionsThrown = playerThrownPotions.size(); - boolean trollPotions = false; - - for (ThrownPotion potion : playerThrownPotions) + if (isTrollPotion(potion)) { - if (isTrollPotion(potion)) - { - trollPotions = true; - } + trollPotions++; } - - FUtil.playerMsg(player, ChatColor.translateAlternateColorCodes('&', String.format("&8[&ePotionSpy&8] &r%s splashed %s %s at X: %s Y: %s Z: %s in the world '%s'%s.", - player.getName(), potionsThrown, potionsThrown == 1 ? "potion" : "potions", latestThrownPotion.getLocation().getBlockX(), latestThrownPotion.getLocation().getBlockY(), latestThrownPotion.getLocation().getBlockZ(), - latestThrownPotion.getWorld().getName(), trollPotions ? " &c(most likely troll potion/potions)" : ""))); } + + plugin.sl.messageAllStaff(ChatColor.translateAlternateColorCodes('&', String.format("&8[&ePotionSpy&8] &r%s splashed %s %s at X: %s Y: %s Z: %s in the world '%s'%s.", + player.getName(), potionsThrown, potionsThrown == 1 ? "potion" : "potions", latestThrownPotion.getLocation().getBlockX(), latestThrownPotion.getLocation().getBlockY(), latestThrownPotion.getLocation().getBlockZ(), + latestThrownPotion.getWorld().getName(), trollPotions > 0 ? String.format(" &c(most likely troll %s)", trollPotions == 1 ? "potion" : "potions") : ""))); } recentlyThrownPotions.clear(); }, 0L, 40L); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/FAWEBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/FAWEBridge.java index 5a7e4143..d7182949 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/FAWEBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/FAWEBridge.java @@ -134,7 +134,10 @@ public class FAWEBridge extends FreedomService public void logBlockEdits(String playerName, EditSession editSession, Region region, Pattern pattern) { // Add the broken blocks to CoreProtect. - World world = server.getWorld(region.getWorld().getName()); + if (world == null || !world.getName().equals(editSession.getWorld().getName())) + { + world = server.getWorld(editSession.getWorld().getName()); + } List blocks = new ArrayList<>(); for (BlockVector3 blockVector3 : region)