Check vchat loaded flag before attempting to call putmessage

This commit is contained in:
Leshana
2020-05-25 15:58:34 -04:00
parent 86373ecc96
commit ac8922bdf5
2 changed files with 15 additions and 26 deletions

View File

@@ -54,17 +54,12 @@ SUBSYSTEM_DEF(chat)
var/client/C = CLIENT_FROM_VAR(I) //Grab us a client if possible var/client/C = CLIENT_FROM_VAR(I) //Grab us a client if possible
if(!C) if(!C)
return continue // No client? No care.
else if(C.chatOutput.broken)
if(!C?.chatOutput || C.chatOutput.broken) //A player who hasn't updated his skin file.
//Send it to the old style output window.
DIRECT_OUTPUT(C, original_message) DIRECT_OUTPUT(C, original_message)
continue continue
else if(!C.chatOutput.loaded)
// // Client still loading, put their messages in a queue - Actually don't, logged already in database. continue // If not loaded yet, do nothing and history-sending on load will get it.
// if(!C.chatOutput.loaded && C.chatOutput.message_queue && islist(C.chatOutput.message_queue))
// C.chatOutput.message_queue[++C.chatOutput.message_queue.len] = messageStruct
// continue
LAZYINITLIST(msg_queue[C]) LAZYINITLIST(msg_queue[C])
msg_queue[C][++msg_queue[C].len] = messageStruct msg_queue[C][++msg_queue[C].len] = messageStruct
@@ -72,16 +67,12 @@ SUBSYSTEM_DEF(chat)
var/client/C = CLIENT_FROM_VAR(target) //Grab us a client if possible var/client/C = CLIENT_FROM_VAR(target) //Grab us a client if possible
if(!C) if(!C)
return return // No client? No care.
else if(C.chatOutput.broken)
if(!C?.chatOutput || C.chatOutput.broken) //A player who hasn't updated his skin file.
DIRECT_OUTPUT(C, original_message) DIRECT_OUTPUT(C, original_message)
return return
else if(!C.chatOutput.loaded)
// // Client still loading, put their messages in a queue - Actually don't, logged already in database. return // If not loaded yet, do nothing and history-sending on load will get it.
// if(!C.chatOutput.loaded && C.chatOutput.message_queue && islist(C.chatOutput.message_queue))
// C.chatOutput.message_queue[++C.chatOutput.message_queue.len] = messageStruct
// return
LAZYINITLIST(msg_queue[C]) LAZYINITLIST(msg_queue[C])
msg_queue[C][++msg_queue[C].len] = messageStruct msg_queue[C][++msg_queue[C].len] = messageStruct

View File

@@ -367,15 +367,13 @@ var/to_chat_src
time = world.time time = world.time
var/client/C = CLIENT_FROM_VAR(target) var/client/C = CLIENT_FROM_VAR(target)
if(C && C.chatOutput) if(!C)
if(C.chatOutput.broken) return // No client? No care.
DIRECT_OUTPUT(C, original_message) else if(C.chatOutput.broken)
return DIRECT_OUTPUT(C, original_message)
return
// // Client still loading, put their messages in a queue - Actually don't, logged already in database. else if(!C.chatOutput.loaded)
// if(!C.chatOutput.loaded && C.chatOutput.message_queue && islist(C.chatOutput.message_queue)) return // If not loaded yet, do nothing and history-sending on load will get it.
// C.chatOutput.message_queue[++C.chatOutput.message_queue.len] = list("time" = time, "message" = message)
// return
var/list/tojson = list("time" = time, "message" = message); var/list/tojson = list("time" = time, "message" = message);
target << output(jsEncode(tojson), "htmloutput:putmessage") target << output(jsEncode(tojson), "htmloutput:putmessage")