diff --git a/api/src/main/java/net/momirealms/customcrops/api/CustomCropsPlugin.java b/api/src/main/java/net/momirealms/customcrops/api/CustomCropsPlugin.java index 215f315..042c746 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/CustomCropsPlugin.java +++ b/api/src/main/java/net/momirealms/customcrops/api/CustomCropsPlugin.java @@ -120,4 +120,6 @@ public abstract class CustomCropsPlugin extends JavaPlugin { public abstract void debug(String debug); public abstract void reload(); + + public abstract boolean doesHookedPluginExist(String plugin); } diff --git a/build.gradle.kts b/build.gradle.kts index b9822f7..c773d22 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { allprojects { project.group = "net.momirealms" - project.version = "3.4.4.2" + project.version = "3.4.4.3" apply() apply(plugin = "java") diff --git a/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java b/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java index 4953c70..afbc139 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java @@ -202,4 +202,9 @@ public class CustomCropsPluginImpl extends CustomCropsPlugin { public boolean isHookedPluginEnabled(String plugin) { return Bukkit.getPluginManager().isPluginEnabled(plugin); } + + @Override + public boolean doesHookedPluginExist(String plugin) { + return Bukkit.getPluginManager().getPlugin(plugin) != null; + } } diff --git a/plugin/src/main/java/net/momirealms/customcrops/compatibility/IntegrationManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/compatibility/IntegrationManagerImpl.java index 7c22e21..02d585c 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/compatibility/IntegrationManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/compatibility/IntegrationManagerImpl.java @@ -17,6 +17,7 @@ package net.momirealms.customcrops.compatibility; +import com.gamingmesh.jobs.Jobs; import net.momirealms.customcrops.api.CustomCropsPlugin; import net.momirealms.customcrops.api.integration.LevelInterface; import net.momirealms.customcrops.api.integration.SeasonInterface; @@ -49,43 +50,47 @@ public class IntegrationManagerImpl implements IntegrationManager { @Override public void init() { - if (plugin.isHookedPluginEnabled("MMOItems")) { + if (plugin.doesHookedPluginExist("MMOItems")) { plugin.getItemManager().registerItemLibrary(new MMOItemsItemImpl()); hookMessage("MMOItems"); } - if (plugin.isHookedPluginEnabled("Zaphkiel")) { + if (plugin.doesHookedPluginExist("Zaphkiel")) { plugin.getItemManager().registerItemLibrary(new ZaphkielItemImpl()); hookMessage("Zaphkiel"); } - if (plugin.isHookedPluginEnabled("NeigeItems")) { + if (plugin.doesHookedPluginExist("NeigeItems")) { plugin.getItemManager().registerItemLibrary(new NeigeItemsItemImpl()); hookMessage("NeigeItems"); } - if (plugin.isHookedPluginEnabled("MythicMobs")) { + if (plugin.doesHookedPluginExist("MythicMobs")) { plugin.getItemManager().registerItemLibrary(new MythicMobsItemImpl()); hookMessage("MythicMobs"); } - if (plugin.isHookedPluginEnabled("EcoJobs")) { + if (plugin.doesHookedPluginExist("EcoJobs")) { registerLevelPlugin("EcoJobs", new EcoJobsImpl()); hookMessage("EcoJobs"); } - if (plugin.isHookedPluginEnabled("AureliumSkills")) { + if (plugin.doesHookedPluginExist("Jobs")) { + registerLevelPlugin("JobsReborn", new JobsRebornImpl()); + hookMessage("JobsReborn"); + } + if (plugin.doesHookedPluginExist("AureliumSkills")) { registerLevelPlugin("AureliumSkills", new AureliumSkillsImpl()); hookMessage("AureliumSkills"); } - if (plugin.isHookedPluginEnabled("EcoSkills")) { + if (plugin.doesHookedPluginExist("EcoSkills")) { registerLevelPlugin("EcoSkills", new EcoSkillsImpl()); hookMessage("EcoSkills"); } - if (plugin.isHookedPluginEnabled("mcMMO")) { + if (plugin.doesHookedPluginExist("mcMMO")) { registerLevelPlugin("mcMMO", new McMMOImpl()); hookMessage("mcMMO"); } - if (plugin.isHookedPluginEnabled("MMOCore")) { + if (plugin.doesHookedPluginExist("MMOCore")) { registerLevelPlugin("MMOCore", new MMOCoreImpl()); hookMessage("MMOCore"); } - if (plugin.isHookedPluginEnabled("AuraSkills")) { + if (plugin.doesHookedPluginExist("AuraSkills")) { registerLevelPlugin("AuraSkills", new AuraSkillsImpl()); hookMessage("AuraSkills"); } diff --git a/plugin/src/main/java/net/momirealms/customcrops/compatibility/level/AureliumSkillsImpl.java b/plugin/src/main/java/net/momirealms/customcrops/compatibility/level/AureliumSkillsImpl.java index 94f94a3..e81cc86 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/compatibility/level/AureliumSkillsImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/compatibility/level/AureliumSkillsImpl.java @@ -24,15 +24,9 @@ import org.bukkit.entity.Player; public class AureliumSkillsImpl implements LevelInterface { - private final Leveler leveler; - - public AureliumSkillsImpl() { - leveler = AureliumAPI.getPlugin().getLeveler(); - } - @Override public void addXp(Player player, String target, double amount) { - leveler.addXp(player, AureliumAPI.getPlugin().getSkillRegistry().getSkill(target), amount); + AureliumAPI.getPlugin().getLeveler().addXp(player, AureliumAPI.getPlugin().getSkillRegistry().getSkill(target), amount); } @Override diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java index 1a1428b..5899528 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java @@ -236,7 +236,14 @@ public class ItemManagerImpl implements ItemManager { return itemStack; if (id.contains(":")) { String[] split = id.split(":", 2); - return itemLibraryMap.get(split[0]).buildItem(player, split[1]); + ItemLibrary library = itemLibraryMap.get(split[0]); + if (library == null) { + LogUtils.warn("Error occurred when building item: " + id + ". Possible causes:"); + LogUtils.warn("① Item library: " + split[0] + " doesn't exist."); + LogUtils.warn("② If you are using ItemsAdder, " + id + " doesn't exist in your ItemsAdder config"); + return new ItemStack(Material.AIR); + } + return library.buildItem(player, split[1]); } else { try { return new ItemStack(Material.valueOf(id.toUpperCase(Locale.ENGLISH))); diff --git a/plugin/src/main/resources/plugin.yml b/plugin/src/main/resources/plugin.yml index 24cfed3..6d3de5d 100644 --- a/plugin/src/main/resources/plugin.yml +++ b/plugin/src/main/resources/plugin.yml @@ -12,16 +12,9 @@ softdepend: - ItemsAdder - Oraxen - PlaceholderAPI - - EcoJobs - BattlePass - BetonQuest - ClueScrolls - - mcMMO - - AureliumSkills - - AuraSkills - - MMOCore - - EcoSkills - - Jobs - RealisticSeasons - AdvancedSeasons - SlimeWorldManager