mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
159 lines
4.0 KiB
Plaintext
159 lines
4.0 KiB
Plaintext
//print an error message to world.log
|
|
|
|
|
|
// On Linux/Unix systems the line endings are LF, on windows it's CRLF, admins that don't use notepad++
|
|
// will get logs that are one big line if the system is Linux and they are using notepad. This solves it by adding CR to every line ending
|
|
// in the logs. ascii character 13 = CR
|
|
|
|
/var/global/log_end= world.system_type == UNIX ? ascii2text(13) : ""
|
|
|
|
|
|
/proc/error(msg)
|
|
world.log << "## ERROR: [msg][log_end]"
|
|
|
|
#define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [src] usr: [usr].")
|
|
//print a warning message to world.log
|
|
/proc/warning(msg)
|
|
world.log << "## WARNING: [msg][log_end]"
|
|
|
|
//print a testing-mode debug message to world.log
|
|
/proc/testing(msg)
|
|
world.log << "## TESTING: [msg][log_end]"
|
|
|
|
/proc/log_admin(text)
|
|
admin_log.Add(text)
|
|
if (config.log_admin)
|
|
diary << "\[[time_stamp()]]ADMIN: [text][log_end]"
|
|
|
|
|
|
/proc/log_debug(text)
|
|
if (config.log_debug)
|
|
diary << "\[[time_stamp()]]DEBUG: [text][log_end]"
|
|
|
|
for(var/client/C in admins)
|
|
if(C.prefs.toggles & CHAT_DEBUGLOGS)
|
|
C << "DEBUG: [text]"
|
|
|
|
|
|
/proc/log_game(text)
|
|
if (config.log_game)
|
|
diary << "\[[time_stamp()]]GAME: [text][log_end]"
|
|
|
|
/proc/log_vote(text)
|
|
if (config.log_vote)
|
|
diary << "\[[time_stamp()]]VOTE: [text][log_end]"
|
|
|
|
/proc/log_access(text)
|
|
if (config.log_access)
|
|
diary << "\[[time_stamp()]]ACCESS: [text][log_end]"
|
|
|
|
/proc/log_say(text)
|
|
if (config.log_say)
|
|
diary << "\[[time_stamp()]]SAY: [text][log_end]"
|
|
|
|
/proc/log_ooc(text)
|
|
if (config.log_ooc)
|
|
diary << "\[[time_stamp()]]OOC: [text][log_end]"
|
|
|
|
/proc/log_whisper(text)
|
|
if (config.log_whisper)
|
|
diary << "\[[time_stamp()]]WHISPER: [text][log_end]"
|
|
|
|
/proc/log_emote(text)
|
|
if (config.log_emote)
|
|
diary << "\[[time_stamp()]]EMOTE: [text][log_end]"
|
|
|
|
/proc/log_attack(text)
|
|
if (config.log_attack)
|
|
diary << "\[[time_stamp()]]ATTACK: [text][log_end]" //Seperate attack logs? Why? FOR THE GLORY OF SATAN!
|
|
|
|
/proc/log_adminsay(text)
|
|
if (config.log_adminchat)
|
|
diary << "\[[time_stamp()]]ADMINSAY: [text][log_end]"
|
|
|
|
/proc/log_adminwarn(text)
|
|
if (config.log_adminwarn)
|
|
diary << "\[[time_stamp()]]ADMINWARN: [text][log_end]"
|
|
|
|
/proc/log_pda(text)
|
|
if (config.log_pda)
|
|
diary << "\[[time_stamp()]]PDA: [text][log_end]"
|
|
|
|
/proc/log_misc(text)
|
|
diary << "\[[time_stamp()]]MISC: [text][log_end]"
|
|
|
|
//pretty print a direction bitflag, can be useful for debugging.
|
|
/proc/print_dir(var/dir)
|
|
var/list/comps = list()
|
|
if(dir & NORTH) comps += "NORTH"
|
|
if(dir & SOUTH) comps += "SOUTH"
|
|
if(dir & EAST) comps += "EAST"
|
|
if(dir & WEST) comps += "WEST"
|
|
if(dir & UP) comps += "UP"
|
|
if(dir & DOWN) comps += "DOWN"
|
|
|
|
return english_list(comps, nothing_text="0", and_text="|", comma_text="|")
|
|
|
|
//more or less a logging utility
|
|
/proc/key_name(var/whom, var/include_link = null, var/include_name = 1, var/highlight_special_characters = 1)
|
|
var/mob/M
|
|
var/client/C
|
|
var/key
|
|
|
|
if(!whom) return "*null*"
|
|
if(istype(whom, /client))
|
|
C = whom
|
|
M = C.mob
|
|
key = C.key
|
|
else if(ismob(whom))
|
|
M = whom
|
|
C = M.client
|
|
key = M.key
|
|
else if(istype(whom, /datum/mind))
|
|
var/datum/mind/D = whom
|
|
key = D.key
|
|
M = D.current
|
|
if(D.current)
|
|
C = D.current.client
|
|
else if(istype(whom, /datum))
|
|
var/datum/D = whom
|
|
return "*invalid:[D.type]*"
|
|
else
|
|
return "*invalid*"
|
|
|
|
. = ""
|
|
|
|
if(key)
|
|
if(include_link && C)
|
|
. += "<a href='?priv_msg=\ref[C]'>"
|
|
|
|
if(C && C.holder && C.holder.fakekey && !include_name)
|
|
. += "Administrator"
|
|
else
|
|
. += key
|
|
|
|
if(include_link)
|
|
if(C) . += "</a>"
|
|
else . += " (DC)"
|
|
else
|
|
. += "*no key*"
|
|
|
|
if(include_name && M)
|
|
var/name
|
|
|
|
if(M.real_name)
|
|
name = M.real_name
|
|
else if(M.name)
|
|
name = M.name
|
|
|
|
|
|
if(include_link && is_special_character(M) && highlight_special_characters)
|
|
. += "/(<font color='#FFA500'>[name]</font>)" //Orange
|
|
else
|
|
. += "/([name])"
|
|
|
|
return .
|
|
|
|
/proc/key_name_admin(var/whom, var/include_name = 1)
|
|
return key_name(whom, 1, include_name)
|