aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main/java')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsDeliverTaskType.java41
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsInteractTaskType.java41
3 files changed, 86 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 21afa14f..a08fb4f0 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -120,6 +120,8 @@ import com.leonardobishop.quests.bukkit.tasktype.type.dependent.EcoMobsKillingTa
import com.leonardobishop.quests.bukkit.tasktype.type.dependent.EssentialsBalanceTaskType;
import com.leonardobishop.quests.bukkit.tasktype.type.dependent.EssentialsMoneyEarnTaskType;
import com.leonardobishop.quests.bukkit.tasktype.type.dependent.FabledSkyBlockLevelTaskType;
+import com.leonardobishop.quests.bukkit.tasktype.type.dependent.FancyNpcsDeliverTaskType;
+import com.leonardobishop.quests.bukkit.tasktype.type.dependent.FancyNpcsInteractTaskType;
import com.leonardobishop.quests.bukkit.tasktype.type.dependent.IridiumSkyblockValueTaskType;
import com.leonardobishop.quests.bukkit.tasktype.type.dependent.MythicMobsKillingTaskType;
import com.leonardobishop.quests.bukkit.tasktype.type.dependent.NuVotifierVoteTaskType;
@@ -500,6 +502,8 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
taskTypeManager.registerTaskType(() -> new EssentialsBalanceTaskType(this), () -> CompatUtils.isPluginEnabled("Essentials"));
taskTypeManager.registerTaskType(() -> new EssentialsMoneyEarnTaskType(this), () -> CompatUtils.isPluginEnabled("Essentials"));
taskTypeManager.registerTaskType(() -> new FabledSkyBlockLevelTaskType(this), () -> CompatUtils.isPluginEnabled("FabledSkyBlock")); // not tested
+ taskTypeManager.registerTaskType(() -> new FancyNpcsDeliverTaskType(this), () -> CompatUtils.isPluginEnabled("FancyNpcs"));
+ taskTypeManager.registerTaskType(() -> new FancyNpcsInteractTaskType(this), () -> CompatUtils.isPluginEnabled("FancyNpcs"));
taskTypeManager.registerTaskType(() -> new PinataPartyHitTaskType(this), () -> CompatUtils.isPluginEnabled("PinataParty"));
taskTypeManager.registerTaskType(() -> new PlaceholderAPIEvaluateTaskType(this), () -> CompatUtils.isPluginEnabled("PlaceholderAPI"));
taskTypeManager.registerTaskType(() -> new PlayerPointsEarnTaskType(this), () -> CompatUtils.isPluginEnabled("PlayerPoints"));
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsDeliverTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsDeliverTaskType.java
new file mode 100644
index 00000000..e377642f
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsDeliverTaskType.java
@@ -0,0 +1,41 @@
+package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
+
+import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
+import com.leonardobishop.quests.bukkit.util.TaskUtils;
+import com.leonardobishop.quests.common.quest.Task;
+import de.oliver.fancynpcs.api.Npc;
+import de.oliver.fancynpcs.api.actions.ActionTrigger;
+import de.oliver.fancynpcs.api.events.NpcInteractEvent;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+
+import java.util.List;
+
+public final class FancyNpcsDeliverTaskType extends DeliverTaskType<String> {
+
+ private final BukkitQuestsPlugin plugin;
+
+ public FancyNpcsDeliverTaskType(BukkitQuestsPlugin plugin) {
+ super("fancynpcs_deliver", TaskUtils.TASK_ATTRIBUTION_STRING, "Deliver a set of items to a FancyNpcs NPC.");
+ this.plugin = plugin;
+
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "npc-id"));
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+ public void onNpcInteract(NpcInteractEvent event) {
+ ActionTrigger trigger = event.getInteractionType();
+
+ if (trigger != ActionTrigger.RIGHT_CLICK) {
+ return;
+ }
+
+ Npc npc = event.getNpc();
+ checkInventory(event.getPlayer(), npc.getData().getId(), npc.getData().getDisplayName(), 1L, plugin);
+ }
+
+ @Override
+ public List<String> getNPCId(Task task) {
+ return TaskUtils.getConfigStringList(task, "npc-id");
+ }
+}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsInteractTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsInteractTaskType.java
new file mode 100644
index 00000000..bb4fd378
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/FancyNpcsInteractTaskType.java
@@ -0,0 +1,41 @@
+package com.leonardobishop.quests.bukkit.tasktype.type.dependent;
+
+import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin;
+import com.leonardobishop.quests.bukkit.util.TaskUtils;
+import com.leonardobishop.quests.common.quest.Task;
+import de.oliver.fancynpcs.api.Npc;
+import de.oliver.fancynpcs.api.actions.ActionTrigger;
+import de.oliver.fancynpcs.api.events.NpcInteractEvent;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+
+import java.util.List;
+
+public final class FancyNpcsInteractTaskType extends InteractTaskType<String> {
+
+ private final BukkitQuestsPlugin plugin;
+
+ public FancyNpcsInteractTaskType(BukkitQuestsPlugin plugin) {
+ super("fancynpcs_interact", TaskUtils.TASK_ATTRIBUTION_STRING, "Interact with a FancyNpcs NPC to complete the quest.");
+ this.plugin = plugin;
+
+ super.addConfigValidator(TaskUtils.useIntegerConfigValidator(this, "npc-id"));
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
+ public void onNpcInteract(NpcInteractEvent event) {
+ ActionTrigger trigger = event.getInteractionType();
+
+ if (trigger != ActionTrigger.RIGHT_CLICK) {
+ return;
+ }
+
+ Npc npc = event.getNpc();
+ handle(event.getPlayer(), npc.getData().getId(), npc.getData().getDisplayName(), plugin);
+ }
+
+ @Override
+ public List<String> getNPCId(Task task) {
+ return TaskUtils.getConfigStringList(task, "npc-id");
+ }
+}