diff --git a/README.md b/README.md index c683052..af1cc35 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Convert from other economy plugins using the Vault command: `/vault-convert {economyplugin} iconomy5.11` (replace 5.11 with the iConomy version number.) #### Commands: - +showcase #### Permission Nodes: Permission nodes can be gotten from the [plugin.yml](https://github.com/iconomy5legacy/iConomy/blob/master/src/main/resources/plugin.yml) They are already given out by default for the most part. diff --git a/src/main/java/com/iConomy/MoneyCommand.java b/src/main/java/com/iConomy/MoneyCommand.java index 92883ee..68e6213 100644 --- a/src/main/java/com/iConomy/MoneyCommand.java +++ b/src/main/java/com/iConomy/MoneyCommand.java @@ -10,6 +10,7 @@ import java.util.logging.Logger; import java.util.stream.Collectors; +import com.iConomy.util.StringMgmt; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -189,7 +190,7 @@ public boolean accept(File file, String name) { } private final List SUB_CMDS = Arrays.asList("?", "rank", "top", "pay", "grant", "set", "hide", "create", - "remove", "preset", "purge", "empty", "stats", "help", "?"); + "remove", "preset", "purge", "empty", "stats"); private final List PLAYER_CMDS = Arrays.asList("rank", "pay", "grant", "set", "hide", "create", "remove", "reset"); private final List AMOUNT_CMDS = Arrays.asList("pay","grant","set") ; @@ -202,19 +203,23 @@ public List onTabComplete(@NotNull CommandSender sender, @NotNull Comman String subCmdArg = args[0].toLowerCase(Locale.ROOT); if (args.length == 1) { - return SUB_CMDS.stream().filter(s -> s.startsWith(subCmdArg)).collect(Collectors.toList()); + if (StringMgmt.filterByStart(SUB_CMDS, subCmdArg).size() > 0) { + return SUB_CMDS.stream().filter(s -> s.startsWith(subCmdArg)).collect(Collectors.toList()); + } else { + return null; + } } else if (args.length == 2) { if (PLAYER_CMDS.contains(subCmdArg)) return null; if (subCmdArg.equals("top")) - return Arrays.asList(""); + return List.of(""); } else if (args.length == 3) { if (AMOUNT_CMDS.contains(subCmdArg)) - return Arrays.asList(""); + return List.of(""); if (subCmdArg.equals("hide")) return Arrays.asList("true", "false"); } else if (args.length == 4 && subCmdArg.equals("grant")) { - return Arrays.asList("silent"); + return List.of("silent"); } return Arrays.asList(""); diff --git a/src/main/java/com/iConomy/entity/Players.java b/src/main/java/com/iConomy/entity/Players.java index 08c0c77..d8fbbdb 100644 --- a/src/main/java/com/iConomy/entity/Players.java +++ b/src/main/java/com/iConomy/entity/Players.java @@ -51,53 +51,51 @@ public Players(String directory) { * instances of the same help lines. */ private void getMoneyHelp(CommandSender sender) { - Messaging.send(sender, "`y "); Messaging.send(sender, "`w iConomy (`r" + Constants.Codename + "`w)"); - Messaging.send(sender, "`y "); - Messaging.send(sender, "`w [] Required, () Optional"); - Messaging.send(sender, " "); - + Messaging.send(sender, "`w <> Required, [] Optional"); + if(sender instanceof Player){ - Messaging.send(sender, "`G /money `y Check your balance"); + Messaging.send(sender, "`G /money `y Check your balance."); } + Messaging.send(sender, "`G /money `g[player] `y check someone's balance."); Messaging.send(sender, "`G /money `g? `y For help & Information"); if (iConomy.hasPermissions(sender, "iConomy.rank", true)) { - Messaging.send(sender, "`G /money `grank `G(`wplayer`G) `y Rank on the topcharts. "); + Messaging.send(sender, "`G /money `grank `G[`wplayer`G] `y Rank on the topcharts. "); } if (iConomy.hasPermissions(sender, "iConomy.list", true)) { - Messaging.send(sender, "`G /money `gtop `G(`wamount`G) `y Richest players listing. "); + Messaging.send(sender, "`G /money `gtop `G[`wamount`G] `y Richest players listing. "); } if (iConomy.hasPermissions(sender, "iConomy.payment", true)) { - Messaging.send(sender, "`G /money `gpay `G[`wplayer`G] [`wamount`G] `y Send money to a player."); + Messaging.send(sender, "`G /money `gpay `G<`wplayer`G> <`wamount`G> `y Send money to a player."); } if (iConomy.hasPermissions(sender, "iConomy.admin.grant", true)) { - Messaging.send(sender, "`G /money `ggrant `G[`wplayer`G] [`wamount`G] {`wsilent`G} `y Give money, optionally silent."); - Messaging.send(sender, "`G /money `ggrant `G[`wplayer`G] -[`wamount`G] {`wsilent`G} `y Take money, optionally silent."); + Messaging.send(sender, "`G /money `ggrant `G<`wplayer`G> <`wamount`G> [`wsilent`G] `y Give money, optionally silent."); + Messaging.send(sender, "`G /money `ggrant `G<`wplayer`G> -<`wamount`G> [wsilent`G] `y Take money, optionally silent."); } if (iConomy.hasPermissions(sender, "iConomy.admin.set", true)) { - Messaging.send(sender, "`G /money `gset `G[`wplayer`G] [`wamount`G] `y Sets a players balance."); + Messaging.send(sender, "`G /money `gset `G<`wplayer`G> <`wamount`G> `y Sets a players balance."); } if (iConomy.hasPermissions(sender, "iConomy.admin.hide", true)) { - Messaging.send(sender, "`G /money `ghide `G[`wplayer`G] `wtrue`G/`wfalse `y Hide or show an account."); + Messaging.send(sender, "`G /money `ghide `G<`wplayer`G> `wtrue`G/`wfalse `y Hide or show an account."); } if (iConomy.hasPermissions(sender, "iConomy.admin.account.create", true)) { - Messaging.send(sender, "`G /money `gcreate `G[`wplayer`G] `y Create player account."); + Messaging.send(sender, "`G /money `gcreate `G<`wplayer`G> `y Create player account."); } if (iConomy.hasPermissions(sender, "iConomy.admin.account.remove", true)) { - Messaging.send(sender, "`G /money `gremove `G[`wplayer`G] `y Remove player account."); + Messaging.send(sender, "`G /money `gremove `G<`wplayer`G> `y Remove player account."); } if (iConomy.hasPermissions(sender, "iConomy.admin.reset", true)) { - Messaging.send(sender, "`G /money `greset `G[`wplayer`G] `y Reset player account."); + Messaging.send(sender, "`G /money `greset `G<`wplayer`G> `y Reset player account."); } if (iConomy.hasPermissions(sender, "iConomy.admin.purge", true)) { @@ -111,8 +109,6 @@ private void getMoneyHelp(CommandSender sender) { if (iConomy.hasPermissions(sender, "iConomy.admin.stats", true)) { Messaging.send(sender, "`G /money `gstats `y Check all economic stats."); } - - Messaging.send(sender, " "); } /** @@ -325,17 +321,17 @@ private void showSet(CommandSender sender, String name, Player controller, doubl iConomy.getTransactions().insert("[System]", name, 0.0D, balance.doubleValue(), amount, 0.0D, 0.0D); - if (online != null) { + if (online != null && controller != null) { Messaging.send(online, this.Template.color("tag.money") + this.Template.parse("personal.set", new String[] { "+by", "+amount,+a" }, new String[] { console ? "Console" : controller.getName(), iConomy.format(amount) })); showBalance(name, online, true); } - if (controller != null) { + if (controller == null) { Messaging.send(sender, this.Template.color("tag.money") + this.Template.parse("player.set", new String[] { "+name,+n", "+amount,+a" }, new String[] { name, iConomy.format(amount) })); } - if (console) + if (console || controller == null) log.info("Player " + account + "'s account had " + iConomy.format(amount) + " set to it."); else log.info("Player " + account + "'s account had " + iConomy.format(amount) + " set to it by " + controller.getName() + "."); diff --git a/src/main/java/com/iConomy/util/StringMgmt.java b/src/main/java/com/iConomy/util/StringMgmt.java index 019eb1c..b20ae89 100644 --- a/src/main/java/com/iConomy/util/StringMgmt.java +++ b/src/main/java/com/iConomy/util/StringMgmt.java @@ -1,5 +1,10 @@ package com.iConomy.util; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; + public class StringMgmt { public static String[] remFirstArg(String[] arr) { @@ -37,4 +42,18 @@ else if (end < start) return newSplit; } } + + /** + * Returns strings that start with a string + * + * @param list strings to check + * @param startingWith string to check with list + * @return strings from list that start with startingWith + */ + public static List filterByStart(List list, String startingWith) { + if (list == null || startingWith == null) { + return Collections.emptyList(); + } + return list.stream().filter(name -> name.toLowerCase(Locale.ROOT).startsWith(startingWith.toLowerCase(Locale.ROOT))).collect(Collectors.toList()); + } }