From 5d2fe195864990efaa3fce9e82ac5e2f98034757 Mon Sep 17 00:00:00 2001 From: youhavetrouble Date: Mon, 27 Jul 2020 18:00:00 +0200 Subject: [PATCH] reload command --- .../commandwhitelist/CommandWhitelist.java | 21 +++++++++++++++---- .../commandwhitelist/command/MainCommand.java | 4 +--- .../commandwhitelist/config/ConfigCache.java | 3 +-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/main/java/eu/endermite/commandwhitelist/CommandWhitelist.java b/src/main/java/eu/endermite/commandwhitelist/CommandWhitelist.java index dccf258..ef71417 100644 --- a/src/main/java/eu/endermite/commandwhitelist/CommandWhitelist.java +++ b/src/main/java/eu/endermite/commandwhitelist/CommandWhitelist.java @@ -4,6 +4,10 @@ import eu.endermite.commandwhitelist.command.MainCommand; import eu.endermite.commandwhitelist.config.ConfigCache; import eu.endermite.commandwhitelist.listeners.PlayerCommandPreProcess; import eu.endermite.commandwhitelist.listeners.PlayerCommandSend; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; public class CommandWhitelist extends JavaPlugin { @@ -26,13 +30,22 @@ public class CommandWhitelist extends JavaPlugin { public void reloadPluginConfig() { saveDefaultConfig(); + reloadConfig(); configCache = new ConfigCache(); } + public void reloadPluginConfig(CommandSender sender) { + getServer().getScheduler().runTaskAsynchronously(this, () -> { + // Don't ask why it's called twice, it somehow breaks if it's called only once. + reloadPluginConfig(); + reloadPluginConfig(); + for (Player p : Bukkit.getOnlinePlayers()) { + p.updateCommands(); + } + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelist.getConfigCache().getPrefix() + CommandWhitelist.getConfigCache().getConfigReloaded())); + }); + } + public static CommandWhitelist getPlugin() {return commandWhitelist;} public static ConfigCache getConfigCache() {return configCache;} - - public static T TODO(final String reason) { - throw new RuntimeException(reason); - } } diff --git a/src/main/java/eu/endermite/commandwhitelist/command/MainCommand.java b/src/main/java/eu/endermite/commandwhitelist/command/MainCommand.java index fdae728..4be2cee 100644 --- a/src/main/java/eu/endermite/commandwhitelist/command/MainCommand.java +++ b/src/main/java/eu/endermite/commandwhitelist/command/MainCommand.java @@ -17,9 +17,7 @@ public class MainCommand implements TabExecutor { if (args.length > 0) { if (args[0].equalsIgnoreCase("reload")) { if (sender.hasPermission("commandwhitelist.reload")) { - CommandWhitelist.getPlugin().reloadPluginConfig(); - sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelist.getConfigCache().getPrefix() + CommandWhitelist.getConfigCache().getConfigReloaded())); - + CommandWhitelist.getPlugin().reloadPluginConfig(sender); } else { sender.sendMessage(ChatColor.translateAlternateColorCodes('&', CommandWhitelist.getConfigCache().getPrefix() + CommandWhitelist.getConfigCache().getNoPermission())); } diff --git a/src/main/java/eu/endermite/commandwhitelist/config/ConfigCache.java b/src/main/java/eu/endermite/commandwhitelist/config/ConfigCache.java index 39d79d1..f8077fb 100644 --- a/src/main/java/eu/endermite/commandwhitelist/config/ConfigCache.java +++ b/src/main/java/eu/endermite/commandwhitelist/config/ConfigCache.java @@ -9,13 +9,12 @@ import java.util.Set; public class ConfigCache { - private Configuration config = CommandWhitelist.getPlugin().getConfig(); private HashMap> permList = new HashMap<>(); private String prefix, commandDenied, noPermission, noSubCommand, configReloaded; public ConfigCache() { - CommandWhitelist.getPlugin().reloadConfig(); + Configuration config = CommandWhitelist.getPlugin().getConfig(); prefix = config.getString("messages.prefix"); commandDenied = config.getString("messages.command-denied");