diff --git a/build/Version.props b/build/Version.props index 8bbf9544b6..9d2eb2ce7c 100644 --- a/build/Version.props +++ b/build/Version.props @@ -9,7 +9,7 @@ 7.0.0 13.3.0 15.3.0 - 7.1.2 + 7.1.3 5.9.0 1.4.1 1.2.1 diff --git a/src/DMAPI/tgs.dm b/src/DMAPI/tgs.dm index e2c89df90e..17464b44da 100644 --- a/src/DMAPI/tgs.dm +++ b/src/DMAPI/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "7.1.2" +#define TGS_DMAPI_VERSION "7.1.3" // All functions and datums outside this document are subject to change with any version and should not be relied on. diff --git a/src/DMAPI/tgs/v3210/api.dm b/src/DMAPI/tgs/v3210/api.dm index 666201a322..32dd93d2c0 100644 --- a/src/DMAPI/tgs/v3210/api.dm +++ b/src/DMAPI/tgs/v3210/api.dm @@ -36,6 +36,7 @@ var/instance_name var/originmastercommit var/commit + var/revision_date var/list/cached_custom_tgs_chat_commands var/warned_revison = FALSE var/warned_custom_commands = FALSE @@ -76,6 +77,21 @@ logs = splittext(logs[logs.len], " ") if (logs.len >= 2) originmastercommit = logs[2] +#if DM_VERSION >= 514 + if(logs.len >= 5) + var/revision_date_epoch = text2num(logs[5]) + if(isnum(revision_date_epoch)) + revision_date = unix_epoch_to_iso_timestamp(revision_date_epoch) + else + revision_date = "" + TGS_ERROR_LOG("Error parsing origin commit timestamp as number") + else + revision_date = "" + TGS_ERROR_LOG("Error parsing origin commmit timestamp at all") +#else + revision_date = "" + TGS_WARNING_LOG("Revision date parsing is not support on versions below 514") +#endif else TGS_ERROR_LOG("Error parsing origin commmit logs") @@ -184,6 +200,7 @@ var/datum/tgs_revision_information/ri = new ri.commit = commit ri.origin_commit = originmastercommit + ri.timestamp = revision_date return ri /datum/tgs_api/v3210/EndProcess() @@ -211,6 +228,14 @@ /datum/tgs_api/v3210/SecurityLevel() return TGS_SECURITY_TRUSTED +#if DM_VERSION >= 514 +/datum/tgs_api/v3210/proc/unix_epoch_to_iso_timestamp(epoch) + epoch += world.timezone * 3600 // adjust for timezone + epoch -= 946684800 // adjust for unix to byond epoch lapse (30 years) + epoch *= 10 // adjust for time2text expecting decisonds + return time2text(epoch, "YYYY-MM-DDThh:mm:ss", 0) +#endif + #undef REBOOT_MODE_NORMAL #undef REBOOT_MODE_HARD #undef REBOOT_MODE_SHUTDOWN