summary refs log tree commit diff
path: root/server.ts
diff options
context:
space:
mode:
authorWlodekM <[email protected]>2024-11-30 12:10:08 +0200
committerWlodekM <[email protected]>2024-11-30 12:10:08 +0200
commit6cb6085e508b3b72697924490bad517546bdec71 (patch)
treefea72feea7b524514a21a95bdf9153acc6cd4257 /server.ts
parent7bf34fb819f12e551ee8e50dcfd7e0369a68eb8e (diff)
do stuff
Diffstat (limited to 'server.ts')
-rw-r--r--server.ts24
1 files changed, 18 insertions, 6 deletions
diff --git a/server.ts b/server.ts
index f3bc077..f58d17b 100644
--- a/server.ts
+++ b/server.ts
@@ -12,7 +12,7 @@ class _Events { // JSON events for clients
     
 }
 
-type ServerConfig = {
+export type ServerConfig = {
     port: number
     name: string
     motd: string
@@ -20,27 +20,28 @@ type ServerConfig = {
     max: number
 }
 
-type AccountsConfig = {
+export type AccountsConfig = {
     owner: string
     saveIP: boolean
     requireLogin: boolean
     annonFormat: string
 }
 
-type ProfanityConfig = {
+export type ProfanityConfig = {
     filter: boolean
     removeWords: string
     addWords: string
 }
 
-type ChannelsConfig = {
+export type ChannelsConfig = {
     channels: string
 }
 
-type ChannelConfig = {
+export type ChannelConfig = {
     slowmode?: number
     requireLogin?: boolean
     profanity?: boolean
+    motd?: string
 }
 
 type addPrefixToObject<T, P extends string> = {
@@ -105,8 +106,15 @@ export default class Server {
                 socket.on("close", function () {
                     server.sendInChannel(`${user.name()} left.`, user.channel);
                     server.updateUsers();
+                    console.info(`${user.name()}[${user.id}] left (close)`)
                     server.users.delete(user.id);
                 });
+                socket.on('error', function () {
+                    server.sendInChannel(`${user.name()} left.`, user.channel);
+                    server.updateUsers();
+                    console.info(`${user.name()}[${user.id}] left (error)`)
+                    server.users.delete(user.id);
+                })
                 socket.on("message", function (rawData) {
                     let data: string = rawData.toString()
                     if (data.toString().startsWith("/")) {
@@ -144,7 +152,11 @@ export default class Server {
                     }
                     if(handleJsonMessage(server, data, user)) return;
                     const thisChannelConfig: ChannelConfig | undefined = server.config['channel-'+user.channel] as ChannelConfig;
-                    if (server.config.accounts.requireLogin && user.guest && thisChannelConfig?.requireLogin != undefined && !thisChannelConfig.requireLogin)
+                    if (server.config.accounts.requireLogin &&
+                        user.guest &&
+                        !(thisChannelConfig?.requireLogin != undefined &&
+                        thisChannelConfig?.requireLogin) ||
+                        thisChannelConfig?.requireLogin && user.guest)
                         return socket.send("This server requires you to log in, use /login <username> <password> to log in or /register <username> <password> to make an account.");
                     profanity.options.grawlixChar = "*";
                     if (server.config.profanity.filter) data = profanity.censor(String(data));