diff --git a/src/main/java/com/alttd/playerutils/PlayerUtils.java b/src/main/java/com/alttd/playerutils/PlayerUtils.java index 853660a..2a502e5 100644 --- a/src/main/java/com/alttd/playerutils/PlayerUtils.java +++ b/src/main/java/com/alttd/playerutils/PlayerUtils.java @@ -1,6 +1,8 @@ package com.alttd.playerutils; import com.alttd.playerutils.commands.PlayerUtilsCommand; +import com.alttd.playerutils.config.Config; +import com.alttd.playerutils.config.Messages; import com.alttd.playerutils.event_listeners.XpBottleEvent; import com.alttd.playerutils.util.Logger; import org.bukkit.plugin.java.JavaPlugin; @@ -27,4 +29,9 @@ public final class PlayerUtils extends JavaPlugin { private void registerEvents() { getServer().getPluginManager().registerEvents(new XpBottleEvent(this, logger), this); } + + public void reloadConfigs() { + Config.reload(logger); + Messages.reload(logger); + } } diff --git a/src/main/java/com/alttd/playerutils/commands/PlayerUtilsCommand.java b/src/main/java/com/alttd/playerutils/commands/PlayerUtilsCommand.java index 4a84e0d..01ddaa2 100644 --- a/src/main/java/com/alttd/playerutils/commands/PlayerUtilsCommand.java +++ b/src/main/java/com/alttd/playerutils/commands/PlayerUtilsCommand.java @@ -2,6 +2,7 @@ package com.alttd.playerutils.commands; import com.alttd.playerutils.PlayerUtils; import com.alttd.playerutils.commands.playerutils_subcommands.Glow; +import com.alttd.playerutils.commands.playerutils_subcommands.Reload; import com.alttd.playerutils.commands.playerutils_subcommands.XPCalc; import com.alttd.playerutils.commands.playerutils_subcommands.XPCheque; import com.alttd.playerutils.config.Messages; @@ -32,7 +33,8 @@ public class PlayerUtilsCommand implements CommandExecutor, TabExecutor { subCommands = Arrays.asList( new Glow(logger), new XPCheque(playerUtils), - new XPCalc() + new XPCalc(), + new Reload(playerUtils) ); } diff --git a/src/main/java/com/alttd/playerutils/commands/playerutils_subcommands/Reload.java b/src/main/java/com/alttd/playerutils/commands/playerutils_subcommands/Reload.java new file mode 100644 index 0000000..c4b11c6 --- /dev/null +++ b/src/main/java/com/alttd/playerutils/commands/playerutils_subcommands/Reload.java @@ -0,0 +1,39 @@ +package com.alttd.playerutils.commands.playerutils_subcommands; + +import com.alttd.playerutils.PlayerUtils; +import com.alttd.playerutils.commands.SubCommand; +import com.alttd.playerutils.config.Messages; +import org.bukkit.command.CommandSender; + +import java.util.List; + +public class Reload extends SubCommand { + + private final PlayerUtils playerUtils; + + public Reload(PlayerUtils playerUtils) { + this.playerUtils = playerUtils; + } + + @Override + public boolean onCommand(CommandSender commandSender, String[] args) { + playerUtils.reloadConfigs(); + commandSender.sendMiniMessage(Messages.RELOAD.RELOADED, null); + return true; + } + + @Override + public String getName() { + return "reload"; + } + + @Override + public List getTabComplete(CommandSender commandSender, String[] args) { + return List.of(); + } + + @Override + public String getHelpMessage() { + return Messages.HELP.RELOAD; + } +} diff --git a/src/main/java/com/alttd/playerutils/config/Config.java b/src/main/java/com/alttd/playerutils/config/Config.java index d9d42fc..c433ddf 100644 --- a/src/main/java/com/alttd/playerutils/config/Config.java +++ b/src/main/java/com/alttd/playerutils/config/Config.java @@ -1,21 +1,27 @@ package com.alttd.playerutils.config; -import com.alttd.playerutils.PlayerUtils; import com.alttd.playerutils.util.Logger; +import java.io.File; + public class Config extends AbstractConfig{ static Config config; private Logger logger; - Config(PlayerUtils playerUtils, Logger logger) { - super(playerUtils, "config.yml", logger); + Config(Logger logger) { + super( + new File(System.getProperty("user.home") + File.separator + + "share" + File.separator + + "configs" + File.separator + + "PlayerUtils"), + "config.yml", logger); this.logger = logger; } - public static void reload(PlayerUtils playerUtils, Logger logger) { + public static void reload(Logger logger) { logger.info("Reloading config"); - config = new Config(playerUtils, logger); + config = new Config(logger); config.readConfig(Config.class, null); } diff --git a/src/main/java/com/alttd/playerutils/config/Messages.java b/src/main/java/com/alttd/playerutils/config/Messages.java index da72cc4..7a3927b 100644 --- a/src/main/java/com/alttd/playerutils/config/Messages.java +++ b/src/main/java/com/alttd/playerutils/config/Messages.java @@ -1,21 +1,26 @@ package com.alttd.playerutils.config; -import com.alttd.playerutils.PlayerUtils; import com.alttd.playerutils.util.Logger; +import java.io.File; import java.util.List; public class Messages extends AbstractConfig { static Messages config; private final Logger logger; - Messages(PlayerUtils playerUtils, Logger logger) { - super(playerUtils, "messages.yml", logger); + Messages(Logger logger) { + super( + new File(System.getProperty("user.home") + File.separator + + "share" + File.separator + + "configs" + File.separator + + "PlayerUtils"), + "messages.yml", logger); this.logger = logger; } - public static void reload(PlayerUtils playerUtils, Logger logger) { - config = new Messages(playerUtils, logger); + public static void reload(Logger logger) { + config = new Messages(logger); config.readConfig(Messages.class, null); } @@ -27,6 +32,7 @@ public class Messages extends AbstractConfig { public static String GLOW = "Glow in a specified color: /pu glow "; public static String XP_CHEQUE = "Create an xp cheque: /pu xpcheque "; public static String XP_CALC = "Calculate the amount of xp between levels: /pu xpcalc "; + public static String RELOAD = "Reload the configs for PlayerUtils: /pu reload"; @SuppressWarnings("unused") private static void load() { @@ -35,6 +41,7 @@ public class Messages extends AbstractConfig { GLOW = config.getString(prefix, "glow", GLOW); XP_CHEQUE = config.getString(prefix, "xp-cheque", XP_CHEQUE); XP_CALC = config.getString(prefix, "xp-calc", XP_CALC); + RELOAD = config.getString(prefix, "reload", RELOAD); } } @@ -97,4 +104,15 @@ public class Messages extends AbstractConfig { XP_NEEDED = config.getString(prefix, "xp-needed", XP_NEEDED); } } + + public static class RELOAD { + private static final String prefix = "pu-command.reload."; + + public static String RELOADED = "Reloaded configs"; + + @SuppressWarnings("unused") + private static void load() { + RELOADED = config.getString(prefix, "reloaded", RELOADED); + } + } }