more reorganizing and making things work

This commit is contained in:
YouHaveTrouble
2021-04-26 02:17:39 +02:00
parent 60260106a9
commit 862fa193e6
11 changed files with 233 additions and 185 deletions
-4
View File
@@ -55,10 +55,6 @@
</build> </build>
<repositories> <repositories>
<repository>
<id>papermc-repo</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
<repository> <repository>
<id>sonatype</id> <id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url> <url>https://oss.sonatype.org/content/groups/public/</url>
@@ -6,13 +6,14 @@ import eu.endermite.commandwhitelist.bukkit.listeners.PlayerCommandSendListener;
import eu.endermite.commandwhitelist.bukkit.listeners.TabCompleteBlockerListener; import eu.endermite.commandwhitelist.bukkit.listeners.TabCompleteBlockerListener;
import eu.endermite.commandwhitelist.common.CWGroup; import eu.endermite.commandwhitelist.common.CWGroup;
import eu.endermite.commandwhitelist.common.ConfigCache; import eu.endermite.commandwhitelist.common.ConfigCache;
import eu.endermite.commandwhitelist.bukkit.command.MainCommand; import eu.endermite.commandwhitelist.bukkit.command.MainCommandExecutor;
import eu.endermite.commandwhitelist.bukkit.metrics.BukkitMetrics; import eu.endermite.commandwhitelist.bukkit.metrics.BukkitMetrics;
import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@@ -47,7 +48,12 @@ public class CommandWhitelistBukkit extends JavaPlugin {
} }
getServer().getPluginManager().registerEvents(new TabCompleteBlockerListener(), this); getServer().getPluginManager().registerEvents(new TabCompleteBlockerListener(), this);
getCommand("commandwhitelist").setExecutor(new MainCommand()); PluginCommand command = getCommand("commandwhitelist");
if (command != null) {
MainCommandExecutor executor = new MainCommandExecutor();
command.setExecutor(executor);
command.setTabCompleter(executor);
}
int pluginId = 8705; int pluginId = 8705;
new BukkitMetrics(this, pluginId); new BukkitMetrics(this, pluginId);
@@ -1,42 +0,0 @@
package eu.endermite.commandwhitelist.bukkit.command;
import eu.endermite.commandwhitelist.common.CWGroup;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
public class BukkitCommandHandler {
/**
* @param player Bukkit Player
* @return commands available to the player
*/
public static HashSet<String> getCommands(org.bukkit.entity.Player player, HashMap<String, CWGroup> groups) {
HashSet<String> commandList = new HashSet<>();
for (Map.Entry<String, CWGroup> s : groups.entrySet()) {
if (s.getKey().equalsIgnoreCase("default"))
commandList.addAll(s.getValue().getCommands());
else if (player.hasPermission("commandwhitelist.group." + s.getKey()))
commandList.addAll(s.getValue().getCommands());
}
return commandList;
}
/**
* @param player Bukkit Player
* @return subcommands unavailable for the player
*/
public static HashSet<String> getSuggestions(org.bukkit.entity.Player player, HashMap<String, CWGroup> groups) {
HashSet<String> suggestionList = new HashSet<>();
for (Map.Entry<String, CWGroup> s : groups.entrySet()) {
if (s.getKey().equalsIgnoreCase("default"))
suggestionList.addAll(s.getValue().getSubCommands());
if (player.hasPermission("commandwhitelist.group." + s.getKey()))
continue;
suggestionList.addAll(s.getValue().getSubCommands());
}
return suggestionList;
}
}
@@ -1,66 +0,0 @@
package eu.endermite.commandwhitelist.bukkit.command;
import eu.endermite.commandwhitelist.common.commands.CWCommand;
import eu.endermite.commandwhitelist.bukkit.CommandWhitelistBukkit;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
public class MainCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (args.length == 0) {
// send help
return true;
}
try {
CWCommand.CommandType commandType = CWCommand.CommandType.valueOf(args[0]);
switch (commandType) {
case RELOAD:
if (!sender.hasPermission("commandwhitelist.reload")) {
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().no_permission));
return true;
}
CommandWhitelistBukkit.getPlugin().reloadPluginConfig(sender);
return true;
case ADD:
if (!sender.hasPermission("commandwhitelist.admin")) {
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().no_permission));
return true;
}
if (args.length == 3) {
if (CWCommand.addToWhitelist(CommandWhitelistBukkit.getConfigCache(), args[2], args[1]))
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().added_to_whitelist));
else
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().group_doesnt_exist));
} else
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(Component.text("/cw add <group> <command>"));
return true;
case REMOVE:
if (!sender.hasPermission("commandwhitelist.admin")) {
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().no_permission));
return true;
}
if (args.length == 3) {
if (CWCommand.removeFromWhitelist(CommandWhitelistBukkit.getConfigCache(), args[2], args[1]))
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().removed_from_whitelist));
else
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().group_doesnt_exist));
} else
CommandWhitelistBukkit.getAudiences().sender(sender).sendMessage(Component.text("/cw remove <group> <command>"));
return true;
case HELP:
default:
// send help
}
} catch (IllegalArgumentException e) {
// send help
}
return true;
}
}
@@ -0,0 +1,141 @@
package eu.endermite.commandwhitelist.bukkit.command;
import eu.endermite.commandwhitelist.common.ConfigCache;
import eu.endermite.commandwhitelist.common.commands.CWCommand;
import eu.endermite.commandwhitelist.bukkit.CommandWhitelistBukkit;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.help.HelpTopic;
import java.util.ArrayList;
import java.util.List;
public class MainCommandExecutor implements TabExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
BukkitAudiences audiences = CommandWhitelistBukkit.getAudiences();
if (args.length == 0) {
audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
return true;
}
try {
CWCommand.CommandType commandType = CWCommand.CommandType.valueOf(args[0].toUpperCase());
switch (commandType) {
case RELOAD:
if (!sender.hasPermission("commandwhitelist.reload")) {
audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().no_permission));
return true;
}
CommandWhitelistBukkit.getPlugin().reloadPluginConfig(sender);
return true;
case ADD:
if (!sender.hasPermission("commandwhitelist.admin")) {
audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().no_permission));
return true;
}
if (args.length == 3) {
if (CWCommand.addToWhitelist(CommandWhitelistBukkit.getConfigCache(), args[2], args[1]))
audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().added_to_whitelist));
else
audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().group_doesnt_exist));
} else
audiences.sender(sender).sendMessage(Component.text("/" + label + " add <group> <command>"));
return true;
case REMOVE:
if (!sender.hasPermission("commandwhitelist.admin")) {
audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().no_permission));
return true;
}
if (args.length == 3) {
if (CWCommand.removeFromWhitelist(CommandWhitelistBukkit.getConfigCache(), args[2], args[1]))
audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().removed_from_whitelist));
else
audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistBukkit.getConfigCache().prefix + CommandWhitelistBukkit.getConfigCache().group_doesnt_exist));
} else
audiences.sender(sender).sendMessage(Component.text("/" + label + " remove <group> <command>"));
return true;
case HELP:
default:
audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
}
} catch (IllegalArgumentException e) {
audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
}
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
List<String> list = new ArrayList<>();
ConfigCache config = CommandWhitelistBukkit.getConfigCache();
if (args.length == 1) {
if ("reload".startsWith(args[0]) && sender.hasPermission("commandwhitelist.reload")) {
list.add("reload");
}
if ("add".startsWith(args[0]) && sender.hasPermission("commandwhitelist.admin")) {
list.add("add");
}
if ("remove".startsWith(args[0]) && sender.hasPermission("commandwhitelist.admin")) {
list.add("remove");
}
} else if (args.length == 2) {
if (args[0].equalsIgnoreCase("add") || args[0].equalsIgnoreCase("remove")) {
if (!sender.hasPermission("commandwhitelist.admin"))
return list;
for (String s : config.getGroupList().keySet()) {
if (s.startsWith(args[1])) {
list.add(s);
}
}
}
} else if (args.length == 3) {
if (args[0].equalsIgnoreCase("remove")) {
if (!sender.hasPermission("commandwhitelist.admin"))
return list;
try {
for (String s : config.getGroupList().get(args[1]).getCommands()) {
if (s.startsWith(args[2])) {
list.add(s);
}
}
} catch (NullPointerException ignored) {}
return list;
}
if (args[0].equalsIgnoreCase("add")) {
if (!sender.hasPermission("commandwhitelist.admin"))
return list;
for (HelpTopic s : CommandWhitelistBukkit.getPlugin().getServer().getHelpMap().getHelpTopics()) {
String cmd = s.getName();
if (!cmd.startsWith("/"))
continue;
try {
if (cmd.contains(":")) {
cmd = cmd.split(":")[1];
}
} catch (Exception e) {
continue;
}
cmd = cmd.replace("/", "");
if (config.getGroupList().get(args[1]).getCommands().contains(cmd))
continue;
if (cmd.startsWith(args[2])) {
list.add(cmd);
}
}
return list;
}
}
return list;
}
}
+1
View File
@@ -53,6 +53,7 @@
<groupId>org.yaml</groupId> <groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId> <artifactId>snakeyaml</artifactId>
<version>1.28</version> <version>1.28</version>
<scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>
@@ -8,6 +8,8 @@ import java.util.*;
public class ConfigCache { public class ConfigCache {
//TODO probably rewrite this yet again
private final File configFile; private final File configFile;
private final boolean canDoProtocolLib; private final boolean canDoProtocolLib;
private final HashMap<String, CWGroup> groupList = new LinkedHashMap<>(); private final HashMap<String, CWGroup> groupList = new LinkedHashMap<>();
@@ -55,7 +57,7 @@ public class ConfigCache {
} }
groups.putIfAbsent("default", new CWGroup("default", defaultCommands, defaultSubcommands).serialize()); groups.putIfAbsent("default", new CWGroup("default", defaultCommands, defaultSubcommands).serialize());
//TODO find a way to update groups
data.putIfAbsent("groups", groups); data.putIfAbsent("groups", groups);
DumperOptions dumperOptions = new DumperOptions(); DumperOptions dumperOptions = new DumperOptions();
@@ -1,11 +1,13 @@
package eu.endermite.commandwhitelist.common.commands; package eu.endermite.commandwhitelist.common.commands;
import com.mojang.brigadier.tree.LiteralCommandNode;
import eu.endermite.commandwhitelist.common.CWGroup; import eu.endermite.commandwhitelist.common.CWGroup;
import eu.endermite.commandwhitelist.common.ConfigCache; import eu.endermite.commandwhitelist.common.ConfigCache;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextDecoration; import net.kyori.adventure.text.format.TextDecoration;
import net.kyori.adventure.text.minimessage.MiniMessage;
public class CWCommand { public class CWCommand {
@@ -28,8 +30,8 @@ public class CWCommand {
return true; return true;
} }
public Component helpComponent(String baseCommand, boolean showReloadCommand, boolean showAdminCommands) { public static Component helpComponent(String baseCommand, boolean showReloadCommand, boolean showAdminCommands) {
Component component = Component.text("CommandWhitelist by YouHaveTrouble").decorate(TextDecoration.BOLD).color(NamedTextColor.BLUE) Component component = MiniMessage.markdown().parse("<rainbow><bold>CommandWhitelist by YouHaveTrouble")
.append(Component.newline()); .append(Component.newline());
component = component.append(Component.text("Hover over the command to see what it does!").color(NamedTextColor.AQUA)).decoration(TextDecoration.BOLD, false).append(Component.newline()); component = component.append(Component.text("Hover over the command to see what it does!").color(NamedTextColor.AQUA)).decoration(TextDecoration.BOLD, false).append(Component.newline());
component = component.append(Component.text("/"+baseCommand+" help").color(NamedTextColor.AQUA).hoverEvent(HoverEvent.showText(Component.text("Displays this message")))); component = component.append(Component.text("/"+baseCommand+" help").color(NamedTextColor.AQUA).hoverEvent(HoverEvent.showText(Component.text("Displays this message"))));
@@ -2,9 +2,10 @@ package eu.endermite.commandwhitelist.velocity.command;
import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.CommandSource;
import com.velocitypowered.api.command.SimpleCommand; import com.velocitypowered.api.command.SimpleCommand;
import eu.endermite.commandwhitelist.common.commands.CWCommand;
import eu.endermite.commandwhitelist.velocity.CommandWhitelistVelocity; import eu.endermite.commandwhitelist.velocity.CommandWhitelistVelocity;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@@ -13,22 +14,60 @@ public class VelocityMainCommand implements SimpleCommand {
@Override @Override
public void execute(final Invocation invocation) { public void execute(final Invocation invocation) {
CommandSource source = invocation.source(); CommandSource sender = invocation.source();
String[] args = invocation.arguments(); String[] args = invocation.arguments();
if (args.length > 0) { String label = invocation.alias();
if (args.length == 1 && args[0].equalsIgnoreCase("reload")) {
if (source.hasPermission("commandwhitelist.reload")) { if (args.length == 0) {
CommandWhitelistVelocity.reloadConfig(source); sender.sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
} else { return;
source.sendMessage(Component.text(CommandWhitelistVelocity.getConfigCache().no_permission));
}
}
} else {
source.sendMessage(Component.text("&bCommand Whitelist by YouHaveTrouble".replaceAll("&", "§")));
if (source.hasPermission("commandwhitelist.reload")) {
source.sendMessage(Component.text("&9/vcw reload &b- Reload velocity plugin configuration".replaceAll("&", "§")));
}
} }
try {
CWCommand.CommandType commandType = CWCommand.CommandType.valueOf(args[0].toUpperCase());
switch (commandType) {
case RELOAD:
if (!sender.hasPermission("commandwhitelist.reload")) {
sender.sendMessage(MiniMessage.markdown().parse(CommandWhitelistVelocity.getConfigCache().prefix + CommandWhitelistVelocity.getConfigCache().no_permission));
return;
}
CommandWhitelistVelocity.reloadConfig(sender);
return;
case ADD:
if (!sender.hasPermission("commandwhitelist.admin")) {
sender.sendMessage(MiniMessage.markdown().parse(CommandWhitelistVelocity.getConfigCache().prefix + CommandWhitelistVelocity.getConfigCache().no_permission));
return;
}
if (args.length == 3) {
if (CWCommand.addToWhitelist(CommandWhitelistVelocity.getConfigCache(), args[2], args[1]))
sender.sendMessage(MiniMessage.markdown().parse(CommandWhitelistVelocity.getConfigCache().prefix + CommandWhitelistVelocity.getConfigCache().added_to_whitelist));
else
sender.sendMessage(MiniMessage.markdown().parse(CommandWhitelistVelocity.getConfigCache().prefix + CommandWhitelistVelocity.getConfigCache().group_doesnt_exist));
} else
sender.sendMessage(Component.text("/"+label+" add <group> <command>"));
return;
case REMOVE:
if (!sender.hasPermission("commandwhitelist.admin")) {
sender.sendMessage(MiniMessage.markdown().parse(CommandWhitelistVelocity.getConfigCache().prefix + CommandWhitelistVelocity.getConfigCache().no_permission));
return;
}
if (args.length == 3) {
if (CWCommand.removeFromWhitelist(CommandWhitelistVelocity.getConfigCache(), args[2], args[1]))
sender.sendMessage(MiniMessage.markdown().parse(CommandWhitelistVelocity.getConfigCache().prefix + CommandWhitelistVelocity.getConfigCache().removed_from_whitelist));
else
sender.sendMessage(MiniMessage.markdown().parse(CommandWhitelistVelocity.getConfigCache().prefix + CommandWhitelistVelocity.getConfigCache().group_doesnt_exist));
} else
sender.sendMessage(Component.text("/"+label+" remove <group> <command>"));
return;
case HELP:
default:
sender.sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
}
} catch (IllegalArgumentException e) {
sender.sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
}
return;
} }
@Override @Override
@@ -1,38 +0,0 @@
package eu.endermite.commandwhitelist.velocity.config;
import com.moandjiezana.toml.Toml;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class VelocityConfigCache {
private HashMap<String, List<String>> permList = new HashMap<>();
private final String noPermission, noSubCommand, configReloaded;
public VelocityConfigCache(Toml config) {
Toml messages = config.getTable("messages");
noPermission = messages.getString("no-permission", "&cYou don't have permission to do this.");
noSubCommand = messages.getString("no-such-subcommand", "&cNo subcommand by that name.");
configReloaded = messages.getString("config-reloaded", "&eConfiguration reloaded.");
Toml groups = config.getTable("commands");
for (Map.Entry<String, Object> set : groups.entrySet()) {
this.permList.put(set.getKey(), (List<String>) set.getValue());
}
}
public HashMap<String, List<String>> getPermList() {
return permList;
}
public String getNoPermission() {
return noPermission.replaceAll("&", "§");
}
public String getNoSubCommand() {return noSubCommand.replaceAll("&", "§");}
public String getConfigReloaded() {return configReloaded.replaceAll("&", "§");}
}
@@ -1,7 +1,9 @@
package eu.endermite.commandwhitelist.waterfall.command; package eu.endermite.commandwhitelist.waterfall.command;
import eu.endermite.commandwhitelist.common.ConfigCache;
import eu.endermite.commandwhitelist.common.commands.CWCommand; import eu.endermite.commandwhitelist.common.commands.CWCommand;
import eu.endermite.commandwhitelist.waterfall.CommandWhitelistWaterfall; import eu.endermite.commandwhitelist.waterfall.CommandWhitelistWaterfall;
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.CommandSender;
@@ -15,54 +17,59 @@ public class BungeeMainCommand extends Command implements TabExecutor {
} }
public void execute(CommandSender sender, String[] args) { public void execute(CommandSender sender, String[] args) {
String label = getName();
ConfigCache configCache = CommandWhitelistWaterfall.getConfigCache();
BungeeAudiences audiences = CommandWhitelistWaterfall.getAudiences();
if (args.length == 0) { if (args.length == 0) {
// send help audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
return; return;
} }
try { try {
CWCommand.CommandType commandType = CWCommand.CommandType.valueOf(args[0]); CWCommand.CommandType commandType = CWCommand.CommandType.valueOf(args[0].toUpperCase());
switch (commandType) { switch (commandType) {
case RELOAD: case RELOAD:
if (!sender.hasPermission("commandwhitelist.reload")) { if (!sender.hasPermission("commandwhitelist.reload")) {
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().no_permission)); audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + configCache.no_permission));
return; return;
} }
CommandWhitelistWaterfall.getPlugin().loadConfigAsync(sender); CommandWhitelistWaterfall.getPlugin().loadConfigAsync(sender);
return; return;
case ADD: case ADD:
if (!sender.hasPermission("commandwhitelist.admin")) { if (!sender.hasPermission("commandwhitelist.admin")) {
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().no_permission)); audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.no_permission));
return; return;
} }
if (args.length == 3) { if (args.length == 3) {
if (CWCommand.addToWhitelist(CommandWhitelistWaterfall.getConfigCache(), args[2], args[1])) if (CWCommand.addToWhitelist(configCache, args[2], args[1]))
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().added_to_whitelist)); audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.added_to_whitelist));
else else
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().group_doesnt_exist)); audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.group_doesnt_exist));
} else } else
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(Component.text("/cw add <group> <command>")); audiences.sender(sender).sendMessage(Component.text("/"+label+" add <group> <command>"));
return; return;
case REMOVE: case REMOVE:
if (!sender.hasPermission("commandwhitelist.admin")) { if (!sender.hasPermission("commandwhitelist.admin")) {
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().no_permission)); audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.no_permission));
return; return;
} }
if (args.length == 3) { if (args.length == 3) {
if (CWCommand.removeFromWhitelist(CommandWhitelistWaterfall.getConfigCache(), args[2], args[1])) if (CWCommand.removeFromWhitelist(configCache, args[2], args[1]))
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().removed_from_whitelist)); audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.removed_from_whitelist));
else else
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().group_doesnt_exist)); audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.group_doesnt_exist));
} else } else
CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(Component.text("/cw remove <group> <command>")); audiences.sender(sender).sendMessage(Component.text("/"+label+" remove <group> <command>"));
return; return;
case HELP: case HELP:
default: default:
// send help audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
} }
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
// send help audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin")));
} }
return; return;
} }