reload command for bungee

This commit is contained in:
youhavetrouble
2020-08-01 02:07:23 +02:00
parent 55ec366804
commit 9db227e493
3 changed files with 50 additions and 3 deletions
@@ -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()));
});
}
}
@@ -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"));
}
}
}
}
@@ -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<String> commandList = new ArrayList<>();
for (Map.Entry<String, List<String>> entry : CommandWhitelistBungee.getConfigCache().getPermList().entrySet()) {
if (player.hasPermission("commandwhitelist.commands."+entry.getKey())) {