From de85c7dd62b5307359492b7c801645175dd791bc Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 26 Jun 2020 14:37:15 +0100 Subject: [PATCH] Safely disable the plugin if integration plugin is not enabled --- .../rpgregions/api/integrations/IntegrationType.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationType.java b/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationType.java index 516321b..591ca4c 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationType.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/IntegrationType.java @@ -23,6 +23,12 @@ public enum IntegrationType { RPGRegions plugin = JavaPlugin.getPlugin(RPGRegions.class); if (plugin.getManagers() != null && plugin.getManagers().getIntegrationManager() != null) throw new UnsupportedOperationException("IntegrationManager already loaded"); plugin.getLogger().info("Loading IntegrationManager implementation..."); + if (Bukkit.getPluginManager().getPlugin(path.split(".")[0]) == null) { + plugin.getLogger().severe("Unable to load IntegrationManager. The rquested plugin is not enabled."); + Bukkit.getPluginManager().disablePlugin(plugin); + return Optional.empty(); + } + Class clazz = (Class) Class .forName("net.islandearth.rpgregions.api.integrations." + path); IntegrationManager generatedClazz = null;