mirror of
https://gitlab.com/SamB440/rpgregions-2.git
synced 2025-12-26 18:29:16 +00:00
Add quest support. Closes #27.
This commit is contained in:
BIN
libraries/Quests-4.0.1.jar
Normal file
BIN
libraries/Quests-4.0.1.jar
Normal file
Binary file not shown.
@@ -88,6 +88,7 @@ dependencies {
|
||||
compileOnly 'me.clip:placeholderapi:2.10.4' // PAPI
|
||||
compileOnly 'com.github.MilkBowl:VaultAPI:1.7' // vault
|
||||
compileOnly name: 'AlonsoLevels_v2.0-BETA' // alonsolevels
|
||||
compileOnly name: 'Quests-4.0.1' // quests
|
||||
compileOnly 'com.github.shynixn.headdatabase:hdb-api:1.0' // head database
|
||||
compileOnly 'com.djrapitops:Plan-api:5.1-R0.4' // plan
|
||||
compileOnly 'io.lumine.xikage:MythicMobs:4.9.1'
|
||||
|
||||
@@ -32,6 +32,7 @@ import net.islandearth.rpgregions.requirements.DependencyRequirement;
|
||||
import net.islandearth.rpgregions.requirements.LevelRequirement;
|
||||
import net.islandearth.rpgregions.requirements.MoneyRequirement;
|
||||
import net.islandearth.rpgregions.requirements.PlaceholderRequirement;
|
||||
import net.islandearth.rpgregions.requirements.QuestRequirement;
|
||||
import net.islandearth.rpgregions.requirements.RegionRequirement;
|
||||
import net.islandearth.rpgregions.requirements.RegionRequirementRegistry;
|
||||
import net.islandearth.rpgregions.rewards.AlonsoLevelReward;
|
||||
@@ -42,6 +43,7 @@ import net.islandearth.rpgregions.rewards.ItemReward;
|
||||
import net.islandearth.rpgregions.rewards.MessageReward;
|
||||
import net.islandearth.rpgregions.rewards.MoneyReward;
|
||||
import net.islandearth.rpgregions.rewards.PlayerCommandReward;
|
||||
import net.islandearth.rpgregions.rewards.QuestReward;
|
||||
import net.islandearth.rpgregions.rewards.RegionRewardRegistry;
|
||||
import net.islandearth.rpgregions.translation.Translations;
|
||||
import net.islandearth.rpgregions.utils.XMaterial;
|
||||
@@ -266,6 +268,7 @@ public final class RPGRegions extends JavaPlugin implements IRPGRegionsAPI, Lang
|
||||
registry.register(MoneyReward.class);
|
||||
registry.register(PlayerCommandReward.class);
|
||||
registry.register(AlonsoLevelReward.class);
|
||||
registry.register(QuestReward.class);
|
||||
}
|
||||
|
||||
private void registerRequirements() {
|
||||
@@ -279,6 +282,7 @@ public final class RPGRegions extends JavaPlugin implements IRPGRegionsAPI, Lang
|
||||
registry.register(MoneyRequirement.class);
|
||||
registry.register(PlaceholderRequirement.class);
|
||||
registry.register(DependencyRequirement.class);
|
||||
registry.register(QuestRequirement.class);
|
||||
}
|
||||
|
||||
private void registerEffects() {
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package net.islandearth.rpgregions.requirements;
|
||||
|
||||
import me.blackvein.quests.Quest;
|
||||
import me.blackvein.quests.Quester;
|
||||
import me.blackvein.quests.Quests;
|
||||
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class QuestRequirement extends RegionRequirement {
|
||||
|
||||
private final String questId;
|
||||
|
||||
public QuestRequirement(IRPGRegionsAPI api) {
|
||||
super(api);
|
||||
this.questId = "test";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean meetsRequirements(Player player) {
|
||||
Quests quests = JavaPlugin.getPlugin(Quests.class);
|
||||
try { // Have to perform blocking operation.
|
||||
Quester quester = quests.getStorage().loadQuesterData(player.getUniqueId()).get();
|
||||
for (Quest completedQuest : quester.getCompletedQuests()) {
|
||||
if (completedQuest.getId().equals(questId)) return true;
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Quest";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText(Player player) {
|
||||
return "Quest " + questId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package net.islandearth.rpgregions.rewards;
|
||||
|
||||
import me.blackvein.quests.Quest;
|
||||
import me.blackvein.quests.Quester;
|
||||
import me.blackvein.quests.Quests;
|
||||
import net.islandearth.rpgregions.api.IRPGRegionsAPI;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class QuestReward extends DiscoveryReward {
|
||||
|
||||
private final String questId;
|
||||
|
||||
public QuestReward(IRPGRegionsAPI api) {
|
||||
super(api);
|
||||
this.questId = "test";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void award(Player player) {
|
||||
Quests quests = JavaPlugin.getPlugin(Quests.class);
|
||||
try { // Have to perform blocking operation.
|
||||
Quester quester = quests.getStorage().loadQuesterData(player.getUniqueId()).get();
|
||||
Quest quest = quests.getQuestById(questId);
|
||||
if (quest == null) return;
|
||||
quest.completeQuest(quester);
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Quest";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user