diff --git a/src/main/java/kamkeel/QuestCommand.java b/src/main/java/kamkeel/QuestCommand.java index 278f12518..2e51306aa 100644 --- a/src/main/java/kamkeel/QuestCommand.java +++ b/src/main/java/kamkeel/QuestCommand.java @@ -5,8 +5,10 @@ import java.util.List; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.server.MinecraftServer; import noppes.npcs.Server; import noppes.npcs.constants.EnumPacketClient; +import noppes.npcs.constants.EnumQuestRepeat; import noppes.npcs.controllers.DialogController; import noppes.npcs.controllers.PlayerDataController; import noppes.npcs.controllers.QuestController; @@ -95,8 +97,12 @@ public class QuestCommand extends CommandKamkeelBase { if(playerdata.questData.activeQuests.containsKey(questid)){ playerdata.questData.activeQuests.remove(questid); } - - playerdata.questData.finishedQuests.put(questid, System.currentTimeMillis()); + + if(quest.repeat == EnumQuestRepeat.RLDAILY || quest.repeat == EnumQuestRepeat.RLWEEKLY) + playerdata.questData.finishedQuests.put(quest.id, System.currentTimeMillis()); + else + playerdata.questData.finishedQuests.put(quest.id, sender.getEntityWorld().getTotalWorldTime()); + playerdata.savePlayerDataOnFile(); if(playerdata.player != null){ Server.sendData((EntityPlayerMP)playerdata.player, EnumPacketClient.MESSAGE, "quest.completed", quest.title); diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerQuestData.java b/src/main/java/noppes/npcs/controllers/data/PlayerQuestData.java index 709a8a183..7dfc53fa2 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerQuestData.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerQuestData.java @@ -11,6 +11,7 @@ import noppes.npcs.api.handler.IPlayerQuestData; import noppes.npcs.api.handler.data.IQuest; import noppes.npcs.constants.EnumPacketClient; import noppes.npcs.constants.EnumQuestCompletion; +import noppes.npcs.constants.EnumQuestRepeat; import noppes.npcs.constants.EnumQuestType; import noppes.npcs.controllers.PlayerDataController; import noppes.npcs.controllers.QuestController; @@ -164,7 +165,11 @@ public class PlayerQuestData implements IPlayerQuestData { Quest quest = QuestController.instance.quests.get(id); if (quest == null) return; - finishedQuests.put(id, System.currentTimeMillis()); + + if(quest.repeat == EnumQuestRepeat.RLDAILY || quest.repeat == EnumQuestRepeat.RLWEEKLY) + finishedQuests.put(quest.id, System.currentTimeMillis()); + else + finishedQuests.put(quest.id, parent.player.worldObj.getTotalWorldTime()); } public void stopQuest(int id) { diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java index 5b7babab6..ecf5b35b7 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java @@ -27,6 +27,7 @@ import noppes.npcs.api.item.IItemStack; import noppes.npcs.api.overlay.ICustomOverlay; import noppes.npcs.config.ConfigScript; import noppes.npcs.constants.EnumPacketClient; +import noppes.npcs.constants.EnumQuestRepeat; import noppes.npcs.constants.EnumQuestType; import noppes.npcs.containers.ContainerCustomGui; import noppes.npcs.controllers.*; @@ -270,7 +271,11 @@ public class ScriptPlayer extends ScriptLivingBase if (quest == null) return; PlayerData data = PlayerDataController.instance.getPlayerData(player); - data.questData.finishedQuests.put(id, System.currentTimeMillis()); + + if(quest.repeat == EnumQuestRepeat.RLDAILY || quest.repeat == EnumQuestRepeat.RLWEEKLY) + data.questData.finishedQuests.put(quest.id, System.currentTimeMillis()); + else + data.questData.finishedQuests.put(quest.id, player.worldObj.getTotalWorldTime()); } /**