From 862fa193e66f2fe44aa04c67314690503cfcd15b Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Mon, 26 Apr 2021 02:17:39 +0200 Subject: [PATCH] more reorganizing and making things work --- CommandWhitelistBukkit/pom.xml | 4 - .../bukkit/CommandWhitelistBukkit.java | 10 +- .../bukkit/command/BukkitCommandHandler.java | 42 ------ .../bukkit/command/MainCommand.java | 66 -------- .../bukkit/command/MainCommandExecutor.java | 141 ++++++++++++++++++ CommandWhitelistCommon/pom.xml | 1 + .../commandwhitelist/common/ConfigCache.java | 4 +- .../common/commands/CWCommand.java | 6 +- .../velocity/command/VelocityMainCommand.java | 69 +++++++-- .../velocity/config/VelocityConfigCache.java | 38 ----- .../waterfall/command/BungeeMainCommand.java | 37 +++-- 11 files changed, 233 insertions(+), 185 deletions(-) delete mode 100644 CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/BukkitCommandHandler.java delete mode 100644 CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommand.java create mode 100644 CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommandExecutor.java delete mode 100644 CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/config/VelocityConfigCache.java diff --git a/CommandWhitelistBukkit/pom.xml b/CommandWhitelistBukkit/pom.xml index 5561e7d..b7bad24 100644 --- a/CommandWhitelistBukkit/pom.xml +++ b/CommandWhitelistBukkit/pom.xml @@ -55,10 +55,6 @@ - - papermc-repo - https://papermc.io/repo/repository/maven-public/ - sonatype https://oss.sonatype.org/content/groups/public/ diff --git a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java index dd5cbcf..568ddcf 100644 --- a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java +++ b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/CommandWhitelistBukkit.java @@ -6,13 +6,14 @@ import eu.endermite.commandwhitelist.bukkit.listeners.PlayerCommandSendListener; import eu.endermite.commandwhitelist.bukkit.listeners.TabCompleteBlockerListener; import eu.endermite.commandwhitelist.common.CWGroup; 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 net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.text.minimessage.MiniMessage; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; +import org.bukkit.command.PluginCommand; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; @@ -47,7 +48,12 @@ public class CommandWhitelistBukkit extends JavaPlugin { } 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; new BukkitMetrics(this, pluginId); diff --git a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/BukkitCommandHandler.java b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/BukkitCommandHandler.java deleted file mode 100644 index 62903ea..0000000 --- a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/BukkitCommandHandler.java +++ /dev/null @@ -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 getCommands(org.bukkit.entity.Player player, HashMap groups) { - HashSet commandList = new HashSet<>(); - for (Map.Entry 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 getSuggestions(org.bukkit.entity.Player player, HashMap groups) { - HashSet suggestionList = new HashSet<>(); - for (Map.Entry 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; - } - -} diff --git a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommand.java b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommand.java deleted file mode 100644 index 87d3164..0000000 --- a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommand.java +++ /dev/null @@ -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 ")); - 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 ")); - return true; - case HELP: - default: - // send help - } - - } catch (IllegalArgumentException e) { - // send help - } - return true; - } -} diff --git a/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommandExecutor.java b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommandExecutor.java new file mode 100644 index 0000000..f8ef948 --- /dev/null +++ b/CommandWhitelistBukkit/src/main/java/eu/endermite/commandwhitelist/bukkit/command/MainCommandExecutor.java @@ -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 ")); + 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 ")); + 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 onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + List 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; + } +} diff --git a/CommandWhitelistCommon/pom.xml b/CommandWhitelistCommon/pom.xml index b632f69..bf84da6 100644 --- a/CommandWhitelistCommon/pom.xml +++ b/CommandWhitelistCommon/pom.xml @@ -53,6 +53,7 @@ org.yaml snakeyaml 1.28 + compile diff --git a/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java b/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java index 9c24405..5bc3258 100644 --- a/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java +++ b/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/ConfigCache.java @@ -8,6 +8,8 @@ import java.util.*; public class ConfigCache { + //TODO probably rewrite this yet again + private final File configFile; private final boolean canDoProtocolLib; private final HashMap groupList = new LinkedHashMap<>(); @@ -55,7 +57,7 @@ public class ConfigCache { } groups.putIfAbsent("default", new CWGroup("default", defaultCommands, defaultSubcommands).serialize()); - + //TODO find a way to update groups data.putIfAbsent("groups", groups); DumperOptions dumperOptions = new DumperOptions(); diff --git a/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/commands/CWCommand.java b/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/commands/CWCommand.java index 4292368..bcfb00c 100644 --- a/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/commands/CWCommand.java +++ b/CommandWhitelistCommon/src/main/java/eu/endermite/commandwhitelist/common/commands/CWCommand.java @@ -1,11 +1,13 @@ package eu.endermite.commandwhitelist.common.commands; +import com.mojang.brigadier.tree.LiteralCommandNode; import eu.endermite.commandwhitelist.common.CWGroup; import eu.endermite.commandwhitelist.common.ConfigCache; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; +import net.kyori.adventure.text.minimessage.MiniMessage; public class CWCommand { @@ -28,8 +30,8 @@ public class CWCommand { return true; } - public Component helpComponent(String baseCommand, boolean showReloadCommand, boolean showAdminCommands) { - Component component = Component.text("CommandWhitelist by YouHaveTrouble").decorate(TextDecoration.BOLD).color(NamedTextColor.BLUE) + public static Component helpComponent(String baseCommand, boolean showReloadCommand, boolean showAdminCommands) { + Component component = MiniMessage.markdown().parse("CommandWhitelist by YouHaveTrouble") .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")))); diff --git a/CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/command/VelocityMainCommand.java b/CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/command/VelocityMainCommand.java index f76d3b8..b8447fa 100644 --- a/CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/command/VelocityMainCommand.java +++ b/CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/command/VelocityMainCommand.java @@ -2,9 +2,10 @@ package eu.endermite.commandwhitelist.velocity.command; import com.velocitypowered.api.command.CommandSource; import com.velocitypowered.api.command.SimpleCommand; +import eu.endermite.commandwhitelist.common.commands.CWCommand; import eu.endermite.commandwhitelist.velocity.CommandWhitelistVelocity; import net.kyori.adventure.text.Component; - +import net.kyori.adventure.text.minimessage.MiniMessage; import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -13,22 +14,60 @@ public class VelocityMainCommand implements SimpleCommand { @Override public void execute(final Invocation invocation) { - CommandSource source = invocation.source(); + CommandSource sender = invocation.source(); String[] args = invocation.arguments(); - if (args.length > 0) { - if (args.length == 1 && args[0].equalsIgnoreCase("reload")) { - if (source.hasPermission("commandwhitelist.reload")) { - CommandWhitelistVelocity.reloadConfig(source); - } else { - 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("&", "§"))); - } + String label = invocation.alias(); + + if (args.length == 0) { + sender.sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin"))); + return; } + + 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 ")); + 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 ")); + 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 diff --git a/CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/config/VelocityConfigCache.java b/CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/config/VelocityConfigCache.java deleted file mode 100644 index d26d585..0000000 --- a/CommandWhitelistVelocity/src/main/java/eu/endermite/commandwhitelist/velocity/config/VelocityConfigCache.java +++ /dev/null @@ -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> 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 set : groups.entrySet()) { - this.permList.put(set.getKey(), (List) set.getValue()); - } - } - - public HashMap> getPermList() { - return permList; - } - public String getNoPermission() { - return noPermission.replaceAll("&", "§"); - } - public String getNoSubCommand() {return noSubCommand.replaceAll("&", "§");} - public String getConfigReloaded() {return configReloaded.replaceAll("&", "§");} - - -} diff --git a/CommandWhitelistWaterfall/src/main/java/eu/endermite/commandwhitelist/waterfall/command/BungeeMainCommand.java b/CommandWhitelistWaterfall/src/main/java/eu/endermite/commandwhitelist/waterfall/command/BungeeMainCommand.java index 3489fac..a78fde0 100644 --- a/CommandWhitelistWaterfall/src/main/java/eu/endermite/commandwhitelist/waterfall/command/BungeeMainCommand.java +++ b/CommandWhitelistWaterfall/src/main/java/eu/endermite/commandwhitelist/waterfall/command/BungeeMainCommand.java @@ -1,7 +1,9 @@ package eu.endermite.commandwhitelist.waterfall.command; +import eu.endermite.commandwhitelist.common.ConfigCache; import eu.endermite.commandwhitelist.common.commands.CWCommand; import eu.endermite.commandwhitelist.waterfall.CommandWhitelistWaterfall; +import net.kyori.adventure.platform.bungeecord.BungeeAudiences; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.minimessage.MiniMessage; 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) { + + String label = getName(); + ConfigCache configCache = CommandWhitelistWaterfall.getConfigCache(); + BungeeAudiences audiences = CommandWhitelistWaterfall.getAudiences(); + if (args.length == 0) { - // send help + audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin"))); return; } try { - CWCommand.CommandType commandType = CWCommand.CommandType.valueOf(args[0]); + CWCommand.CommandType commandType = CWCommand.CommandType.valueOf(args[0].toUpperCase()); switch (commandType) { case 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; } CommandWhitelistWaterfall.getPlugin().loadConfigAsync(sender); return; case ADD: 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; } if (args.length == 3) { - if (CWCommand.addToWhitelist(CommandWhitelistWaterfall.getConfigCache(), args[2], args[1])) - CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().added_to_whitelist)); + if (CWCommand.addToWhitelist(configCache, args[2], args[1])) + audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.added_to_whitelist)); 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 - CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(Component.text("/cw add ")); + audiences.sender(sender).sendMessage(Component.text("/"+label+" add ")); return; case REMOVE: 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; } if (args.length == 3) { - if (CWCommand.removeFromWhitelist(CommandWhitelistWaterfall.getConfigCache(), args[2], args[1])) - CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(MiniMessage.markdown().parse(CommandWhitelistWaterfall.getConfigCache().prefix + CommandWhitelistWaterfall.getConfigCache().removed_from_whitelist)); + if (CWCommand.removeFromWhitelist(configCache, args[2], args[1])) + audiences.sender(sender).sendMessage(MiniMessage.markdown().parse(configCache.prefix + configCache.removed_from_whitelist)); 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 - CommandWhitelistWaterfall.getAudiences().sender(sender).sendMessage(Component.text("/cw remove ")); + audiences.sender(sender).sendMessage(Component.text("/"+label+" remove ")); return; case HELP: default: - // send help + audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin"))); } } catch (IllegalArgumentException e) { - // send help + audiences.sender(sender).sendMessage(CWCommand.helpComponent(label, sender.hasPermission("commandwhitelist.reload"), sender.hasPermission("commandwhitelist.admin"))); } return; }