diff --git a/src/main/java/net/knarcraft/dropper/Dropper.java b/src/main/java/net/knarcraft/dropper/Dropper.java index f6658da..53b5e20 100644 --- a/src/main/java/net/knarcraft/dropper/Dropper.java +++ b/src/main/java/net/knarcraft/dropper/Dropper.java @@ -10,6 +10,7 @@ import net.knarcraft.dropper.command.JoinArenaCommand; import net.knarcraft.dropper.command.JoinArenaTabCompleter; import net.knarcraft.dropper.command.LeaveArenaCommand; import net.knarcraft.dropper.command.ListArenaCommand; +import net.knarcraft.dropper.command.ReloadCommand; import net.knarcraft.dropper.command.RemoveArenaCommand; import net.knarcraft.dropper.command.RemoveArenaTabCompleter; import net.knarcraft.dropper.container.SerializableMaterial; @@ -65,6 +66,14 @@ public final class Dropper extends JavaPlugin { return this.playerRegistry; } + /** + * Reloads all configurations and data from disk + */ + public void reload() { + // Load all arenas again + this.arenaHandler.loadArenas(); + } + @Override public void onLoad() { super.onLoad(); @@ -97,6 +106,7 @@ public final class Dropper extends JavaPlugin { pluginManager.registerEvents(new MoveListener(), this); pluginManager.registerEvents(new PlayerLeaveListener(), this); + registerCommand("dropperreload", new ReloadCommand(), null); registerCommand("droppercreate", new CreateArenaCommand(), null); registerCommand("dropperlist", new ListArenaCommand(), null); registerCommand("dropperjoin", new JoinArenaCommand(), new JoinArenaTabCompleter()); diff --git a/src/main/java/net/knarcraft/dropper/command/ReloadCommand.java b/src/main/java/net/knarcraft/dropper/command/ReloadCommand.java new file mode 100644 index 0000000..6be7a2f --- /dev/null +++ b/src/main/java/net/knarcraft/dropper/command/ReloadCommand.java @@ -0,0 +1,33 @@ +package net.knarcraft.dropper.command; + +import net.knarcraft.dropper.Dropper; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabExecutor; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; + +/** + * The command for reloading the plugin + */ +public class ReloadCommand implements TabExecutor { + + @Override + public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, + @NotNull String[] arguments) { + Dropper.getInstance().reload(); + commandSender.sendMessage("Plugin reloaded!"); + return true; + } + + @Nullable + @Override + public List onTabComplete(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, + @NotNull String[] arguments) { + return new ArrayList<>(); + } + +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 75e889b..1e8f88a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,6 +5,12 @@ api-version: 1.19 description: A plugin for dropper mini-games commands: + dropperreload: + aliases: + - dreload + permission: dropper.admin + usage: / + description: Reloads all data from disk dropperlist: aliases: - dlist