public void onEnable() { essPresent = (getServer().getPluginManager().getPlugin("Essentials") != null); if (!essPresent) log.warning(logPref + "Essentials not found. This plugin will have limited functionality"); PluginManager pm = getServer().getPluginManager(); pm.registerEvents(new NRCommandPreprocessHandler(this), this); NRConfig.onEnable(); em.onEnable(); log.info(logPref + "enabled successfully"); }
private boolean findName(final CommandSender s, final String[] args) { if (!(s instanceof ConsoleCommandSender || (s instanceof Player && ((Player) s).hasPermission("nameretriever.realname")))) return noAccess(s); final Future<HashMap<String, String>> returnFuture = getServer() .getScheduler() .callSyncMethod( this, new Callable<HashMap<String, String>>() { @Override public HashMap<String, String> call() { return em.getNamesForNick(args[0]); } }); final Future<HashMap<String, String>> returnFuture2 = getServer() .getScheduler() .callSyncMethod( this, new Callable<HashMap<String, String>>() { @Override public HashMap<String, String> call() { return em.getNicksForName(args[0]); } }); if (NRConfig.useAsync) { getServer() .getScheduler() .runTaskAsynchronously( this, new Runnable() { @Override public void run() { boolean fnick = false; try { HashMap<String, String> names = returnFuture.get(); if (names.isEmpty()) { names = returnFuture2.get(); fnick = true; } if (names.isEmpty()) s.sendMessage( ChatColor.RED + "Error: " + ChatColor.DARK_RED + "No player found with that nickname"); else for (String str : names.keySet()) { if (fnick) s.sendMessage(str + "'s nickname is " + names.get(str)); else s.sendMessage(names.get(str) + " is " + str); if (NRConfig.showStatus && NameRetriever.essPresent) s.sendMessage( "Status: " + ((getServer().getPlayerExact(str) == null) ? (ChatColor.RED + "Offline") : (ChatColor.GREEN + "Online"))); } } catch (InterruptedException e) { s.sendMessage( ChatColor.RED + "Error: " + ChatColor.DARK_RED + "Unexpected interruption while fetching results"); } catch (ExecutionException e) { s.sendMessage( ChatColor.RED + "Error: " + ChatColor.DARK_RED + "Unexpected execution error while fetching results"); } } }); } else { boolean nick = false; HashMap<String, String> names = em.getNamesForNick(args[0]); if (names.isEmpty()) { names = em.getNicksForName(args[0]); nick = true; } if (names.isEmpty()) s.sendMessage( ChatColor.RED + "Error: " + ChatColor.DARK_RED + "No player found with that nickname"); else for (String str : names.keySet()) { if (nick) s.sendMessage(str + "'s nickname is " + names.get(str)); else s.sendMessage(names.get(str) + " is " + str); if (NRConfig.showStatus && NameRetriever.essPresent) s.sendMessage( "Status: " + ((getServer().getPlayerExact(str) == null) ? (ChatColor.RED + "Offline") : (ChatColor.GREEN + "Online"))); } } return true; }