local VersionUpdate_Controller = {} local private = {} local EventSystem = require("Event/EventSystem") local SAVE_KEY_FORMAT = "VERSIONUPDATE" function VersionUpdate_Controller.OnStartup() private.rpTimeStamp = 0 end function VersionUpdate_Controller.IsShowRp() if not MDL.VersionUpdate.IsOpen() then return false end if MDL.VersionUpdate.IsHasAvailableRewards() then return true end if private.rpTimeStamp == 0 then local timestamp = PersistentData.PlayerData:Get(SAVE_KEY_FORMAT, 0) if timestamp == 0 then return true end private.rpTimeStamp = timestamp end return private.rpTimeStamp > 0 and UTL.Time.IsTimestampCrossDay(private.rpTimeStamp) end function VersionUpdate_Controller.MarkHasBeenChecked() if MDL.VersionUpdate.IsHasAvailableRewards() then return end if VersionUpdate_Controller.IsShowRp() then private.rpTimeStamp = UTL.Time.GetServerTimestamp() PersistentData.PlayerData:Set(SAVE_KEY_FORMAT, private.rpTimeStamp, true) EventSystem.Dispatch(EventID.VersionUpdate) end end function VersionUpdate_Controller.ClearRpTimestamp() private.rpTimeStamp = 0 PersistentData.PlayerData:Remove(SAVE_KEY_FORMAT, true) end return VersionUpdate_Controller