11/** @typedef {import('../../../../decl/charAPI.ts').CharAPI_t } CharAPI_t */
2- /** @typedef {import('../../../../decl/WorldAPI .ts').WorldAPI_t } WorldAPI_t */
3- /** @typedef {import('../../../../decl/UserAPI .ts').UserAPI_t } UserAPI_t */
2+ /** @typedef {import('../../../../decl/worldAPI .ts').WorldAPI_t } WorldAPI_t */
3+ /** @typedef {import('../../../../decl/userAPI .ts').UserAPI_t } UserAPI_t */
44/** @typedef {import('../../../../decl/basedefs.ts').locale_t } locale_t */
55
66import { Buffer } from 'node:buffer'
@@ -30,7 +30,7 @@ import { addfile, getfile } from './files.mjs'
3030const chatMetadatas = new Map ( )
3131const chatUiSockets = new Map ( )
3232const chatDeleteTimers = new Map ( )
33- const CHAT_DELETE_TIMEOUT = ms ( '30m' )
33+ const CHAT_UNLOAD_TIMEOUT = ms ( '30m' )
3434
3535export function registerChatUiSocket ( chatid , ws ) {
3636 if ( chatDeleteTimers . has ( chatid ) ) {
@@ -49,17 +49,21 @@ export function registerChatUiSocket(chatid, ws) {
4949 socketSet . delete ( ws )
5050 console . log ( `Chat UI WebSocket disconnected for chat ${ chatid } . Total: ${ socketSet . size } ` )
5151 const chatData = chatMetadatas . get ( chatid )
52- if ( ! socketSet . size && chatUiSockets . delete ( chatid ) && ! is_VividChat ( chatData ?. chatMetadata ) ) {
52+ if ( ! socketSet . size && chatUiSockets . delete ( chatid ) ) {
5353 clearTimeout ( chatDeleteTimers . get ( chatid ) )
5454 chatDeleteTimers . set ( chatid , setTimeout ( async ( ) => {
5555 try {
56- if ( chatUiSockets . has ( chatid ) || is_VividChat ( chatData . chatMetadata ) ) return
57- await deleteChat ( [ chatid ] , chatData . username )
56+ if ( chatUiSockets . has ( chatid ) ) return
57+ if ( is_VividChat ( chatData ?. chatMetadata ) ) {
58+ await saveChat ( chatid )
59+ chatData . chatMetadata = null
60+ }
61+ else await deleteChat ( [ chatid ] , chatData . username )
5862 }
5963 finally {
6064 chatDeleteTimers . delete ( chatid )
6165 }
62- } , CHAT_DELETE_TIMEOUT ) )
66+ } , CHAT_UNLOAD_TIMEOUT ) )
6367 }
6468 } )
6569}
0 commit comments