summaryrefslogtreecommitdiffstats
path: root/bukkit/src
diff options
context:
space:
mode:
authorKrakenied <Krakenied1@gmail.com>2023-03-21 01:47:00 +0100
committerLeonardo Bishop <13875753+LMBishop@users.noreply.github.com>2023-04-02 12:20:10 +0100
commit1fb59f1721a5e6a0aa177c81d997e7891e53f15f (patch)
tree3cd15c7311a6783b5f1d4493744060ca511e5209 /bukkit/src
parentab318d18222bfde83055a1d9cfe2302eca809d20 (diff)
Fix PlayerBlockTracker event calling order
Diffstat (limited to 'bukkit/src')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java1
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java5
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java17
3 files changed, 23 insertions, 0 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
index 633509a5..239e8c68 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -282,6 +282,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
}
if (Bukkit.getPluginManager().isPluginEnabled("PlayerBlockTracker")) {
this.playerBlockTrackerHook = new PlayerBlockTrackerHook();
+ this.playerBlockTrackerHook.fixPlayerBlockTracker();
}
taskTypeManager.registerTaskType(new MiningTaskType(this));
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java
index 2e07316b..a3931390 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/AbstractPlayerBlockTrackerHook.java
@@ -12,4 +12,9 @@ public interface AbstractPlayerBlockTrackerHook {
*/
boolean checkBlock(Block block);
+ /**
+ * Changes PlayerBlockTracker listener to be called after the Quests' one is
+ */
+ void fixPlayerBlockTracker();
+
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java
index 34bf95af..0ab896b7 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/playerblocktracker/PlayerBlockTrackerHook.java
@@ -1,7 +1,11 @@
package com.leonardobishop.quests.bukkit.hook.playerblocktracker;
import com.gestankbratwurst.playerblocktracker.PlayerBlockTracker;
+import org.bukkit.Bukkit;
import org.bukkit.block.Block;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.plugin.RegisteredListener;
public class PlayerBlockTrackerHook implements AbstractPlayerBlockTrackerHook {
@@ -10,4 +14,17 @@ public class PlayerBlockTrackerHook implements AbstractPlayerBlockTrackerHook {
return PlayerBlockTracker.isTracked(block);
}
+ @Override
+ public void fixPlayerBlockTracker() {
+ PlayerBlockTracker playerBlockTracker = (PlayerBlockTracker) Bukkit.getPluginManager().getPlugin("PlayerBlockTracker");
+ HandlerList handlerList = BlockBreakEvent.getHandlerList();
+ RegisteredListener[] listeners = handlerList.getRegisteredListeners();
+ for (RegisteredListener listener : listeners) {
+ if (listener.getPlugin() != playerBlockTracker) {
+ handlerList.unregister(listener);
+ handlerList.register(listener);
+ }
+ }
+ handlerList.bake();
+ }
}