From 27359c84c8a7533b878b4841126cd322abf81659 Mon Sep 17 00:00:00 2001 From: SamB440 Date: Tue, 10 May 2022 21:20:45 +0100 Subject: [PATCH] Rework quest reward so it may be expanded upon. --- rpgregions/build.gradle.kts | 5 ++++ .../rpgregions/rewards/BetonQuestReward.java | 26 +++++++++++++++++++ .../rpgregions/rewards/QuestReward.java | 24 ++++++++++++++++- rpgregions/src/main/resources/plugin.yml | 2 +- 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 rpgregions/src/main/java/net/islandearth/rpgregions/rewards/BetonQuestReward.java diff --git a/rpgregions/build.gradle.kts b/rpgregions/build.gradle.kts index b7d0af8..65c2b77 100644 --- a/rpgregions/build.gradle.kts +++ b/rpgregions/build.gradle.kts @@ -1,3 +1,7 @@ +repositories { + maven("https://betonquest.org/nexus/repository/betonquest/") +} + dependencies { testImplementation("junit:junit:4.13.2") testImplementation("com.github.seeseemelk:MockBukkit-v1.17:1.13.0") @@ -28,6 +32,7 @@ dependencies { } compileOnly(":AlonsoLevels_v2.0-BETA") // alonsolevels compileOnly(":Quests-4.0.1") // quests + compileOnly("pl.betoncraft:betonquest:1.12.0") compileOnly("com.github.shynixn.headdatabase:hdb-api:1.0") // head database compileOnly("com.github.plan-player-analytics:Plan:5.4.1366") // plan compileOnly("io.lumine.xikage:MythicMobs:4.9.1") { diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/rewards/BetonQuestReward.java b/rpgregions/src/main/java/net/islandearth/rpgregions/rewards/BetonQuestReward.java new file mode 100644 index 0000000..d59f130 --- /dev/null +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/rewards/BetonQuestReward.java @@ -0,0 +1,26 @@ +package net.islandearth.rpgregions.rewards; + +import net.islandearth.rpgregions.api.IRPGRegionsAPI; +import org.bukkit.entity.Player; + +public class BetonQuestReward extends QuestReward { + + public BetonQuestReward(IRPGRegionsAPI api) { + super(api); + } + + @Override + public void award(Player player) { + //todo: According to the developer, BetonQuest has no such concept of "starting" or "completing" quests? + } + + @Override + public String getName() { + return "Quest"; + } + + @Override + public String getPluginRequirement() { + return "BetonQuest"; + } +} diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/rewards/QuestReward.java b/rpgregions/src/main/java/net/islandearth/rpgregions/rewards/QuestReward.java index 0a9373f..8eccb22 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/rewards/QuestReward.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/rewards/QuestReward.java @@ -16,9 +16,29 @@ public class QuestReward extends DiscoveryReward implements Blocking { @GuiEditable("Quest id") private final String questId; + @GuiEditable("Start or complete?") + private final boolean start; + + @GuiEditable("Ignore requirements for starting?") + private final boolean ignoreRequirements; + public QuestReward(IRPGRegionsAPI api) { super(api); this.questId = "test"; + this.start = true; + this.ignoreRequirements = false; + } + + public String getQuestId() { + return questId; + } + + public boolean startOrComplete() { + return start; + } + + public boolean ignoreRequirements() { + return ignoreRequirements; } @Override @@ -28,7 +48,8 @@ public class QuestReward extends DiscoveryReward implements Blocking { Quester quester = quests.getStorage().loadQuesterData(player.getUniqueId()).get(); Quest quest = quests.getQuestById(questId); if (quest == null) return; - quest.completeQuest(quester); + if (start) quester.takeQuest(quest, ignoreRequirements); + else quest.completeQuest(quester); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } @@ -39,6 +60,7 @@ public class QuestReward extends DiscoveryReward implements Blocking { return "Quest"; } + @Override public String getPluginRequirement() { return "Quests"; } diff --git a/rpgregions/src/main/resources/plugin.yml b/rpgregions/src/main/resources/plugin.yml index f5fed44..7ee6ca3 100644 --- a/rpgregions/src/main/resources/plugin.yml +++ b/rpgregions/src/main/resources/plugin.yml @@ -4,7 +4,7 @@ main: net.islandearth.rpgregions.RPGRegions api-version: '1.16' libraries: - "com.zaxxer:HikariCP:4.0.3" # database -softdepend: [Hyperverse, Multiverse, Languagy, UltraRegions, WorldGuard, PlaceholderAPI, HeadDatabase, Residence, Plan, GriefPrevention, Vault, MythicMobs, AlonsoLevels, Dynmap, ProtocolLib] +softdepend: [Hyperverse, Multiverse, UltraRegions, WorldGuard, PlaceholderAPI, HeadDatabase, Residence, Plan, GriefPrevention, Vault, MythicMobs, AlonsoLevels, Dynmap, ProtocolLib, Quests, BetonQuest] authors: [SamB440] description: Discoverable regions website: https://fortitude.islandearth.net \ No newline at end of file