From 1756a083186a48bdeb7e9683b8bc76cb73ef43ad Mon Sep 17 00:00:00 2001 From: Andreas Troelsen Date: Tue, 6 Jul 2021 19:12:39 +0200 Subject: [PATCH] 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 --- .../org/mobarena/stats/MobArenaStatsPlugin.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/org/mobarena/stats/MobArenaStatsPlugin.java b/src/main/java/org/mobarena/stats/MobArenaStatsPlugin.java index 868a497..6a3a376 100644 --- a/src/main/java/org/mobarena/stats/MobArenaStatsPlugin.java +++ b/src/main/java/org/mobarena/stats/MobArenaStatsPlugin.java @@ -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();