From 57d95b9d421120225175dce732f37d12517d4094 Mon Sep 17 00:00:00 2001 From: "Luis C.M" Date: Sun, 12 Jun 2022 05:52:07 -0500 Subject: [PATCH] Tracked quests are removed if they are no longer in a player's active quest data. --- .../noppes/npcs/ScriptPlayerEventHandler.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index 1c5aa2272..6ef151658 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -27,6 +27,7 @@ import net.minecraftforge.event.entity.living.LivingFallEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.*; import net.minecraftforge.event.world.*; +import noppes.npcs.constants.EnumPacketClient; import noppes.npcs.constants.EnumQuestType; import noppes.npcs.controllers.*; import noppes.npcs.controllers.data.PlayerData; @@ -42,22 +43,29 @@ public class ScriptPlayerEventHandler { } @SubscribeEvent public void onServerTick(TickEvent.PlayerTickEvent event) { - if(event.player == null || event.player.worldObj == null) + if (event.player == null || event.player.worldObj == null) return; - if(event.side == Side.SERVER && event.phase == TickEvent.Phase.START) { + if (event.side == Side.SERVER && event.phase == TickEvent.Phase.START) { EntityPlayer player = event.player; - if(player.ticksExisted%10 == 0) { + if (player.ticksExisted%10 == 0) { PlayerDataScript handler = ScriptController.Instance.playerScripts; IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(player); EventHooks.onPlayerTick(handler, scriptPlayer); } - PlayerData playerData = PlayerDataController.instance.getPlayerData(player); - if(PlayerDataController.instance != null) { - if(playerData.timers.size() > 0) + if (PlayerDataController.instance != null) { + PlayerData playerData = PlayerDataController.instance.getPlayerData(player); + + if (playerData.timers.size() > 0) { playerData.timers.update(); + } + + if (playerData.questData.trackedQuest != null && !playerData.questData.activeQuests.containsKey(playerData.questData.trackedQuest.getId())) { + PlayerDataController.instance.getPlayerData(player).questData.trackedQuest = null; + Server.sendData((EntityPlayerMP) player, EnumPacketClient.OVERLAY_QUEST_TRACKING); + } } } }