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:
-
+
#### 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());
+ }
}