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.MobArena;
import com.garbagemule.MobArena.commands.CommandHandler; import com.garbagemule.MobArena.commands.CommandHandler;
import com.garbagemule.MobArena.events.MobArenaReloadEvent;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.mobarena.stats.command.ArenaStatsCommand; import org.mobarena.stats.command.ArenaStatsCommand;
import org.mobarena.stats.command.DeleteSessionStatsCommand; import org.mobarena.stats.command.DeleteSessionStatsCommand;
@@ -82,6 +85,7 @@ public class MobArenaStatsPlugin extends JavaPlugin implements MobArenaStats {
setupExecutors(); setupExecutors();
setupCommands(); setupCommands();
setupMetrics(); setupMetrics();
registerReloadListener();
} catch (Exception up) { } catch (Exception up) {
// If setup fails, we can't recover, so throw up // If setup fails, we can't recover, so throw up
throw new RuntimeException(up); throw new RuntimeException(up);
@@ -139,6 +143,15 @@ public class MobArenaStatsPlugin extends JavaPlugin implements MobArenaStats {
metrics.addCustomChart(new StoreTypeChart(this)); metrics.addCustomChart(new StoreTypeChart(this));
} }
private void registerReloadListener() {
getServer().getPluginManager().registerEvents(new Listener() {
@EventHandler
public void on(MobArenaReloadEvent event) {
reload();
}
}, this);
}
private void reload() { private void reload() {
try { try {
createSessionStore(); createSessionStore();