Added handler support to NPC API.

This commit is contained in:
luisc committed 2022-01-10 15:21:48 -06:00
1 parent 69f96519dc
commit d50f51e208
40 files changed
+1471 -56

No files matched your search

@@ -29,15 +29,20 @@ import noppes.npcs.scripted.NpcAPI;
import noppes.npcs.scripted.ScriptItemStack;
import noppes.npcs.scripted.ScriptPixelmonPlayerData;
import noppes.npcs.scripted.constants.EntityType;
import noppes.npcs.scripted.handler.data.IQuest;
import noppes.npcs.scripted.interfaces.IPlayer;
import noppes.npcs.scripted.interfaces.ITimers;
import noppes.npcs.util.ValueUtil;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
public class ScriptPlayer<T extends EntityPlayerMP> extends ScriptLivingBase<T> implements IPlayer {
public T player;
private PlayerData data;
public ScriptPlayer(T player){
super(player);
this.player = player;
@@ -388,6 +393,12 @@ public class ScriptPlayer<T extends EntityPlayerMP> extends ScriptLivingBase<T>
return data.getGUIOpen();
}
public void checkQuestCompleted() {
PlayerQuestData playerdata = PlayerDataController.instance.getPlayerData(player).questData;
for(EnumQuestType e : EnumQuestType.values())
playerdata.checkQuestCompletion((EntityPlayer)this.entity, e);
}
public ScriptDBCPlayer<T> getDBCPlayer() {
Set keySet = player.getEntityData().getCompoundTag("PlayerPersisted").func_150296_c();
Iterator iterator = keySet.iterator();
@@ -404,4 +415,44 @@ public class ScriptPlayer<T extends EntityPlayerMP> extends ScriptLivingBase<T>
public boolean blocking() {
return player.isBlocking();
}
private PlayerData getData() {
if (this.data == null) {
this.data = PlayerDataController.instance.getPlayerData(player);
}
return this.data;
}
public IQuest[] getActiveQuests() {
PlayerQuestData data = this.getData().questData;
List<IQuest> quests = new ArrayList();
Iterator var3 = data.activeQuests.keySet().iterator();
while(var3.hasNext()) {
int id = (Integer)var3.next();
IQuest quest = (IQuest)QuestController.instance.quests.get(id);
if (quest != null) {
quests.add(quest);
}
}
return (IQuest[])quests.toArray(new IQuest[quests.size()]);
}
public IQuest[] getFinishedQuests() {
PlayerQuestData data = this.getData().questData;
List<IQuest> quests = new ArrayList();
Iterator var3 = data.finishedQuests.keySet().iterator();
while(var3.hasNext()) {
int id = (Integer)var3.next();
IQuest quest = (IQuest)QuestController.instance.quests.get(id);
if (quest != null) {
quests.add(quest);
}
}
return (IQuest[])quests.toArray(new IQuest[quests.size()]);
}
}