Tag along on MobArena's /ma reload command.

This commit adds to the main plugin class a tiny event listener that
listens for MobArena's post-reload event and responds by calling the
internal reload method. This gives us a super cheap way to support
reloads while giving server owners one fewer commands to worry about.

Closes #11
This commit is contained in:
Andreas Troelsen
2021-08-01 19:28:37 +02:00
parent 9f90045f3c
commit 1756a08318
@@ -2,10 +2,13 @@ package org.mobarena.stats;
import com.garbagemule.MobArena.MobArena;
import com.garbagemule.MobArena.commands.CommandHandler;
import com.garbagemule.MobArena.events.MobArenaReloadEvent;
import org.bstats.bukkit.Metrics;
import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.mobarena.stats.command.ArenaStatsCommand;
import org.mobarena.stats.command.DeleteSessionStatsCommand;
@@ -82,6 +85,7 @@ public class MobArenaStatsPlugin extends JavaPlugin implements MobArenaStats {
setupExecutors();
setupCommands();
setupMetrics();
registerReloadListener();
} catch (Exception up) {
// If setup fails, we can't recover, so throw up
throw new RuntimeException(up);
@@ -139,6 +143,15 @@ public class MobArenaStatsPlugin extends JavaPlugin implements MobArenaStats {
metrics.addCustomChart(new StoreTypeChart(this));
}
private void registerReloadListener() {
getServer().getPluginManager().registerEvents(new Listener() {
@EventHandler
public void on(MobArenaReloadEvent event) {
reload();
}
}, this);
}
private void reload() {
try {
createSessionStore();