diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index b67788825..e1e60cb35 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -190,11 +190,16 @@ public class Settings implements IConf { return config.getInt("spawnmob-limit", 10); } - + public boolean showNonEssCommandsInHelp() { return config.getBoolean("non-ess-in-help", true); } + + public boolean hidePermissionlessHelp() + { + return config.getBoolean("hide-permissionless-help", true); + } public int getProtectCreeperMaxHeight() { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java b/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java index 52277b1fa..4361fe1cf 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandhelp.java @@ -30,17 +30,25 @@ public class Commandhelp extends EssentialsCommand @Override protected void run(Server server, User user, String commandLabel, String[] args) throws Exception { - int page; + int page = 1; + String match = args[0].toLowerCase(); try { - page = args.length > 0 ? Integer.parseInt(args[0]) : 1; + if (args.length > 0) + { + page = Integer.parseInt(args[args.length - 1]); + if (args.length == 1) + { + match = ""; + } + } + } catch (Exception ex) { - page = 1; } - List lines = getHelpLines(user); + List lines = getHelpLines(user, match); int start = (page - 1) * 9; int pages = lines.size() / 9 + (lines.size() % 9 > 0 ? 1 : 0); @@ -58,7 +66,7 @@ public class Commandhelp extends EssentialsCommand } @SuppressWarnings("CallToThreadDumpStack") - private List getHelpLines(User user) throws Exception + private List getHelpLines(User user, String match) throws Exception { List retval = new ArrayList(); File helpFile = new File(ess.getDataFolder(), "help_"+Util.sanitizeFileName(user.getName()) +".txt"); @@ -98,6 +106,12 @@ public class Commandhelp extends EssentialsCommand final HashMap> cmds = (HashMap>)desc.getCommands(); for (Entry> k : cmds.entrySet()) { + if ((!match.equalsIgnoreCase("")) && (!p.getDescription().getName().toLowerCase().contains(match)) + && (!p.getDescription().getDescription().toLowerCase().contains(match))) + { + continue; + } + if (p.getDescription().getName().toLowerCase().contains("essentials")) { final String node = "essentials." + k.getKey(); @@ -121,7 +135,10 @@ public class Commandhelp extends EssentialsCommand } else { - retval.add("§c" + k.getKey() + "§7: " + value.get("description")); + if (!ess.getSettings().hidePermissionlessHelp()) + { + retval.add("§c" + k.getKey() + "§7: " + value.get("description")); + } } } diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index a2369c2e9..7f0b20e8f 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -88,7 +88,6 @@ motd: - '&cWelcome, {PLAYER}&c!' - '&fType &c/help&f for a list of commands.' - 'Currently online: {PLAYERLIST}' - - 'You have {MAILS} mail messages' # The server rules, available by typing /rules rules: @@ -239,6 +238,9 @@ currency-symbol: '$' #Show other plugins commands in help non-ess-in-help: true +#Hide plugins which dont give a permission +hide-permissionless-help: true + ############################################################ # +------------------------------------------------------+ # # | EssentialsChat | #