Active Quest Requirement

This commit is contained in:
Kam committed 2025-02-28 18:31:59 -05:00
1 parent c5c2590bc2
commit 05df0509e1
3 files changed
+50

No files matched your search

@@ -3,6 +3,7 @@ package kamkeel.npcs;
import kamkeel.npcs.controllers.AttributeController;
import kamkeel.npcs.controllers.data.attribute.AttributeDefinition;
import kamkeel.npcs.controllers.data.attribute.AttributeValueType;
import kamkeel.npcs.controllers.data.attribute.requirement.types.QuestActiveRequirement;
import kamkeel.npcs.controllers.data.attribute.requirement.types.QuestCompletedRequirement;
import kamkeel.npcs.controllers.data.attribute.requirement.RequirementCheckerRegistry;
@@ -58,5 +59,6 @@ public class CustomAttributes {
// Requirement
RequirementCheckerRegistry.registerChecker(new QuestCompletedRequirement());
RequirementCheckerRegistry.registerChecker(new QuestActiveRequirement());
}
}
@@ -0,0 +1,47 @@
package kamkeel.npcs.controllers.data.attribute.requirement.types;
import kamkeel.npcs.controllers.data.attribute.requirement.IRequirementChecker;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.controllers.QuestController;
import noppes.npcs.controllers.data.PlayerData;
public class QuestActiveRequirement implements IRequirementChecker {
@Override
public String getKey() {
return "cnpc_quest_active";
}
@Override
public String getTranslation() {
return "quest.active";
}
@Override
public String getTooltipValue(NBTTagCompound nbt) {
if(nbt.hasKey(getKey())) {
int questID = nbt.getInteger(getKey());
if(QuestController.Instance.get(questID) != null) {
return QuestController.Instance.get(questID).getName();
}
}
return "null";
}
@Override
public void apply(NBTTagCompound nbt, Object value) {
if(value instanceof Integer) {
nbt.setInteger(getKey(), (Integer) value);
}
}
@Override
public boolean check(EntityPlayer player, NBTTagCompound nbt) {
if(nbt.hasKey(getKey())) {
int questID = nbt.getInteger(getKey());
return PlayerData.get(player).questData.hasActiveQuest(questID);
}
return true;
}
}