diff --git a/Essentials/src/com/earth2me/essentials/TFMHandler.java b/Essentials/src/com/earth2me/essentials/TFMHandler.java index 22960e08f..3852631b4 100644 --- a/Essentials/src/com/earth2me/essentials/TFMHandler.java +++ b/Essentials/src/com/earth2me/essentials/TFMHandler.java @@ -12,6 +12,7 @@ public class TFMHandler { private static Logger logger; private static Function adminProvider; + private static Function vanishProvider; public static void setLogger(Logger logger) { @@ -61,12 +62,50 @@ public class TFMHandler return false; } - adminProvider = (Function)provider; + adminProvider = (Function) provider; } return adminProvider.apply(player); } + public boolean isVanished(User user) + { + return isVanished(user.getBase()); + } + + @SuppressWarnings({"unchecked", "ConstantConditions"}) + public boolean isVanished(Player player) + { + + if (vanishProvider == null) + { + final Plugin tfm = getTFM(); + if (tfm == null) + { + return false; + } + + Object provider = null; + for (RegisteredServiceProvider serv : Bukkit.getServicesManager().getRegistrations(tfm)) + { + if (Function.class.isAssignableFrom(serv.getService())) + { + provider = serv.getProvider(); + } + } + + if (provider == null) + { + warning("Could not obtain vanish service provider!"); + return false; + } + + vanishProvider = (Function) provider; + } + + return vanishProvider.apply(player); + } + public static void warning(String warning) { logger.warning(warning); diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandnear.java b/Essentials/src/com/earth2me/essentials/commands/Commandnear.java index cb93f7736..80372d2a2 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandnear.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandnear.java @@ -106,6 +106,10 @@ public class Commandnear extends EssentialsCommand { output.append(", "); } User nearbyPlayer = nearbyPlayers.poll(); + if (getTFMHandler().isVanished(user)) + { + continue; + } output.append(nearbyPlayer.getDisplayName()).append("§f(§4").append((long) nearbyPlayer.getLocation().distance(loc)).append("m§f)"); } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java b/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java index b280b02df..87510ff41 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandshowkit.java @@ -28,7 +28,11 @@ public class Commandshowkit extends EssentialsCommand { Kit kit = new Kit(kitName, ess); user.sendMessage(tl("kitContains", kitName)); for (String s : kit.getItems()) { - user.sendMessage(tl("kitItem", s)); + String item = tl("kitItem", s); + if (item.length() >= 50) { + item = item.substring(0, 50); + } + user.sendMessage(item); } } }