mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-11 16:07:36 +01:00
32a6a7fabe
Fixes a harddel() related to PDA chat channels.
46 lines
1.2 KiB
Plaintext
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
|