From e5e022754bfb1496e2422b75701e0852e548a0bd Mon Sep 17 00:00:00 2001 From: tastybento Date: Mon, 12 Nov 2018 11:44:43 -0800 Subject: [PATCH] Added challenges reload admin command. This reloads from the database files so admins can edit the challenges and then reload them without restarting the server. https://github.com/BentoBoxWorld/addon-challenges/issues/27 --- .../challenges/commands/admin/Challenges.java | 1 + .../commands/admin/ReloadChallenges.java | 43 +++++++++++++++++++ src/main/resources/locales/en-US.yml | 3 ++ 3 files changed, 47 insertions(+) create mode 100644 src/main/java/bentobox/addon/challenges/commands/admin/ReloadChallenges.java diff --git a/src/main/java/bentobox/addon/challenges/commands/admin/Challenges.java b/src/main/java/bentobox/addon/challenges/commands/admin/Challenges.java index b02ef9f..5137e71 100644 --- a/src/main/java/bentobox/addon/challenges/commands/admin/Challenges.java +++ b/src/main/java/bentobox/addon/challenges/commands/admin/Challenges.java @@ -26,6 +26,7 @@ public class Challenges extends CompositeCommand { // Register sub commands new ImportCommand(getAddon(), this); new CompleteChallenge(getAddon(), this); + new ReloadChallenges(getAddon(), this); //new ShowChallenges(getAddon(), this); //new CreateChallenge(getAddon(), this); diff --git a/src/main/java/bentobox/addon/challenges/commands/admin/ReloadChallenges.java b/src/main/java/bentobox/addon/challenges/commands/admin/ReloadChallenges.java new file mode 100644 index 0000000..eb80d18 --- /dev/null +++ b/src/main/java/bentobox/addon/challenges/commands/admin/ReloadChallenges.java @@ -0,0 +1,43 @@ +package bentobox.addon.challenges.commands.admin; + +import java.util.List; + +import bentobox.addon.challenges.ChallengesAddon; +import bentobox.addon.challenges.ChallengesManager; +import world.bentobox.bentobox.api.addons.Addon; +import world.bentobox.bentobox.api.commands.CompositeCommand; +import world.bentobox.bentobox.api.user.User; + +public class ReloadChallenges extends CompositeCommand { + + private ChallengesManager manager; + + /** + * Admin command to complete user challenges + * @param parent + */ + public ReloadChallenges(Addon addon, CompositeCommand parent) { + super(addon, parent, "reload"); + } + + @Override + public void setup() { + this.setPermission("admin.challenges"); + this.setParametersHelp("challenges.admin.reload.parameters"); + this.setDescription("challenges.admin.reload.description"); + manager = ((ChallengesAddon)getAddon()).getChallengesManager(); + } + + @Override + public boolean execute(User user, String label, List args) { + if (!args.isEmpty()) { + // Show help + showHelp(this, user); + return false; + } + manager.load(); + user.sendMessage("general.success"); + return true; + } + +} diff --git a/src/main/resources/locales/en-US.yml b/src/main/resources/locales/en-US.yml index 129dd01..69c98fd 100755 --- a/src/main/resources/locales/en-US.yml +++ b/src/main/resources/locales/en-US.yml @@ -59,6 +59,9 @@ challenges: admin: parameters: "" description: "challenges admin" + reload: + parameters: "" + description: "reload challenges from the database" import: parameters: "[overwrite]" description: "import challenges from challenges.yml"