aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit')
-rw-r--r--bukkit/build.gradle.kts8
-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
-rw-r--r--bukkit/src/main/resources/plugin.yml1
5 files changed, 93 insertions, 2 deletions
diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts
index 9e95a0e7..7d9d6292 100644
--- a/bukkit/build.gradle.kts
+++ b/bukkit/build.gradle.kts
@@ -29,6 +29,8 @@ repositories {
maven("https://repo.auxilor.io/repository/maven-public/")
// EssentialsX
maven("https://repo.essentialsx.net/releases/")
+ // FancyNpcs
+ maven("https://repo.fancyinnovations.com/releases")
// MMOItems, MythicLib
maven("https://nexus.phoenixdevt.fr/repository/maven-public/")
// MythicMobs 4, MythicMobs 5
@@ -74,8 +76,8 @@ dependencies {
// BedWars1058
compileOnlyPlugin("com.andrei1058.bedwars:bedwars-api:22.01")
// BentoBox
- compileOnly("world.bentobox:bentobox:2.5.4-SNAPSHOT")
- compileOnly("world.bentobox:level:2.16.1-SNAPSHOT")
+ compileOnlyPlugin("world.bentobox:bentobox:2.5.4-SNAPSHOT")
+ compileOnlyPlugin("world.bentobox:level:2.16.1-SNAPSHOT")
// Citizens
compileOnlyPlugin("net.citizensnpcs:citizensapi:2.0.30-SNAPSHOT")
// CoreProtect
@@ -89,6 +91,8 @@ dependencies {
compileOnlyPlugin("com.willfp:libreforge:4.21.1")
// EssentialsX
compileOnlyPlugin("net.essentialsx:EssentialsX:2.19.7")
+ // FancyNpcs
+ compileOnlyPlugin("de.oliver:FancyNpcs:2.5.1")
// IridiumSkyblock TODO fix whenever repo is up
//compileOnlyPlugin("com.github.Iridium-Development:IridiumSkyblock:master-SNAPSHOT")
// ItemsAdder
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");
+ }
+}
diff --git a/bukkit/src/main/resources/plugin.yml b/bukkit/src/main/resources/plugin.yml
index 33feddff..982ef575 100644
--- a/bukkit/src/main/resources/plugin.yml
+++ b/bukkit/src/main/resources/plugin.yml
@@ -18,6 +18,7 @@ softdepend:
- EcoMobs
- Essentials
- FabledSkyBlock
+- FancyNpcs
- IridiumSkyblock
- MythicMobs
- Nexo