diff --git a/pom.xml b/pom.xml
index d7b408c..3d3aa43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
eu.endermite
CommandWhitelist
- 1.3.2
+ 1.3.4
jar
CommandWhitelist
diff --git a/src/main/java/eu/endermite/commandwhitelist/api/RandomStuff.java b/src/main/java/eu/endermite/commandwhitelist/api/RandomStuff.java
new file mode 100644
index 0000000..1be13af
--- /dev/null
+++ b/src/main/java/eu/endermite/commandwhitelist/api/RandomStuff.java
@@ -0,0 +1,26 @@
+package eu.endermite.commandwhitelist.api;
+
+import java.util.List;
+import java.util.Random;
+
+public class RandomStuff {
+
+ /**
+ *
+ * @param list List of strings to pick a random one from
+ * @param single String that will be used as fallback
+ * @return Randomized message
+ */
+
+ public static String getMessage(List list, String single) {
+
+ if (list == null || list.size() == 0) {
+ return single;
+ }
+
+ Random random = new Random();
+ int r = random.nextInt(list.size());
+ return list.get(r);
+ }
+
+}
diff --git a/src/main/java/eu/endermite/commandwhitelist/bungee/config/BungeeConfigCache.java b/src/main/java/eu/endermite/commandwhitelist/bungee/config/BungeeConfigCache.java
index a90fda2..b92c6b7 100644
--- a/src/main/java/eu/endermite/commandwhitelist/bungee/config/BungeeConfigCache.java
+++ b/src/main/java/eu/endermite/commandwhitelist/bungee/config/BungeeConfigCache.java
@@ -8,13 +8,15 @@ import java.util.List;
public class BungeeConfigCache {
- private HashMap> permList = new HashMap<>();
- private String prefix, commandDenied, noPermission, noSubCommand, configReloaded;
+ private final HashMap> permList = new HashMap<>();
+ private final String prefix, commandDenied, noPermission, noSubCommand, configReloaded;
+ private List commandDeniedList;
public BungeeConfigCache(Configuration config) {
prefix = config.getString("messages.prefix");
- commandDenied = config.getString("messages.command-denied");
+ commandDenied = config.getString("messages.command-denied", null);
+ commandDeniedList = config.getStringList("messages.command-denied");
noPermission = config.getString("messages.no-permission");
noSubCommand = config.getString("messages.no-such-subcommand");
configReloaded = config.getString("messages.config-reloaded");
@@ -28,9 +30,11 @@ public class BungeeConfigCache {
public HashMap> getPermList() {
return permList;
}
-
public String getPrefix() {return prefix;}
public String getCommandDenied() {return commandDenied;}
+ public List getCommandDeniedList() {
+ return commandDeniedList;
+ }
public String getNoPermission() {return noPermission;}
public String getNoSubCommand() {return noSubCommand;}
public String getConfigReloaded() {return configReloaded;}
diff --git a/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeChatEventListener.java b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeChatEventListener.java
index a8359d0..10c886d 100644
--- a/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeChatEventListener.java
+++ b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeChatEventListener.java
@@ -1,10 +1,14 @@
package eu.endermite.commandwhitelist.bungee.listeners;
+import eu.endermite.commandwhitelist.api.RandomStuff;
import eu.endermite.commandwhitelist.bungee.CommandWhitelistBungee;
-import net.md_5.bungee.api.ChatColor;
+import eu.endermite.commandwhitelist.bungee.config.BungeeConfigCache;
+import eu.endermite.commandwhitelist.spigot.CommandWhitelist;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;
+import org.bukkit.ChatColor;
+
import java.util.List;
import java.util.Map;
@@ -47,7 +51,8 @@ public class BungeeChatEventListener implements Listener {
}
if (!found) {
event.setCancelled(true);
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelistBungee.getConfigCache().getPrefix() + CommandWhitelistBungee.getConfigCache().getCommandDenied()));
+ BungeeConfigCache config = CommandWhitelistBungee.getConfigCache();
+ player.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelist.getConfigCache().getPrefix() + RandomStuff.getMessage(config.getCommandDeniedList(), config.getCommandDenied())));
}
}
}
diff --git a/src/main/java/eu/endermite/commandwhitelist/spigot/CommandWhitelist.java b/src/main/java/eu/endermite/commandwhitelist/spigot/CommandWhitelist.java
index ba49345..280d84e 100644
--- a/src/main/java/eu/endermite/commandwhitelist/spigot/CommandWhitelist.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/CommandWhitelist.java
@@ -49,7 +49,7 @@ public class CommandWhitelist extends JavaPlugin {
public void reloadPluginConfig() {
saveDefaultConfig();
reloadConfig();
- configCache = new ConfigCache();
+ configCache = new ConfigCache(getConfig());
}
public void reloadPluginConfig(CommandSender sender) {
diff --git a/src/main/java/eu/endermite/commandwhitelist/spigot/config/ConfigCache.java b/src/main/java/eu/endermite/commandwhitelist/spigot/config/ConfigCache.java
index 0292622..9c5699a 100644
--- a/src/main/java/eu/endermite/commandwhitelist/spigot/config/ConfigCache.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/config/ConfigCache.java
@@ -1,6 +1,5 @@
package eu.endermite.commandwhitelist.spigot.config;
-import eu.endermite.commandwhitelist.spigot.CommandWhitelist;
import org.bukkit.configuration.Configuration;
import java.util.HashMap;
@@ -11,13 +10,13 @@ public class ConfigCache {
private HashMap> permList = new HashMap<>();
private String prefix, commandDenied, noPermission, noSubCommand, configReloaded;
+ private List commandDeniedList;
- public ConfigCache() {
-
- Configuration config = CommandWhitelist.getPlugin().getConfig();
+ public ConfigCache(Configuration config) {
prefix = config.getString("messages.prefix");
- commandDenied = config.getString("messages.command-denied");
+ commandDenied = config.getString("messages.command-denied", null);
+ commandDeniedList = config.getStringList("messages.command-denied");
noPermission = config.getString("messages.no-permission");
noSubCommand = config.getString("messages.no-such-subcommand");
configReloaded = config.getString("messages.config-reloaded");
@@ -32,11 +31,11 @@ public class ConfigCache {
return permList;
}
- public List getPerm(String s) {
- return permList.get(s);
- }
public String getPrefix() {return prefix;}
public String getCommandDenied() {return commandDenied;}
+ public List getCommandDeniedList() {
+ return commandDeniedList;
+ }
public String getNoPermission() {return noPermission;}
public String getNoSubCommand() {return noSubCommand;}
public String getConfigReloaded() {return configReloaded;}
diff --git a/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandPreProcessListener.java b/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandPreProcessListener.java
index 23e3c84..a4b1e8f 100644
--- a/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandPreProcessListener.java
+++ b/src/main/java/eu/endermite/commandwhitelist/spigot/listeners/PlayerCommandPreProcessListener.java
@@ -1,6 +1,8 @@
package eu.endermite.commandwhitelist.spigot.listeners;
+import eu.endermite.commandwhitelist.api.RandomStuff;
import eu.endermite.commandwhitelist.spigot.CommandWhitelist;
+import eu.endermite.commandwhitelist.spigot.config.ConfigCache;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -35,7 +37,8 @@ public class PlayerCommandPreProcessListener implements Listener {
}
}
event.setCancelled(true);
- player.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelist.getConfigCache().getPrefix() + CommandWhitelist.getConfigCache().getCommandDenied()));
+ ConfigCache config = CommandWhitelist.getConfigCache();
+ player.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelist.getConfigCache().getPrefix() + RandomStuff.getMessage(config.getCommandDeniedList(), config.getCommandDenied())));
}
}