aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/leonardobishop/quests/Quests.java24
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/papi/IPlaceholderAPIHook.java14
-rw-r--r--src/main/java/com/leonardobishop/quests/hooks/papi/PlaceholderAPIHook.java18
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();
+ }
+
+
}