forked from Upstream/mmocore
Quest module fix
This commit is contained in:
parent
758caf747d
commit
75a4b944b6
@ -3,5 +3,6 @@ package net.Indyuce.mmocore.quest;
|
|||||||
public interface AbstractQuest {
|
public interface AbstractQuest {
|
||||||
|
|
||||||
public String getName();
|
public String getName();
|
||||||
|
|
||||||
public String getId();
|
public String getId();
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package net.Indyuce.mmocore.quest;
|
package net.Indyuce.mmocore.quest;
|
||||||
|
|
||||||
import net.Indyuce.mmocore.party.PartyModule;
|
import net.Indyuce.mmocore.quest.compat.BeautyQuestsModule;
|
||||||
import net.Indyuce.mmocore.quest.compat.BeautyQuestModule;
|
|
||||||
import net.Indyuce.mmocore.quest.compat.BlackVeinQuestsModule;
|
import net.Indyuce.mmocore.quest.compat.BlackVeinQuestsModule;
|
||||||
import net.Indyuce.mmocore.quest.compat.QuestCreatorModule;
|
import net.Indyuce.mmocore.quest.compat.QuestCreatorModule;
|
||||||
import net.Indyuce.mmocore.quest.compat.QuestModule;
|
import net.Indyuce.mmocore.quest.compat.QuestModule;
|
||||||
@ -10,12 +9,10 @@ import org.bukkit.Bukkit;
|
|||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
|
|
||||||
public enum QuestModuleType {
|
public enum QuestModuleType {
|
||||||
MMOCORE("MMOCore",MMOCoreQuestModule::new),
|
MMOCORE("MMOCore", MMOCoreQuestModule::new),
|
||||||
QUESTS("Quests", BlackVeinQuestsModule::new),
|
QUESTS("Quests", BlackVeinQuestsModule::new),
|
||||||
BEAUTY_QUEST("Beauty Quests", BeautyQuestModule::new),
|
BEAUTY_QUEST("BeautyQuests", BeautyQuestsModule::new),
|
||||||
QUEST_CREATOR("Quest Creator", QuestCreatorModule::new);
|
QUEST_CREATOR("QuestCreator", QuestCreatorModule::new);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private final String pluginName;
|
private final String pluginName;
|
||||||
private final Provider<QuestModule> provider;
|
private final Provider<QuestModule> provider;
|
||||||
|
@ -8,24 +8,21 @@ import fr.skytasul.quests.structure.Quest;
|
|||||||
import net.Indyuce.mmocore.quest.AbstractQuest;
|
import net.Indyuce.mmocore.quest.AbstractQuest;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class BeautyQuestModule implements QuestModule<BeautyQuestModule.BeautyQuestQuest> {
|
public class BeautyQuestsModule implements QuestModule<BeautyQuestsModule.BeautyQuestQuest> {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BeautyQuestQuest getQuestOrThrow(String questId) {
|
public BeautyQuestQuest getQuestOrThrow(String questId) {
|
||||||
Quest quest=QuestsAPI.getQuests().getQuest(Integer.parseInt(questId));
|
Quest quest = QuestsAPI.getQuests().getQuest(Integer.parseInt(questId));
|
||||||
return quest==null?null:new BeautyQuestQuest(quest);
|
return quest == null ? null : new BeautyQuestQuest(quest);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasCompletedQuest(String questId, Player player) {
|
public boolean hasCompletedQuest(String questId, Player player) {
|
||||||
PlayerAccount account=PlayersManager.getPlayerAccount(player);
|
PlayerAccount account = PlayersManager.getPlayerAccount(player);
|
||||||
PlayerQuestDatas quest=account.getQuestDatas(QuestsAPI.getQuests().getQuest(Integer.parseInt(questId)));
|
PlayerQuestDatas quest = account.getQuestDatas(QuestsAPI.getQuests().getQuest(Integer.parseInt(questId)));
|
||||||
return quest.isFinished();
|
return quest.isFinished();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class BeautyQuestQuest implements AbstractQuest {
|
public class BeautyQuestQuest implements AbstractQuest {
|
||||||
|
|
||||||
Quest quest;
|
Quest quest;
|
||||||
@ -41,7 +38,7 @@ public class BeautyQuestModule implements QuestModule<BeautyQuestModule.BeautyQu
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return ""+quest.getID();
|
return String.valueOf(quest.getID());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -7,31 +7,26 @@ import net.Indyuce.mmocore.quest.AbstractQuest;
|
|||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
public class BlackVeinQuestsModule implements QuestModule<BlackVeinQuestsModule.BlackVeinQuestQuest> {
|
public class BlackVeinQuestsModule implements QuestModule<BlackVeinQuestsModule.BlackVeinQuestQuest> {
|
||||||
private final Quests plugin = (Quests) Bukkit.getPluginManager().getPlugin("Quests");
|
private final Quests plugin = (Quests) Bukkit.getPluginManager().getPlugin("Quests");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlackVeinQuestQuest getQuestOrThrow(String id) {
|
public BlackVeinQuestQuest getQuestOrThrow(String id) {
|
||||||
Quests plugin = (Quests) Bukkit.getPluginManager().getPlugin("Quests");
|
Quests plugin = (Quests) Bukkit.getPluginManager().getPlugin("Quests");
|
||||||
return plugin.getQuestById(id)==null?null:new BlackVeinQuestQuest(plugin.getQuestById(id));
|
return plugin.getQuestById(id) == null ? null : new BlackVeinQuestQuest(plugin.getQuestById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasCompletedQuest(String questId, Player player) {
|
public boolean hasCompletedQuest(String questId, Player player) {
|
||||||
Quester quester = plugin.getQuester(player.getUniqueId());
|
Quester quester = plugin.getQuester(player.getUniqueId());
|
||||||
|
|
||||||
for(Quest quest:quester.getCompletedQuests()) {
|
for (Quest quest : quester.getCompletedQuests())
|
||||||
if(quest.getId().equals(questId))
|
if (quest.getId().equals(questId))
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class BlackVeinQuestQuest implements AbstractQuest {
|
public class BlackVeinQuestQuest implements AbstractQuest {
|
||||||
private final Quest quest;
|
private final Quest quest;
|
||||||
|
|
||||||
@ -49,5 +44,4 @@ public class BlackVeinQuestsModule implements QuestModule<BlackVeinQuestsModule.
|
|||||||
return quest.getId();
|
return quest.getId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8,10 +8,11 @@ import com.guillaumevdn.questcreator.lib.quest.QuestEndType;
|
|||||||
import net.Indyuce.mmocore.quest.AbstractQuest;
|
import net.Indyuce.mmocore.quest.AbstractQuest;
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class QuestCreatorModule implements QuestModule<QuestCreatorModule.QuestCreatorQuest>{
|
public class QuestCreatorModule implements QuestModule<QuestCreatorModule.QuestCreatorQuest> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public QuestCreatorQuest getQuestOrThrow(String id) {
|
public QuestCreatorQuest getQuestOrThrow(String id) {
|
||||||
@ -20,27 +21,27 @@ public class QuestCreatorModule implements QuestModule<QuestCreatorModule.QuestC
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasCompletedQuest(String questId, Player player) {
|
public boolean hasCompletedQuest(String questId, Player player) {
|
||||||
UserQC playerData=UserQC.cachedOrNull(player);
|
UserQC playerData = UserQC.cachedOrNull(player);
|
||||||
Validate.notNull(playerData,"QuestCreator User hasn't been loaded!");
|
Validate.notNull(playerData, "QuestCreator User hasn't been loaded!");
|
||||||
//Gets all the quests the player has succeeded at
|
|
||||||
List<QuestHistoryElement> elements=playerData.getQuestHistory().getElements(questId, Arrays.asList(QuestEndType.SUCCESS),0);
|
// Gets all the quests the player has succeeded at
|
||||||
for(QuestHistoryElement el:elements) {
|
List<QuestHistoryElement> elements = playerData.getQuestHistory().getElements(questId, Arrays.asList(QuestEndType.SUCCESS), 0);
|
||||||
if(el.getModelId().equals(questId))
|
for (QuestHistoryElement el : elements)
|
||||||
|
if (el.getModelId().equals(questId))
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*QC ElementModel corresponds to our quest and their quests correspond to our Quest progress class
|
* QC ElementModel corresponds to our quest and their
|
||||||
|
* quests correspond to our Quest progress class
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class QuestCreatorQuest implements AbstractQuest {
|
public class QuestCreatorQuest implements AbstractQuest {
|
||||||
ElementModel questModel;
|
ElementModel questModel;
|
||||||
|
|
||||||
public QuestCreatorQuest(String modelId) {
|
public QuestCreatorQuest(String modelId) {
|
||||||
questModel=ConfigQC.models.getElement(modelId).orNull();
|
questModel = ConfigQC.models.getElement(modelId).orNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -6,13 +6,12 @@ import org.bukkit.entity.Player;
|
|||||||
public interface QuestModule<T extends AbstractQuest> {
|
public interface QuestModule<T extends AbstractQuest> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Quest with given name
|
* @return Quest with given identifier
|
||||||
*/
|
*/
|
||||||
public T getQuestOrThrow(String id);
|
public T getQuestOrThrow(String id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return If a specific player did a certain quest
|
* @return If a specific player has made a certain quest
|
||||||
*/
|
*/
|
||||||
public boolean hasCompletedQuest(String quest, Player player);
|
public boolean hasCompletedQuest(String quest, Player player);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user