From a7c955e1384a2e85d96629919c54079d4668a32a Mon Sep 17 00:00:00 2001 From: CoolLord22 Date: Wed, 11 Aug 2021 17:11:31 -0400 Subject: Add EssentialsHook Adds EssentialsHook class which will handle the imports for dependent classes. This class handles checks for whether or not the player is AFK. To stay consistent with how the project handles hooks, went ahead and created the abstract type as well. --- .../quests/bukkit/BukkitQuestsPlugin.java | 11 +++++++++++ .../hook/essentials/AbstractEssentialsHook.java | 13 +++++++++++++ .../quests/bukkit/hook/essentials/EssentialsHook.java | 19 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/AbstractEssentialsHook.java create mode 100644 bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/EssentialsHook.java (limited to 'bukkit/src/main') 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 5a38f4fa..232c0ecd 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java @@ -6,6 +6,8 @@ import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig; import com.leonardobishop.quests.bukkit.config.BukkitQuestsLoader; import com.leonardobishop.quests.bukkit.hook.coreprotect.AbstractCoreProtectHook; import com.leonardobishop.quests.bukkit.hook.coreprotect.CoreProtectHook; +import com.leonardobishop.quests.bukkit.hook.essentials.AbstractEssentialsHook; +import com.leonardobishop.quests.bukkit.hook.essentials.EssentialsHook; import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetter; import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetterLatest; import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetter_1_13; @@ -111,6 +113,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { private MenuController menuController; private AbstractPlaceholderAPIHook placeholderAPIHook; private AbstractCoreProtectHook coreProtectHook; + private AbstractEssentialsHook essentialsHook; private ItemGetter itemGetter; private Title titleHandle; @@ -247,6 +250,10 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { // Prepare PAPI processor this.placeholderAPIProcessor = (player, s) -> s; + if (Bukkit.getPluginManager().isPluginEnabled("Essentials")) { + this.essentialsHook = new EssentialsHook(); + } + // Start quests update checker boolean ignoreUpdates = false; try { @@ -528,6 +535,10 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { return coreProtectHook; } + public @Nullable AbstractEssentialsHook getEssentialsHook() { + return essentialsHook; + } + public ItemGetter getItemGetter() { return itemGetter; } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/AbstractEssentialsHook.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/AbstractEssentialsHook.java new file mode 100644 index 00000000..1eadddbb --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/AbstractEssentialsHook.java @@ -0,0 +1,13 @@ +package com.leonardobishop.quests.bukkit.hook.essentials; + +import org.bukkit.entity.Player; + +public interface AbstractEssentialsHook { + /** + * Check whether or not the passed player is marked AFK by Essentials + * + * @param player the block + * @return true if afk, false otherwise + */ + boolean isAfk(Player player); +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/EssentialsHook.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/EssentialsHook.java new file mode 100644 index 00000000..b18d9824 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/essentials/EssentialsHook.java @@ -0,0 +1,19 @@ +package com.leonardobishop.quests.bukkit.hook.essentials; + +import com.earth2me.essentials.Essentials; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +public class EssentialsHook implements AbstractEssentialsHook { + + private final Essentials ess; + + public EssentialsHook() { + ess = ((Essentials) Bukkit.getPluginManager().getPlugin("Essentials")); + } + + @Override + public boolean isAfk(Player player) { + return ess.getUser(player).isAfk(); + } +} -- cgit v1.2.3-70-g09d2