From 9db227e493650b9e4367b7af72ca8ce73cfb7bfc Mon Sep 17 00:00:00 2001 From: youhavetrouble Date: Sat, 1 Aug 2020 02:07:23 +0200 Subject: [PATCH] reload command for bungee --- .../bungee/CommandWhitelistBungee.java | 14 ++++++-- .../bungee/command/BungeeMainCommand.java | 34 +++++++++++++++++++ .../listeners/BungeeTabCompleteListener.java | 5 +++ 3 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 src/main/java/eu/endermite/commandwhitelist/bungee/command/BungeeMainCommand.java diff --git a/src/main/java/eu/endermite/commandwhitelist/bungee/CommandWhitelistBungee.java b/src/main/java/eu/endermite/commandwhitelist/bungee/CommandWhitelistBungee.java index de0a9b4..211c2f9 100644 --- a/src/main/java/eu/endermite/commandwhitelist/bungee/CommandWhitelistBungee.java +++ b/src/main/java/eu/endermite/commandwhitelist/bungee/CommandWhitelistBungee.java @@ -1,10 +1,14 @@ package eu.endermite.commandwhitelist.bungee; import com.google.common.io.ByteStreams; +import eu.endermite.commandwhitelist.bungee.command.BungeeMainCommand; import eu.endermite.commandwhitelist.bungee.config.BungeeConfigCache; import eu.endermite.commandwhitelist.bungee.listeners.BungeeChatEventListener; import eu.endermite.commandwhitelist.bungee.listeners.BungeeTabCompleteListener; +import eu.endermite.commandwhitelist.spigot.CommandWhitelist; import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.CommandSender; +import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.ConfigurationProvider; @@ -32,7 +36,7 @@ public final class CommandWhitelistBungee extends Plugin { } else { getLogger().info("Bungee tab completion requires Waterfall, FlameCord or other Waterfall fork."); } - + getProxy().getPluginManager().registerCommand(this, new BungeeMainCommand()); } @@ -68,8 +72,12 @@ public final class CommandWhitelistBungee extends Plugin { } } - public void loadConfigAsync() { - getProxy().getScheduler().runAsync(this, this::loadConfig); + public void loadConfigAsync(CommandSender sender) { + getProxy().getScheduler().runAsync(this, () -> { + loadConfig(); + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelistBungee.getConfigCache().getPrefix() + CommandWhitelistBungee.getConfigCache().getConfigReloaded())); + + }); } } diff --git a/src/main/java/eu/endermite/commandwhitelist/bungee/command/BungeeMainCommand.java b/src/main/java/eu/endermite/commandwhitelist/bungee/command/BungeeMainCommand.java new file mode 100644 index 0000000..4071137 --- /dev/null +++ b/src/main/java/eu/endermite/commandwhitelist/bungee/command/BungeeMainCommand.java @@ -0,0 +1,34 @@ +package eu.endermite.commandwhitelist.bungee.command; + +import eu.endermite.commandwhitelist.bungee.CommandWhitelistBungee; +import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.CommandSender; +import net.md_5.bungee.api.plugin.Command; + + +public class BungeeMainCommand extends Command { + public BungeeMainCommand() { + super("bungeecommandwhitelist", "none", "bcw"); + + } + + @Override + public void execute(CommandSender sender, String[] args) { + if (args.length > 0) { + if (args[0].equalsIgnoreCase("reload")) { + if (sender.hasPermission("commandwhitelist.reload")) { + CommandWhitelistBungee.getPlugin().loadConfigAsync(sender); + } else { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelistBungee.getConfigCache().getPrefix() + CommandWhitelistBungee.getConfigCache().getNoPermission())); + } + } else { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelistBungee.getConfigCache().getPrefix() + CommandWhitelistBungee.getConfigCache().getNoSubCommand())); + } + } else { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&bCommand Whitelist by YouHaveTrouble")); + if (sender.hasPermission("commandwhitelist.reload")) { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&9/bcw reload &b- Reload bungee plugin configuration")); + } + } + } +} diff --git a/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeTabCompleteListener.java b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeTabCompleteListener.java index 85dc8c8..695cd22 100644 --- a/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeTabCompleteListener.java +++ b/src/main/java/eu/endermite/commandwhitelist/bungee/listeners/BungeeTabCompleteListener.java @@ -17,6 +17,11 @@ public class BungeeTabCompleteListener implements Listener { if (event.getReceiver() instanceof ProxiedPlayer) { ProxiedPlayer player = (ProxiedPlayer) event.getReceiver(); + + if (player.hasPermission("commandwhitelist.bypass")) { + return; + } + List commandList = new ArrayList<>(); for (Map.Entry> entry : CommandWhitelistBungee.getConfigCache().getPermList().entrySet()) { if (player.hasPermission("commandwhitelist.commands."+entry.getKey())) {