From 161344b30c53071efa6d27bc61c9963638033b5a Mon Sep 17 00:00:00 2001 From: akastijn Date: Sat, 30 May 2026 19:57:02 +0200 Subject: [PATCH] Add `/hg reload` command to refresh configs and messages --- .../hunger_games/commands/BaseCommand.java | 2 + .../commands/subcommands/Reload.java | 39 +++++++++++++++++++ .../alttd/hunger_games/config/Messages.java | 4 ++ 3 files changed, 45 insertions(+) create mode 100644 src/main/java/com/alttd/hunger_games/commands/subcommands/Reload.java diff --git a/src/main/java/com/alttd/hunger_games/commands/BaseCommand.java b/src/main/java/com/alttd/hunger_games/commands/BaseCommand.java index 0360774..ae47e52 100644 --- a/src/main/java/com/alttd/hunger_games/commands/BaseCommand.java +++ b/src/main/java/com/alttd/hunger_games/commands/BaseCommand.java @@ -2,6 +2,7 @@ package com.alttd.hunger_games.commands; import com.alttd.hunger_games.Main; import com.alttd.hunger_games.commands.subcommands.Register; +import com.alttd.hunger_games.commands.subcommands.Reload; import com.alttd.hunger_games.commands.subcommands.RoundState; import com.alttd.hunger_games.commands.subcommands.StartRound; import com.alttd.hunger_games.config.Messages; @@ -35,6 +36,7 @@ public class BaseCommand implements CommandExecutor, TabExecutor { command.setAliases(List.of("hg")); subCommands = new ArrayList<>(List.of( + new Reload(main), new RoundState(roundService), new Register(playerService), new StartRound(round) diff --git a/src/main/java/com/alttd/hunger_games/commands/subcommands/Reload.java b/src/main/java/com/alttd/hunger_games/commands/subcommands/Reload.java new file mode 100644 index 0000000..a44c5d8 --- /dev/null +++ b/src/main/java/com/alttd/hunger_games/commands/subcommands/Reload.java @@ -0,0 +1,39 @@ +package com.alttd.hunger_games.commands.subcommands; + +import com.alttd.hunger_games.Main; +import com.alttd.hunger_games.commands.SubCommand; +import com.alttd.hunger_games.config.Messages; +import org.bukkit.command.CommandSender; + +import java.util.List; + +public class Reload extends SubCommand { + + private final Main main; + + public Reload(Main main) { + this.main = main; + } + + @Override + public boolean onCommand(CommandSender commandSender, String[] args) { + main.reloadConfigs(); + commandSender.sendRichMessage(Messages.GENERIC.RELOAD_SUCCESS); + 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/hunger_games/config/Messages.java b/src/main/java/com/alttd/hunger_games/config/Messages.java index 94f668c..7e0bef0 100644 --- a/src/main/java/com/alttd/hunger_games/config/Messages.java +++ b/src/main/java/com/alttd/hunger_games/config/Messages.java @@ -29,6 +29,7 @@ public class Messages extends AbstractConfig { public static String ROUND_STATE = "Show the current round state: /hg roundstate"; public static String REGISTER = "Register a player for the game: /hg register "; public static String START_ROUND = "Start the game: /hg start"; + public static String RELOAD = "Reload config and messages: /hg reload"; @SuppressWarnings("unused") private static void load() { @@ -37,6 +38,7 @@ public class Messages extends AbstractConfig { ROUND_STATE = config.getString(prefix, "round-state", ROUND_STATE); REGISTER = config.getString(prefix, "register", REGISTER); START_ROUND = config.getString(prefix, "start", START_ROUND); + RELOAD = config.getString(prefix, "reload", RELOAD); } } @@ -46,12 +48,14 @@ public class Messages extends AbstractConfig { public static String NO_PERMISSION = "'>You don't have permission for this command"; public static String PLAYER_ONLY = "This command can only be executed as a player"; public static String PLAYER_NOT_FOUND = "Unable to find online player "; + public static String RELOAD_SUCCESS = "Config and messages have been reloaded."; @SuppressWarnings("unused") private static void load() { NO_PERMISSION = config.getString(prefix, "no-permission", NO_PERMISSION); PLAYER_ONLY = config.getString(prefix, "player-only", PLAYER_ONLY); PLAYER_NOT_FOUND = config.getString(prefix, "player-only", PLAYER_NOT_FOUND); + RELOAD_SUCCESS = config.getString(prefix, "reload-success", RELOAD_SUCCESS); } }