Files
VMSolidus 32a6a7fabe Ntnet Hard Del (#22271)
Fixes a harddel() related to PDA chat channels.
2026-04-19 05:27:10 +00:00

46 lines
1.2 KiB
Plaintext

/datum/ntnet_user
var/username
var/list/channels = list()
var/list/dm_channels = list()
var/list/clients = list()
/datum/ntnet_user/New()
. = ..()
GLOB.ntnet_global.chat_users.Add(src)
/datum/ntnet_user/Destroy(force)
//This notifies every client that might have this as a client to deactivate and clear the reference
for(var/datum/computer_file/program/chat_client/client as anything in GLOB.ntnet_global.chat_clients)
client.handle_ntnet_user_deletion(src)
GLOB.ntnet_global.chat_users.Remove(src)
for(var/datum/ntnet_conversation/chan in channels)
chan.users -= src
if(chan.operator == src)
if(chan.users.len)
chan.operator = pick(chan.users)
else
chan.operator = null
for(var/datum/ntnet_user/other_user in dm_channels)
var/datum/ntnet_conversation/chan = dm_channels[other_user]
if(istype(chan))
chan.users -= src
if(istype(other_user) && islist(other_user.dm_channels))
other_user.dm_channels -= src
channels = null
dm_channels = null
clients = null
return ..()
/datum/ntnet_user/proc/generateUsernameIdCard(var/obj/item/card/id/card)
if(!card)
return "Unknown"
return "[card.registered_name], [card.assignment]"
/datum/ntnet_user/proc/generateUsernameSilicon(var/mob/living/silicon/silicon)
return silicon.name