From 389d8adf9819c4fbd3a55ca6b14335d22fdf61b5 Mon Sep 17 00:00:00 2001 From: "Luis C.M" Date: Sun, 12 Jun 2022 05:40:38 -0500 Subject: [PATCH] A quest is now properly untracked if a player completes it. --- src/main/java/noppes/npcs/quests/QuestDialog.java | 2 +- src/main/java/noppes/npcs/quests/QuestInterface.java | 12 +++++++++++- src/main/java/noppes/npcs/quests/QuestItem.java | 1 + src/main/java/noppes/npcs/quests/QuestKill.java | 1 + src/main/java/noppes/npcs/quests/QuestLocation.java | 1 + 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/quests/QuestDialog.java b/src/main/java/noppes/npcs/quests/QuestDialog.java index b4357d233..b54721fd2 100644 --- a/src/main/java/noppes/npcs/quests/QuestDialog.java +++ b/src/main/java/noppes/npcs/quests/QuestDialog.java @@ -41,7 +41,7 @@ public class QuestDialog extends QuestInterface implements IQuestDialog { @Override public void handleComplete(EntityPlayer player) { - + super.handleComplete(player); } @Override diff --git a/src/main/java/noppes/npcs/quests/QuestInterface.java b/src/main/java/noppes/npcs/quests/QuestInterface.java index 05188dd2e..aea4269dd 100644 --- a/src/main/java/noppes/npcs/quests/QuestInterface.java +++ b/src/main/java/noppes/npcs/quests/QuestInterface.java @@ -3,7 +3,12 @@ package noppes.npcs.quests; import java.util.Vector; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.Server; +import noppes.npcs.constants.EnumPacketClient; +import noppes.npcs.controllers.PlayerDataController; +import noppes.npcs.controllers.QuestController; import noppes.npcs.controllers.data.PlayerData; import noppes.npcs.scripted.interfaces.handler.data.IQuestInterface; import noppes.npcs.scripted.interfaces.handler.data.IQuestObjective; @@ -13,7 +18,12 @@ public abstract class QuestInterface implements IQuestInterface { public abstract void writeEntityToNBT(NBTTagCompound compound); public abstract void readEntityFromNBT(NBTTagCompound compound); public abstract boolean isCompleted(PlayerData player); - public abstract void handleComplete(EntityPlayer player); + public void handleComplete(EntityPlayer player) { + if (QuestController.instance.get(questId).equals(PlayerDataController.instance.getPlayerData(player).questData.trackedQuest)) { + PlayerDataController.instance.getPlayerData(player).questData.trackedQuest = null; + Server.sendData((EntityPlayerMP) player, EnumPacketClient.OVERLAY_QUEST_TRACKING); + } + } public abstract Vector getQuestLogStatus(EntityPlayer player); public abstract IQuestObjective[] getObjectives(EntityPlayer var1); } diff --git a/src/main/java/noppes/npcs/quests/QuestItem.java b/src/main/java/noppes/npcs/quests/QuestItem.java index 1bd8bd7c1..0eca93aff 100644 --- a/src/main/java/noppes/npcs/quests/QuestItem.java +++ b/src/main/java/noppes/npcs/quests/QuestItem.java @@ -77,6 +77,7 @@ public class QuestItem extends QuestInterface implements IQuestItem { } @Override public void handleComplete(EntityPlayer player) { + super.handleComplete(player); if(leaveItems) return; for(ItemStack questitem : items.items.values()){ diff --git a/src/main/java/noppes/npcs/quests/QuestKill.java b/src/main/java/noppes/npcs/quests/QuestKill.java index 53542f141..d3595d0f4 100644 --- a/src/main/java/noppes/npcs/quests/QuestKill.java +++ b/src/main/java/noppes/npcs/quests/QuestKill.java @@ -74,6 +74,7 @@ public class QuestKill extends QuestInterface implements IQuestKill { @Override public void handleComplete(EntityPlayer player) { + super.handleComplete(player); } @Override diff --git a/src/main/java/noppes/npcs/quests/QuestLocation.java b/src/main/java/noppes/npcs/quests/QuestLocation.java index 16d4bbdb4..93c4757a7 100644 --- a/src/main/java/noppes/npcs/quests/QuestLocation.java +++ b/src/main/java/noppes/npcs/quests/QuestLocation.java @@ -47,6 +47,7 @@ public class QuestLocation extends QuestInterface implements IQuestLocation { @Override public void handleComplete(EntityPlayer player) { + super.handleComplete(player); } @Override