PHE.RESULT = false local function UPDATE_SET_RESULT(result) PHE.RESULT = result end local function UPDATE_GET_RESULT() return PHE.RESULT end local function UPDATE_DO_FETCH() http.Fetch( GAMEMODE.UPDATEURL, function(body,len,head,code) if tonumber(code) >= 300 then return false elseif body == "" then return false else UPDATE_SET_RESULT(body) return body end end, function(err) print("[!PH: Enhanced Update] Error retreiving update. Reason: " .. err) end ) end function PHE:CheckUpdate(bool) local result = "" local httpcode = 0 result = UPDATE_DO_FETCH() || UPDATE_GET_RESULT() || PHE.RESULT || false if (!result || result == "") then print("[!PH: Enhanced Update] Unknown Error retreiving update.") return false,false,false end printVerbose("[*PH: Enhanced Update] Incoming update result data:\n ===\n" .. tostring(result) .. "\n ===\n") local data = util.JSONToTable(result) local ver = tonumber(data.version) local rev = data.revision local log = data.notice local text if tonumber(GAMEMODE._VERSION) > ver then text = "[!PH: Enhanced Update] New version of " .. ver .. " is available. To update, please procceed to this link: \n --> https://prophunt.wolvindra.net/?go=download \n --> Changelog: " .. log MsgC(Color(0,160,230), text .. "\n") elseif string.lower(GAMEMODE.REVISION) != rev then text = "[!PH: Enhanced Update] New Revision of " .. rev .. " is available. To update, please procceed with this revision, visit this link: \n --> https://prophunt.wolvindra.net/?go=download&rev=" .. rev .. " \n --> Changelog: " .. log MsgC(Color(0,160,230), text .. "\n") elseif tonumber(GAMEMODE._VERSION) == ver && string.lower(GAMEMODE.REVISION) == rev then text = "[*PH: Enhanced Update] Your gamemode is up to date. (Version " .. ver .. " - Revision " .. string.upper(rev) .. ")" MsgC(Color(0,200,40), text .. "\n") end if bool then return ver,rev,log end end local function CheckUpdate() print("[PH: Enhanced] - Retreiving Update Info... Please Wait!") UPDATE_DO_FETCH() timer.Simple(4, function() print( "~[ Prop Hunt : Enhanced Update & Info ]~" ) local version,rev,changelog = PHE:CheckUpdate(true) if (!version || !rev || !changelog) then MsgC(Color(230,20,20), "[!!] Error Retreiving updates info") return end MsgC(Color(181,230,30),"[+] Current Version : " .. version .. "\n") MsgC(Color(175,245,15),"[+] Current Revision: " .. rev .. "\n") MsgC(Color(247,211,13),"[!] See ChangeLog : " .. changelog .. "\n\n") end) end concommand.Add("ph_check_update", CheckUpdate ,nil, "Force Check Update Prop Hunt: Enhanced.") local cooldown = 86400 hook.Add("Initialize", "PHE.CheckUpdateInit", function() local nextUpdate = cookie.GetNumber("nextUpdate",0) local time = os.time() if time < nextUpdate then print("[PH: Enhanced] - Update has been checked. Will Re-check the update on " .. os.date("%Y/%m/%d - %H:%M:%S",nextUpdate)) else print("[PH: Enhanced] - Initialize for Checking Update. .. ") UPDATE_DO_FETCH() print("[PH: Enhanced] - Retreiving Update Info. .. ") cookie.Set("nextUpdate", time + cooldown) timer.Simple(5, function() PHE:CheckUpdate(false) print("[PH: Enhanced] - Update has been checked. Your next update notice will be displayed on " .. os.date("%Y/%m/%d - %H:%M:%S",nextUpdate)) end) end end)