mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-21 15:56:56 +01:00
* move phoronlock define * t * force rename * nuke unneeded things * don't do that * tgui sync? * changes * unit testing module * backend * tools update * aaah * go and stay go * path replace * move everything * toss out more stuff * remove * fine those can stay * dependencies.sh * ruin datum move + rename * level assets why did you guys put the turfs in my atmosphers folder grr * more moving * basemap, force stuff * fix that desync meme * move more stuff * move those too * repath * get rid of useless initializers * hacky patchy * reservations * alright * tgui * changelog example * checksum * md5 * errors * more * turf empty * stop * fix * bad kwarg * let's get those in again * alright * rid of that * huh * newlines * newlines * folder * mood * woops * readme * might as well trim now * let's go * fuck it tether isn't being used anyways lol * ok * empty files go * tether is demoted * sorry but this goes too * okay * make that work too * ok * wow. * whew * Fix * fixes * ok * sigh * fix * fix * aah. * rust_g logging * update rust g file * fix * funny * Fix * map issues * fix * initialize hints * solves some problems * those too * ok * pills * let's do that. * hit that too * runtime * add that too * alright * fix * fix * fix * Fix * add * fix * wildwest, what have they done to you... * do that too' git push * fixes * fixes * fixes * pack this tightly * let's not have empty files * sigh * fix * FUCK OFF * fix icon * rip old mapmerge * zz * woo yeah woo yeah * logging * fix * better logs * GRRRRRR * last commit?? * awful
66 lines
2.0 KiB
Plaintext
66 lines
2.0 KiB
Plaintext
var/global/ntnrc_uid = 0
|
|
|
|
/datum/ntnet_conversation/
|
|
var/id = null
|
|
var/title = "Untitled Conversation"
|
|
var/datum/computer_file/program/chatclient/operator // "Administrator" of this channel. Creator starts as channel's operator,
|
|
var/list/messages = list()
|
|
var/list/clients = list()
|
|
var/password
|
|
|
|
/datum/ntnet_conversation/New()
|
|
id = ntnrc_uid
|
|
ntnrc_uid++
|
|
if(ntnet_global)
|
|
ntnet_global.chat_channels.Add(src)
|
|
..()
|
|
|
|
/datum/ntnet_conversation/proc/add_message(var/message, var/username)
|
|
message = "[stationtime2text()] [username]: [message]"
|
|
messages.Add(message)
|
|
trim_message_list()
|
|
|
|
/datum/ntnet_conversation/proc/add_status_message(var/message)
|
|
messages.Add("[stationtime2text()] -!- [message]")
|
|
trim_message_list()
|
|
|
|
/datum/ntnet_conversation/proc/trim_message_list()
|
|
if(messages.len <= 50)
|
|
return
|
|
messages.Cut(1, (messages.len-49))
|
|
|
|
/datum/ntnet_conversation/proc/add_client(var/datum/computer_file/program/chatclient/C)
|
|
if(!istype(C))
|
|
return
|
|
clients.Add(C)
|
|
add_status_message("[C.username] has joined the channel.")
|
|
// No operator, so we assume the channel was empty. Assign this user as operator.
|
|
if(!operator)
|
|
changeop(C)
|
|
|
|
/datum/ntnet_conversation/proc/remove_client(var/datum/computer_file/program/chatclient/C)
|
|
if(!istype(C) || !(C in clients))
|
|
return
|
|
clients.Remove(C)
|
|
add_status_message("[C.username] has left the channel.")
|
|
|
|
// Channel operator left, pick new operator
|
|
if(C == operator)
|
|
operator = null
|
|
if(clients.len)
|
|
var/datum/computer_file/program/chatclient/newop = pick(clients)
|
|
changeop(newop)
|
|
|
|
|
|
/datum/ntnet_conversation/proc/changeop(var/datum/computer_file/program/chatclient/newop)
|
|
if(istype(newop))
|
|
operator = newop
|
|
add_status_message("Channel operator status transferred to [newop.username].")
|
|
|
|
/datum/ntnet_conversation/proc/change_title(var/newtitle, var/datum/computer_file/program/chatclient/client)
|
|
if(operator != client)
|
|
return 0 // Not Authorised
|
|
|
|
add_status_message("[client.username] has changed channel title from [title] to [newtitle]")
|
|
title = newtitle
|