diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-02-06 15:26:17 +0000 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-02-06 15:26:17 +0000 |
| commit | cf6bdc37e093ac71f3504f6df0e847f98872b935 (patch) | |
| tree | 3ffe8fa20d71c426745589f10d4de841adafae12 /src/main/java/com | |
| parent | 0d0d583247e9ffe6f502c222cb4fbba3aa0e81ee (diff) | |
Fix plugin not loading on servers without PAPIv2.12.1
Diffstat (limited to 'src/main/java/com')
3 files changed, 40 insertions, 16 deletions
diff --git a/src/main/java/com/leonardobishop/quests/Quests.java b/src/main/java/com/leonardobishop/quests/Quests.java index 3af376cc..5272e9ac 100644 --- a/src/main/java/com/leonardobishop/quests/Quests.java +++ b/src/main/java/com/leonardobishop/quests/Quests.java @@ -1,6 +1,5 @@ package com.leonardobishop.quests; -import com.leonardobishop.quests.api.QuestsPlaceholders; import com.leonardobishop.quests.bstats.Metrics; import com.leonardobishop.quests.commands.CommandQuests; import com.leonardobishop.quests.events.EventInventory; @@ -10,7 +9,12 @@ import com.leonardobishop.quests.hooks.itemgetter.ItemGetter; import com.leonardobishop.quests.hooks.itemgetter.ItemGetterLatest; import com.leonardobishop.quests.hooks.itemgetter.ItemGetter_1_13; import com.leonardobishop.quests.hooks.itemgetter.ItemGetter_Late_1_8; +import com.leonardobishop.quests.hooks.papi.IPlaceholderAPIHook; import com.leonardobishop.quests.hooks.papi.PlaceholderAPIHook; +import com.leonardobishop.quests.hooks.title.Title; +import com.leonardobishop.quests.hooks.title.Title_Bukkit; +import com.leonardobishop.quests.hooks.title.Title_BukkitNoTimings; +import com.leonardobishop.quests.hooks.title.Title_Other; import com.leonardobishop.quests.obj.Messages; import com.leonardobishop.quests.player.QPlayer; import com.leonardobishop.quests.player.QPlayerManager; @@ -19,12 +23,7 @@ import com.leonardobishop.quests.quests.tasktypes.TaskType; import com.leonardobishop.quests.quests.tasktypes.TaskTypeManager; import com.leonardobishop.quests.quests.tasktypes.types.*; import com.leonardobishop.quests.quests.tasktypes.types.dependent.*; -import com.leonardobishop.quests.hooks.title.Title; -import com.leonardobishop.quests.hooks.title.Title_Bukkit; -import com.leonardobishop.quests.hooks.title.Title_BukkitNoTimings; -import com.leonardobishop.quests.hooks.title.Title_Other; import com.leonardobishop.quests.updater.Updater; -import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.Bukkit; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; @@ -47,8 +46,7 @@ public class Quests extends JavaPlugin { private QuestCompleter questCompleter; private QuestsConfigLoader questsConfigLoader; private QuestsLogger questsLogger; - private PlaceholderExpansion placeholder; - private PlaceholderAPIHook placeholderAPIHook; + private IPlaceholderAPIHook placeholderAPIHook; private boolean brokenConfig = false; private BukkitTask questAutosaveTask; @@ -118,11 +116,6 @@ public class Quests extends JavaPlugin { Bukkit.getPluginManager().registerEvents(new EventInventory(this), this); Bukkit.getPluginManager().registerEvents(new EventPlayerLeave(this), this); - if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { - placeholder = new QuestsPlaceholders(this); - placeholder.register(); - } - Metrics metrics = new Metrics(this); if (metrics.isEnabled()) { this.getQuestsLogger().info("Metrics started. This can be disabled at /plugins/bStats/config.yml."); @@ -200,6 +193,7 @@ public class Quests extends JavaPlugin { if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { this.placeholderAPIHook = new PlaceholderAPIHook(); + this.placeholderAPIHook.registerExpansion(this); } // this intentionally should not be documented @@ -217,7 +211,7 @@ public class Quests extends JavaPlugin { } } - public PlaceholderAPIHook getPlaceholderAPIHook() { + public IPlaceholderAPIHook getPlaceholderAPIHook() { return placeholderAPIHook; } @@ -231,7 +225,7 @@ public class Quests extends JavaPlugin { for (QPlayer qPlayer : qPlayerManager.getQPlayers()) { qPlayer.getQuestProgressFile().saveToDisk(true); } - if (placeholder != null) placeholder.unregister(); + if (placeholderAPIHook != null) placeholderAPIHook.unregisterExpansion(); } public void reloadQuests() { diff --git a/src/main/java/com/leonardobishop/quests/hooks/papi/IPlaceholderAPIHook.java b/src/main/java/com/leonardobishop/quests/hooks/papi/IPlaceholderAPIHook.java new file mode 100644 index 00000000..bc0c92a2 --- /dev/null +++ b/src/main/java/com/leonardobishop/quests/hooks/papi/IPlaceholderAPIHook.java @@ -0,0 +1,14 @@ +package com.leonardobishop.quests.hooks.papi; + +import com.leonardobishop.quests.Quests; +import org.bukkit.entity.Player; + +public interface IPlaceholderAPIHook { + + String replacePlaceholders(Player player, String text); + + void registerExpansion(Quests plugin); + + void unregisterExpansion(); + +} diff --git a/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java b/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java index 4612d0af..904ce81c 100644 --- a/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java +++ b/src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java @@ -1,12 +1,28 @@ package com.leonardobishop.quests.hooks.papi; +import com.leonardobishop.quests.Quests; +import com.leonardobishop.quests.api.QuestsPlaceholders; import me.clip.placeholderapi.PlaceholderAPI; import org.bukkit.entity.Player; -public class PlaceholderAPIHook { +public class PlaceholderAPIHook implements IPlaceholderAPIHook { + + private QuestsPlaceholders placeholder; public String replacePlaceholders(Player player, String text) { return PlaceholderAPI.setPlaceholders(player, text); } + @Override + public void registerExpansion(Quests plugin) { + placeholder = new QuestsPlaceholders(plugin); + } + + + @Override + public void unregisterExpansion() { + placeholder.unregister(); + } + + } |
