From 355423c927c98aa2fb6e88c62ce909c6f370411e Mon Sep 17 00:00:00 2001 From: Evoleo Date: Wed, 4 Dec 2024 07:51:23 +0300 Subject: [PATCH] v7.0 Release --- JavascriptServer/cmd/handlers/auth.js | 117 +++++++- JavascriptServer/cmd/handlers/chat.js | 6 + JavascriptServer/cmd/handlers/custom.js | 23 +- JavascriptServer/cmd/handlers/friends.js | 2 +- JavascriptServer/cmd/handlers/lobby.js | 14 +- JavascriptServer/cmd/handlers/party.js | 18 +- JavascriptServer/cmd/handlers/system.js | 2 +- JavascriptServer/cmd/sendStuff.js | 12 +- JavascriptServer/cmd/senders/auth.js | 26 +- JavascriptServer/cmd/senders/chat.js | 19 ++ JavascriptServer/cmd/senders/lobby.js | 6 +- JavascriptServer/cmd/senders/system.js | 4 + JavascriptServer/cmd/senders/types/auth.d.ts | 7 - .../cmd/senders/types/custom.d.ts | 6 - .../cmd/senders/types/friends.d.ts | 7 - .../cmd/senders/types/game_loop.d.ts | 10 - JavascriptServer/cmd/senders/types/lobby.d.ts | 11 - JavascriptServer/cmd/senders/types/party.d.ts | 10 - .../cmd/senders/types/system.d.ts | 10 - JavascriptServer/cmd/validators/friends.js | 2 +- JavascriptServer/cmd/validators/lobby.js | 2 +- JavascriptServer/cmd/validators/party.js | 2 +- JavascriptServer/concepts/chat.js | 150 ++++++++++ JavascriptServer/concepts/client.js | 273 ++++++++++++------ JavascriptServer/concepts/entity.js | 119 ++++++-- JavascriptServer/concepts/lobby.js | 48 ++- .../concepts/matchmaking/matchmaker.js | 18 +- .../concepts/matchmaking/party.js | 46 ++- JavascriptServer/concepts/party.js | 173 ----------- JavascriptServer/concepts/room.js | 15 +- JavascriptServer/concepts/validator.js | 22 -- JavascriptServer/config.js | 20 +- JavascriptServer/entities/player.js | 30 +- JavascriptServer/entities/warp_portal.js | 5 + .../initializers/00_exit_handler.js | 11 +- JavascriptServer/initializers/01_globals.js | 1 + .../{06_mongodb.js => 02_mongodb.js} | 12 +- .../{07_console.js => 03_console.js} | 7 +- JavascriptServer/initializers/05_constants.js | 1 - JavascriptServer/initializers/08_ping.js | 9 - .../{02_entities.js => 10_entities.js} | 2 +- .../{03_levels.js => 11_levels.js} | 4 +- .../initializers/{04_maps.js => 12_maps.js} | 2 +- .../{09_game_modes.js => 13_game_modes.js} | 2 +- .../{10_lobbies.js => 14_lobbies.js} | 0 JavascriptServer/initializers/15_chats.js | 21 ++ .../initializers/{12_cmd.js => 16_cmd.js} | 0 .../{11_matchmaker.js => 20_matchmaker.js} | 0 JavascriptServer/initializers/21_ping.js | 20 ++ JavascriptServer/jsconfig.json | 3 +- JavascriptServer/package-lock.json | 152 ++++------ JavascriptServer/package.json | 2 +- JavascriptServer/packet.js | 14 +- JavascriptServer/schemas/account.js | 72 +---- JavascriptServer/schemas/chat.js | 33 +++ JavascriptServer/schemas/friend_request.js | 7 +- JavascriptServer/schemas/profile.js | 38 +-- JavascriptServer/schemas/session.js | 10 + JavascriptServer/server.js | 125 ++++---- JavascriptServer/types/bbox.js | 1 - JavascriptServer/types/client_properties.js | 1 - JavascriptServer/types/point.js | 1 - JavascriptServer/types/socktype.js | 1 - JavascriptServer/util/auth.js | 155 ++++++++++ JavascriptServer/util/entity_functions.js | 6 - JavascriptServer/util/logging.js | 4 +- JavascriptServer/util/names.js | 13 +- JavascriptServer/util/password_encryption.js | 27 -- JavascriptServer/util/random_id.js | 19 ++ Release/GMClient.zip | Bin 179778 -> 182409 bytes Release/JSServer.zip | Bin 61023 -> 61208 bytes Release/TSServer.zip | Bin 69325 -> 155399 bytes Release/Warp.yymps | Bin 179778 -> 182409 bytes TypescriptServer/src/cmd/handlers/auth.ts | 2 +- TypescriptServer/src/concepts/client.ts | 2 +- .../src/initializers/00_exit_handler.ts | 2 +- 76 files changed, 1166 insertions(+), 851 deletions(-) create mode 100644 JavascriptServer/cmd/handlers/chat.js create mode 100644 JavascriptServer/cmd/senders/chat.js delete mode 100644 JavascriptServer/cmd/senders/types/auth.d.ts delete mode 100644 JavascriptServer/cmd/senders/types/custom.d.ts delete mode 100644 JavascriptServer/cmd/senders/types/friends.d.ts delete mode 100644 JavascriptServer/cmd/senders/types/game_loop.d.ts delete mode 100644 JavascriptServer/cmd/senders/types/lobby.d.ts delete mode 100644 JavascriptServer/cmd/senders/types/party.d.ts delete mode 100644 JavascriptServer/cmd/senders/types/system.d.ts create mode 100644 JavascriptServer/concepts/chat.js delete mode 100644 JavascriptServer/concepts/party.js delete mode 100644 JavascriptServer/concepts/validator.js rename JavascriptServer/initializers/{06_mongodb.js => 02_mongodb.js} (67%) rename JavascriptServer/initializers/{07_console.js => 03_console.js} (82%) delete mode 100644 JavascriptServer/initializers/05_constants.js delete mode 100644 JavascriptServer/initializers/08_ping.js rename JavascriptServer/initializers/{02_entities.js => 10_entities.js} (94%) rename JavascriptServer/initializers/{03_levels.js => 11_levels.js} (92%) rename JavascriptServer/initializers/{04_maps.js => 12_maps.js} (91%) rename JavascriptServer/initializers/{09_game_modes.js => 13_game_modes.js} (94%) rename JavascriptServer/initializers/{10_lobbies.js => 14_lobbies.js} (100%) create mode 100644 JavascriptServer/initializers/15_chats.js rename JavascriptServer/initializers/{12_cmd.js => 16_cmd.js} (100%) rename JavascriptServer/initializers/{11_matchmaker.js => 20_matchmaker.js} (100%) create mode 100644 JavascriptServer/initializers/21_ping.js create mode 100644 JavascriptServer/schemas/chat.js create mode 100644 JavascriptServer/schemas/session.js delete mode 100644 JavascriptServer/types/bbox.js delete mode 100644 JavascriptServer/types/client_properties.js delete mode 100644 JavascriptServer/types/point.js delete mode 100644 JavascriptServer/types/socktype.js create mode 100644 JavascriptServer/util/auth.js delete mode 100644 JavascriptServer/util/entity_functions.js delete mode 100644 JavascriptServer/util/password_encryption.js create mode 100644 JavascriptServer/util/random_id.js diff --git a/JavascriptServer/cmd/handlers/auth.js b/JavascriptServer/cmd/handlers/auth.js index b216c73..51fa974 100644 --- a/JavascriptServer/cmd/handlers/auth.js +++ b/JavascriptServer/cmd/handlers/auth.js @@ -1,17 +1,126 @@ import { addHandler } from "#cmd/handlePacket"; +import { accountActivate, accountCreate, accountLogin, accountRegister, profileRename, sessionCreate, sessionGet, sessionLogin } from "#util/auth"; +import trace from "#util/logging"; +import { Names } from "#util/names"; addHandler('name get', (c) => { c.sendName(); }); +addHandler('name set', async (c, data) => { + let name = data.name; + + if (c.logged_in) { + try { + await profileRename(c.profile, name); + c.sendName(); + } + catch (e) { } + } + else { + if (!Names.isValid(name)) { + return; + } + if (global.clients.some(client => client.name === name)) { + return; + } + + c.name = name; + c.sendName(); + } +}); + +// create a brand new (temporary) account + +addHandler('session create', async (c, data) => { + let name = c.name; // default name + + try { + c.account = accountCreate(name, '', true); + c.session = sessionCreate(c.account); + + await c.register(c.account); + + c.sendSessionCreate(true, '', c.session.token); + c.sendLogin(true); + } + catch (reason) { + c.sendSessionCreate(false, reason.toString()); + } +}); + +addHandler('session login', async (c, data) => { + let token = data.session; + + try { + c.session = await sessionGet(token); + c.account = await sessionLogin(c.session); + + await c.login(c.account); + c.sendSession(true); + c.sendLogin(true); + + // another client logged into the same session? + let old_client = global.clients.find((client) => client !== c && client.session?.token === c.session?.token); + + if (old_client !== undefined) { + if (old_client.connected) { + old_client.disconnect(); + } + + old_client.reconnect(c); + } + } + catch (reason) { + trace('error: ' + reason.toString()); + c.sendSession(false, reason); + // c.send({ cmd: 'session login', success: false, reason: reason.toString() }); + } +}); + + addHandler('login', (c, data) => { - var { username, password } = data; - c.tryLogin(username, password); + let { username, password } = data; + username = username.toLowerCase(); + + accountLogin(username, password) + .then((account) => { + c.login(account); + c.session = sessionCreate(account); + + c.sendLogin(true); + c.sendSession(true); + }) + .catch((reason) => { + c.sendLogin(false, reason); + }); }); addHandler('register', (c, data) => { - var { username, password } = data; - c.tryRegister(username, password); + let { username, password } = data; + username = username.toLowerCase(); + + let promise; + + if (c.session && c.account && c.account.temporary) { + promise = accountActivate(c.account, username, password); + } + else { + promise = accountRegister(username, password); + } + + promise + .then((account) => { + c.register(account); + c.session = sessionCreate(c.account); + + c.sendRegister(true); + c.sendLogin(true); + c.sendSession(true); + }) + .catch((reason) => { + c.sendRegister(false, reason); + }); }); // addHandler('logout', (c, data) => { diff --git a/JavascriptServer/cmd/handlers/chat.js b/JavascriptServer/cmd/handlers/chat.js new file mode 100644 index 0000000..2844a8e --- /dev/null +++ b/JavascriptServer/cmd/handlers/chat.js @@ -0,0 +1,6 @@ +import addHandler from "#cmd/handlePacket"; + +// list of all the chats of this player +addHandler('chats list', (c, data) => { + c.sendChatsList(); +}); diff --git a/JavascriptServer/cmd/handlers/custom.js b/JavascriptServer/cmd/handlers/custom.js index b452a07..25cf0b3 100644 --- a/JavascriptServer/cmd/handlers/custom.js +++ b/JavascriptServer/cmd/handlers/custom.js @@ -1,26 +1,11 @@ import { addHandler } from "#cmd/handlePacket"; -import { clamp } from "#util/maths"; - addHandler('player controls', (c, data) => { if (!c.entity) return; - c.entity.inputs = { - move: data.move, - keys: { - kright: data.kright, - kleft: data.kleft, - kup: data.kup, - kdown: data.kdown, - - kjump: data.kjump, - kjump_rel: data.kjump_rel, - kjump_press: data.kjump_press - } - }; - - c.entity.inputs.move.x = clamp(c.entity.inputs.move.x, -1, 1); - c.entity.inputs.move.y = clamp(c.entity.inputs.move.y, -1, 1); + for (let input_name in c.entity.inputs) { + if (data[input_name] !== undefined) + c.entity.inputs[input_name] = data[input_name]; + } }); - diff --git a/JavascriptServer/cmd/handlers/friends.js b/JavascriptServer/cmd/handlers/friends.js index a64a423..3567b95 100644 --- a/JavascriptServer/cmd/handlers/friends.js +++ b/JavascriptServer/cmd/handlers/friends.js @@ -17,7 +17,7 @@ addHandler('friend list', async (c, data) => { }); addHandler('friend req send', (c, data) => { - if (!c.profile.friends.includes(data.friend._id) && !FriendRequest.exists({ sender: data.friend._id })) + if (!c.profile.friends.includes(data.friend.id) && !FriendRequest.exists({ sender: data.friend.id })) c.friendRequestSend(data.friend); c.send({ cmd: 'friend req sent', to: data.friend.name }); diff --git a/JavascriptServer/cmd/handlers/lobby.js b/JavascriptServer/cmd/handlers/lobby.js index 8789eec..f551403 100644 --- a/JavascriptServer/cmd/handlers/lobby.js +++ b/JavascriptServer/cmd/handlers/lobby.js @@ -7,22 +7,22 @@ addHandler('lobby list', (c) => { }); addHandler('lobby info', (c, data) => { - var lobbyid = data.lobbyid; - if (lobbyExists(lobbyid)) - c.sendLobbyInfo(lobbyid); + const lobby_id = data.lobby_id; + if (lobbyExists(lobby_id)) + c.sendLobbyInfo(lobby_id); }); addHandler('lobby join', (c, data) => { if (!global.config.lobby.allow_join_by_id) return; - var lobbyid = data.lobbyid; - if (lobbyExists(lobbyid)) - c.lobbyJoin(lobbyid); + const lobby_id = data.lobby_id; + if (lobbyExists(lobby_id)) + c.lobbyJoin(lobby_id); }); addHandler('lobby leave', (c, data) => { - var lobby = c.lobby; + let lobby = c.lobby; if (lobby !== null) { lobby.kickPlayer(c, 'you left the lobby', false); } diff --git a/JavascriptServer/cmd/handlers/party.js b/JavascriptServer/cmd/handlers/party.js index ab3c9f6..d36875d 100644 --- a/JavascriptServer/cmd/handlers/party.js +++ b/JavascriptServer/cmd/handlers/party.js @@ -2,9 +2,9 @@ import { addHandler } from "#cmd/handlePacket"; import { partyExists } from "#matchmaking/party"; addHandler('party join', (c, data) => { - var partyid = data.partyid; - if (partyExists(partyid)) - c.partyJoin(partyid); + let party_id = data.party_id; + if (partyExists(party_id)) + c.partyJoin(party_id); }); addHandler('party leave', (c) => { @@ -19,12 +19,12 @@ addHandler('party kick', (c, data) => { if (!c.party.isLeader(c)) return; - let { profileid, username } = data; + let { profile_id, username } = data; let reason = data.reason ?? ''; let member = null; - if (profileid) { - member = global.clients.find(u => u.profile.id === profileid); + if (profile_id) { + member = global.clients.find(u => u.profile.id === profile_id); } else { member = global.clients.find(u => u.name === username); @@ -45,11 +45,11 @@ addHandler('party disband', (c) => { }); addHandler('party invite', (c, data) => { - let { profileid, username } = data; + let { profile_id, username } = data; let user = null; - if (profileid) { - user = global.clients.find(u => u.profile.id === profileid); + if (profile_id) { + user = global.clients.find(u => u.profile.id === profile_id); } else { user = global.clients.find(u => u.name === username); diff --git a/JavascriptServer/cmd/handlers/system.js b/JavascriptServer/cmd/handlers/system.js index e599b5c..480674a 100644 --- a/JavascriptServer/cmd/handlers/system.js +++ b/JavascriptServer/cmd/handlers/system.js @@ -28,7 +28,7 @@ addHandler('client info', (c, data) => { // immediately close the socket after 1 last packet setImmediate(() => { // close the socket - if (c.type == 'tcp') { + if (c.socket_type == 'tcp') { const s = c.socket; s.destroy(); } diff --git a/JavascriptServer/cmd/sendStuff.js b/JavascriptServer/cmd/sendStuff.js index d8c30a8..c3c552b 100644 --- a/JavascriptServer/cmd/sendStuff.js +++ b/JavascriptServer/cmd/sendStuff.js @@ -12,12 +12,20 @@ export class SendStuff { * basic send * @param {any} data */ - write(data) { + write(data, shouldQueue = false) { + if (!this.connected) { + if (shouldQueue) { + this.packetQueue.push(data); + } + + return; + } + if (global.config.timestamps_enabled) { // { t: ms passed since the server started } data.t = Date.now() - global.start_time; } - if (this.type === 'ws') { + if (this.socket_type === 'ws') { this.socket.send(packet.ws_build(data)); } else { diff --git a/JavascriptServer/cmd/senders/auth.js b/JavascriptServer/cmd/senders/auth.js index 1f0b701..c7d9c1b 100644 --- a/JavascriptServer/cmd/senders/auth.js +++ b/JavascriptServer/cmd/senders/auth.js @@ -7,17 +7,31 @@ SendStuff.prototype.sendName = function () { }; /** - * @param {string} status + * @param {string} success * @param {string} [reason=''] */ -SendStuff.prototype.sendRegister = function (status, reason = '') { - this.send({ cmd: 'register', status, reason }); +SendStuff.prototype.sendRegister = function (success, reason = '') { + this.send({ cmd: 'register', success, reason }); }; /** - * @param {string} status + * @param {string} success * @param {string} [reason=''] */ -SendStuff.prototype.sendLogin = function (status, reason = '') { - this.send({ cmd: 'login', status, reason, account: getAccountInfo(this.account), profile: getProfileInfo(this.profile) }); +SendStuff.prototype.sendLogin = function (success, reason = '') { + this.send({ cmd: 'login', success, reason, account: getAccountInfo(this.account), profile: getProfileInfo(this.profile) }); +}; + +SendStuff.prototype.sendSession = function (success, reason = '', token = undefined) { + if (token === undefined && success) { + token = this.session.token; + } + this.send({ cmd: 'session login', success, reason, session: token }); +}; + +SendStuff.prototype.sendSessionCreate = function (success, reason = '', token = undefined) { + if (token === undefined && success) { + token = this.session.token; + } + this.send({ cmd: 'session create', success: true, reason, session: token }); }; diff --git a/JavascriptServer/cmd/senders/chat.js b/JavascriptServer/cmd/senders/chat.js new file mode 100644 index 0000000..d4faaa0 --- /dev/null +++ b/JavascriptServer/cmd/senders/chat.js @@ -0,0 +1,19 @@ +import SendStuff from "#cmd/sendStuff"; +import { messageSerialize } from "#schemas/chat"; + +SendStuff.prototype.sendChatMessage = function (chat_id, message) { + this.send({ cmd: 'chat msg', chat_id, message: messageSerialize(message) }); +}; + +SendStuff.prototype.sendChatHistory = function (chat_id, messages) { + // this.send({ cmd: 'chat history', chat_id, history: messages.map(m => ({ content: m.content, name: m.name, profile_id: null })) }); + this.send({ cmd: 'chat history', chat_id, history: messages.map(messageSerialize) }); +}; + +SendStuff.prototype.sendChatInfo = function (chat) { + this.send({ cmd: 'chat info', chat: chat.serialize() }); +}; + +SendStuff.prototype.sendChatsList = function () { + this.send({ cmd: 'chats list', chats: this.chats.map(chat => chat.chat_id) }); +}; diff --git a/JavascriptServer/cmd/senders/lobby.js b/JavascriptServer/cmd/senders/lobby.js index e728f01..5ed9ef4 100644 --- a/JavascriptServer/cmd/senders/lobby.js +++ b/JavascriptServer/cmd/senders/lobby.js @@ -37,8 +37,8 @@ SendStuff.prototype.sendLobbyList = function () { }; /** - * @param {string} lobbyid + * @param {string} lobby_id */ -SendStuff.prototype.sendLobbyInfo = function (lobbyid) { - this.send({ cmd: 'lobby info', lobby: global.lobbies[lobbyid].getInfo() }); +SendStuff.prototype.sendLobbyInfo = function (lobby_id) { + this.send({ cmd: 'lobby info', lobby: global.lobbies[lobby_id].getInfo() }); }; diff --git a/JavascriptServer/cmd/senders/system.js b/JavascriptServer/cmd/senders/system.js index 6d827e4..0680779 100644 --- a/JavascriptServer/cmd/senders/system.js +++ b/JavascriptServer/cmd/senders/system.js @@ -31,3 +31,7 @@ SendStuff.prototype.sendInvalidInput = function (from_cmd, errors) { SendStuff.prototype.sendError = function (error, details = '') { this.send({ cmd: 'error', error, details }); }; + +SendStuff.prototype.sendKick = function () { + this.send({ cmd: 'server kick' }); +}; diff --git a/JavascriptServer/cmd/senders/types/auth.d.ts b/JavascriptServer/cmd/senders/types/auth.d.ts deleted file mode 100644 index 6ff735d..0000000 --- a/JavascriptServer/cmd/senders/types/auth.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare module "#cmd/sendStuff" { - interface SendStuff { - sendRegister(status: string, reason?: string): any; - sendLogin(status: string, reason?: string): any; - } -} -export {}; diff --git a/JavascriptServer/cmd/senders/types/custom.d.ts b/JavascriptServer/cmd/senders/types/custom.d.ts deleted file mode 100644 index 28e17d2..0000000 --- a/JavascriptServer/cmd/senders/types/custom.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { IPlayerInputs } from "#entity/player"; -declare module "#cmd/sendStuff" { - interface SendStuff { - sendPlayerControls(data: IPlayerInputs): any; - } -} diff --git a/JavascriptServer/cmd/senders/types/friends.d.ts b/JavascriptServer/cmd/senders/types/friends.d.ts deleted file mode 100644 index cc68477..0000000 --- a/JavascriptServer/cmd/senders/types/friends.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { IProfile, ProfileInfo } from "#schemas/profile"; -declare module '#cmd/sendStuff' { - interface SendStuff { - sendFriends(friends: IProfile[]): any; - sendIncomingFriendRequests(from_profiles: ProfileInfo[]): any; - } -} diff --git a/JavascriptServer/cmd/senders/types/game_loop.d.ts b/JavascriptServer/cmd/senders/types/game_loop.d.ts deleted file mode 100644 index cbcaec6..0000000 --- a/JavascriptServer/cmd/senders/types/game_loop.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Lobby from "#concepts/lobby"; -import Room from "#concepts/room"; -import Point from '#types/point'; -declare module '#cmd/sendStuff' { - interface SendStuff { - sendPlay(lobby: Lobby, room?: Room, start_pos?: Point, uuid?: string): void; - sendRoomTransition(room_to: Room, start_pos?: Point, uuid?: string): void; - sendGameOver(outcome: string, reason?: string): void; - } -} diff --git a/JavascriptServer/cmd/senders/types/lobby.d.ts b/JavascriptServer/cmd/senders/types/lobby.d.ts deleted file mode 100644 index 78b70b7..0000000 --- a/JavascriptServer/cmd/senders/types/lobby.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import Lobby from '#concepts/lobby'; -declare module '#cmd/sendStuff' { - interface SendStuff { - sendLobbyJoin(lobby: Lobby): void; - sendLobbyReject(lobby: Lobby, reason?: string): void; - sendLobbyLeave(lobby: Lobby, reason?: string, forced?: boolean): void; - sendLobbyUpdate(lobby: Lobby): void; - sendLobbyInfo(lobbyid: string): void; - sendLobbyList(): void; - } -} diff --git a/JavascriptServer/cmd/senders/types/party.d.ts b/JavascriptServer/cmd/senders/types/party.d.ts deleted file mode 100644 index d4cf45e..0000000 --- a/JavascriptServer/cmd/senders/types/party.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import Party from "#concepts/party"; -declare module '#cmd/sendStuff' { - interface SendStuff { - sendPartyInvite(party: Party): any; - sendPartyLeave(party: Party, reason: string, forced: boolean): any; - sendPartyJoin(party: Party): any; - sendPartyReject(party?: Party, reason?: string): any; - sendPartyInviteSent(): any; - } -} diff --git a/JavascriptServer/cmd/senders/types/system.d.ts b/JavascriptServer/cmd/senders/types/system.d.ts deleted file mode 100644 index 94f7185..0000000 --- a/JavascriptServer/cmd/senders/types/system.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationError } from "fastest-validator"; -declare module '#cmd/sendStuff' { - interface SendStuff { - sendServerInfo(compatible: boolean): any; - sendPing(): any; - sendPong(T: number): any; - sendServerTime(client_t: number): any; - sendInvalidInput(from_cmd: string, errors: ValidationError[]): any; - } -} diff --git a/JavascriptServer/cmd/validators/friends.js b/JavascriptServer/cmd/validators/friends.js index 5db9a33..a58908a 100644 --- a/JavascriptServer/cmd/validators/friends.js +++ b/JavascriptServer/cmd/validators/friends.js @@ -1,6 +1,6 @@ import { addMiddleware } from "#cmd/middleware"; import { addValidator } from "#cmd/validator"; -import { getProfileByName } from "#schemas/profile"; +import { getProfileByName } from "#util/auth"; let friend_cmds = ['friend req accept', 'friend req reject', 'friend req send', 'friend add', 'friend remove', 'friend req cacnel']; diff --git a/JavascriptServer/cmd/validators/lobby.js b/JavascriptServer/cmd/validators/lobby.js index a78fe00..ab2ec5d 100644 --- a/JavascriptServer/cmd/validators/lobby.js +++ b/JavascriptServer/cmd/validators/lobby.js @@ -1,5 +1,5 @@ import { addValidator } from "#cmd/validator"; addValidator(['lobby info', 'lobby join'], { - lobbyid: { type: 'string', optional: true } + lobby_id: { type: 'string', optional: true } }); diff --git a/JavascriptServer/cmd/validators/party.js b/JavascriptServer/cmd/validators/party.js index 95f18a6..803ddb4 100644 --- a/JavascriptServer/cmd/validators/party.js +++ b/JavascriptServer/cmd/validators/party.js @@ -1,5 +1,5 @@ import { addValidator } from "#cmd/validator"; addValidator(['party join'], { - partyid: 'string' + party_id: 'string' }); diff --git a/JavascriptServer/concepts/chat.js b/JavascriptServer/concepts/chat.js new file mode 100644 index 0000000..e06b0a4 --- /dev/null +++ b/JavascriptServer/concepts/chat.js @@ -0,0 +1,150 @@ + +import ChatLog from "#schemas/chat"; +import { getRandomId } from "#util/random_id"; + + +export function chatFind(chat_id) { + return global.chats[chat_id]; +} + +export function chatCreate(members = [], isPrivate = false) { + let chat_id = getRandomId(global.chats); + if (chat_id === null) + return null; + + let chatlog = new ChatLog(); + + chatlog._id = chat_id; + chatlog.private = isPrivate; + + let chat = new Chat(chatlog); + + + for (let member of members) { + chat.addMember(member, null, true); + } + + chat.save(); + global.chats[chat_id] = chat; + + return chat; +} + +export class Chat { + chatlog; + + online_members = []; + get messages() { + return this.chatlog.messages; + } + + + // id of the chat room + get chat_id() { + return this.chatlog.id.toString(); + } + + get members() { + return this.chatlog.members; + } + + constructor(chatlog) { + this.chatlog = chatlog; + } + + save() { + return this.chatlog.save(); + } + + + addMember(profile, client = null, initial = false) { + if (this.members.includes(profile.id)) + return; + + profile.chats.push(this.chatlog.id); + this.members.push(profile.id); + + if (client !== null) + this.connectMember(client); + + if (!initial) + this.save(); + } + + kickMember(profile) { + let idx = this.members.indexOf(profile.id); + if (idx !== -1) + this.members.splice(idx, 1); + + // disconnect the client + idx = this.online_members.findIndex(c => c.profile === profile); + if (idx !== -1) { + let client = this.online_members[idx]; + this.disconnectMember(client); + } + + + // cut this chat from the profile's chats list + idx = profile.chats.indexOf(this.chatlog.id); + if (idx !== -1) + profile.chats.splice(idx, 1); + + this.save(); + } + + connectMember(client) { + if (!this.online_members.some(c => (c === client || c.profile?.id === client.profile?.id))) + this.online_members.push(client); + + if (!client.chats.includes(this)) + client.chats.push(this); + + client.sendChatHistory(this.chat_id, this.messages); + } + + disconnectMember(client) { + let idx = this.online_members.indexOf(client); + if (idx !== -1) + this.online_members.splice(idx, 1); + + idx = client.chats.indexOf(this); + if (idx !== -1) + client.chats.splice(idx, 1); + } + + writeMessage(content, author = 'SYSTEM') { + let name, profile_id; + + // author is not logged in/anonymous + if (typeof author === 'string') { + name = author; + profile_id = null; + } + else { + name = author.name; + profile_id = author.profile?.id ?? null; + } + + const message = { + name, + content, + profile_id + }; + + this.messages.push(message); + this.save(); + + // broadcast to all online users + this.online_members.forEach(client => client.sendChatMessage(this.chat_id, message)); + } + + serialize() { + return { + chat_id: this.chat_id, + members: this.members.map(profile_id => profile_id.toString()), + online_members: this.online_members.map(client => client.name) + }; + } +} + +export default Chat; diff --git a/JavascriptServer/concepts/client.js b/JavascriptServer/concepts/client.js index 55f916b..14e45da 100644 --- a/JavascriptServer/concepts/client.js +++ b/JavascriptServer/concepts/client.js @@ -2,26 +2,31 @@ import trace from '#util/logging'; import chalk from 'chalk'; import { SendStuff } from '#cmd/sendStuff'; -import { Profile, freshProfile } from '#schemas/profile'; -import { Account } from '#schemas/account'; +import { Profile } from '#schemas/profile'; import { FriendRequest } from '#schemas/friend_request'; +import { profileCreate } from '#util/auth'; + import { lobbyFind } from '#concepts/lobby'; import { partyCreate, partyGet } from '#matchmaking/party'; import MatchMaker from '#matchmaking/matchmaker'; import { Names } from '#util/names'; +import { chatFind } from '#concepts/chat'; // this is a wrapper around sockets export default class Client extends SendStuff { + /** @type {boolean} */ + connected; + /** @type {string} */ name = ''; /** @type {string} */ temp_id; // a temporary randomly generated id string - /** @type {import('ws').WebSocket | import('net').Socket} */ + /** @type {WebSocket | TCPSocket} */ socket = null; /** @type {'ws' | 'tcp'} */ - type; + socket_type; ip; /** @type {Lobby} */ @@ -37,15 +42,26 @@ export default class Client extends SendStuff { /** @type {Match} */ match = null; + /** @type {string[]} */ + chats = []; + /** @type {Account} */ account = null; /** @type {Profile} */ profile = null; + /** @type {ISession} */ + session = null; // used internally in packet.ts /** @type {Buffer} */ halfpack; + /** @type {any[]} */ + packetQueue; + + // used internally in server.ts + bindTCP; + bindWS; /** @type {PlayerEntity} */ entity = null; @@ -53,7 +69,8 @@ export default class Client extends SendStuff { /** @type {number} */ ping; - room_join_timer = -1; // if >0 - joined a room recently + room_join_timer = -1; // if >0 - joined a room recently, getting FULL entities list + reconnect_timer = -1; /** @type {boolean} */ get logged_in() { @@ -70,19 +87,18 @@ export default class Client extends SendStuff { this.profile.mmr = Math.max(_mmr, global.config.matchmaking.mmr_min); } - constructor(socket, type = 'tcp') { + constructor(socket, socket_type = 'tcp') { super(); + this.connected = true; + // a random 8-digit number string this.temp_id = Math.floor(Math.random() * 100_000_000).toString(); this.temp_id = '0'.repeat(8 - this.temp_id.length) + this.temp_id; this.socket = socket; - this.type = type.toLowerCase(); - - this.type = type; + this.socket_type = socket_type; - this.socket = socket; this.lobby = null; // no lobby // these are the objects that contain all the meaningful data @@ -108,8 +124,7 @@ export default class Client extends SendStuff { * @param {Lobby} lobby * @param {string=} reason */ - onLobbyReject(lobby, reason) { - reason ??= 'lobby is full!'; + onLobbyReject(lobby, reason = 'lobby is full!') { this.sendLobbyReject(lobby, reason); } @@ -153,6 +168,8 @@ export default class Client extends SendStuff { this.profile.last_online = new Date(); this.name = this.profile.name; + this.chatConnectAll(); + this.save(); } @@ -170,7 +187,7 @@ export default class Client extends SendStuff { } // find a room to join - var room = null; + let room = null; // join the room last visited (saved in profile) if (global.config.room.use_last_profile_room && this.logged_in && this.profile.state.room) { @@ -204,12 +221,45 @@ export default class Client extends SendStuff { } onDisconnect() { + this.socket = null; + this.connected = false; + + this.reconnect_timer = global.config.reconnect_timeout; + + this.matchMakingStop(); + // go offline if (this.logged_in) { this.profile.online = false; this.profile.last_online = new Date(); + this.save(); } + } + + onReconnect() { + if (this.lobby) + this.sendLobbyJoin(this.lobby); + if (this.room && this.entity) + this.sendPlay(this.lobby, this.room, this.entity.pos, this.entity.uuid); + this.room_join_timer = global.config.room.recently_joined_timer; + } + + + disconnect() { + if (this.socket === null) { + return; + } + + if (this.socket_type === 'ws') { + this.socket.close(); + } + else { + this.socket.destroy(); + } + } + + destroy() { // save everything to the DB this.save(); @@ -220,14 +270,50 @@ export default class Client extends SendStuff { this.lobby.kickPlayer(this, 'disconnect', true); if (this.party) this.party.kickMember(this, 'disconnect', true); + + + let idx = global.clients.indexOf(this); + if (idx != -1) + global.clients.splice(idx, 1); + + this.chatDisconnectAll(); + + this.disconnect(); + } + + // move a new client's socket into this "dead" (disconnected) client + // removes the other client from the global.clients list + reconnect(new_client) { + if (this.connected) { + return; + } + + this.connected = true; + + this.socket = new_client.socket; + this.socket_type = new_client.socket_type; + + this.socket.removeAllListeners(); + + if (this.socket_type === 'tcp') + this.bindTCP(this.socket); + else + this.bindWS(this.socket); + + // delete self from the list + let idx = global.clients.indexOf(new_client); + if (idx != -1) + global.clients.splice(idx, 1); + + this.onReconnect(); } getInfo() { return { name: this.name, - partyid: this.party?.partyid, - lobbyid: this.lobby?.lobbyid, + party_id: this.party?.party_id, + lobby_id: this.lobby?.lobby_id, room_name: this.room?.level.name }; } @@ -235,10 +321,10 @@ export default class Client extends SendStuff { // Below are some preset functions (you probably don't want to change them - lobbyJoin(lobbyid) { - var lobby; - if (lobbyid) { - lobby = lobbyFind(lobbyid); + lobbyJoin(lobby_id) { + let lobby; + if (lobby_id) { + lobby = lobbyFind(lobby_id); } else { lobby = MatchMaker.findNonfullLobby(this); @@ -252,7 +338,7 @@ export default class Client extends SendStuff { if (!this.logged_in) return []; - return (await Profile.findById(this.profile._id).populate('friends')).friends; + return (await Profile.findById(this.profile.id).populate('friends')).friends; } async getFriendIds() { @@ -265,13 +351,13 @@ export default class Client extends SendStuff { async getIncomingFriendRequests() { if (!this.logged_in) return []; - return await FriendRequest.findIncoming(this.profile._id); + return await FriendRequest.findIncoming(this.profile.id); } async getOutgoingFriendRequests() { if (!this.logged_in) return []; - return await FriendRequest.findOutgoing(this.profile._id); + return await FriendRequest.findOutgoing(this.profile.id); } async friendCanAdd(friend) { @@ -279,8 +365,8 @@ export default class Client extends SendStuff { if (!this.logged_in) return false; - let this_id = this.profile._id; - let friend_id = friend._id; + let this_id = this.profile.id; + let friend_id = friend.id; return this_id != friend_id && !(await this.getFriendIds()).includes(friend_id); } @@ -296,8 +382,8 @@ export default class Client extends SendStuff { if (!await this.friendCanAdd(friend)) return false; - let sender_id = this.profile._id; - let receiver_id = friend._id; + let sender_id = this.profile.id; + let receiver_id = friend.id; let friend_exists = this.profile.friends.some(friend_id => friend_id === receiver_id); if (friend_exists) { // already friends @@ -333,8 +419,8 @@ export default class Client extends SendStuff { if (!this.logged_in) return null; - let sender = this.profile._id; - let receiver = user_to._id; + let sender = this.profile.id; + let receiver = user_to.id; return await FriendRequest.create({ sender, receiver }); } @@ -348,7 +434,7 @@ export default class Client extends SendStuff { user_from = user_from instanceof Client ? user_from.profile : user_from; user_to = user_to instanceof Client ? user_to.profile : user_to; - return await FriendRequest.findRequestId(user_from._id, user_to._id); + return await FriendRequest.findRequestId(user_from.id, user_to.id); } /** @@ -412,8 +498,8 @@ export default class Client extends SendStuff { if (!this.logged_in) return false; - let my_id = this.profile._id; - let friend_id = friend._id; + let my_id = this.profile.id; + let friend_id = friend.id; // delete from each others' profiles await Profile.findByIdAndUpdate(my_id, { $pull: { friends: friend_id } }); @@ -447,17 +533,17 @@ export default class Client extends SendStuff { } /** - * @param {string} partyid + * @param {string} party_id */ - partyJoin(partyid) { + partyJoin(party_id) { this.matchMakingStop(); - let party = partyGet(partyid); + let party = partyGet(party_id); party.addMember(this); } matchMakingStart(req) { - if (this.ticket) + if (this.ticket !== null) return 'already matchmaking'; if (this.match) return 'already in a match'; @@ -498,96 +584,103 @@ export default class Client extends SendStuff { /** * Save account and profile data to the DB */ - save() { + async save() { if (this.account !== null) { - this.account.save() + await this.account.save() .then(() => { - trace('Saved the account successfully'); + // trace('Saved the account successfully'); }) .catch((err) => { trace('Error while saving account: ' + err); }); } if (this.profile !== null) { - - // save the current lobbyid + // save the current lobby_id if (this.lobby !== null) { - this.profile.state.lobbyid = this.lobby.lobbyid; + this.profile.state.lobby_id = this.lobby.lobby_id; } - this.profile.save() + await this.profile.save() .then(() => { - trace('Saved the profile successfully.'); + // trace('Saved the profile successfully.'); }) .catch((err) => { trace('Error while saving profile: ' + err); }); } + if (this.session !== null) { + await this.session.save() + .then(() => { + // trace('Saved the session successfully'); + }) + .catch((err) => { + trace('Error while saving session: ' + err); + }); + } } /** * @param {Account} account */ - register(account) { + async register(account) { + account.temporary = false; + this.account = account; - this.profile = freshProfile(account); + this.profile = profileCreate(account); + + await this.account.save(); + await this.profile.save(); this.onLogin(); - this.sendRegister('success'); } - /** - * @param {string} username - * @param {string} password + * @param {Account} account */ - tryLogin(username, password) { - let c = this; - - Account.login(username, password) - .then((account) => { - // this also sends the message - c.login(account); - }).catch((reason) => { - c.sendLogin('fail', reason); + async login(account) { + this.account = account; + + this.profile = await Profile.findOne({ + account_id: this.account.id }); + + this.onLogin(); } - /** - * @param {string} username - * @param {string} password - */ - tryRegister(username, password) { - let c = this; - - Account.register(username, password) - .then((account) => { - // this also sends the message - c.register(account); - }).catch((reason) => { - trace('error: ' + reason); - c.sendRegister('fail', reason.toString()); - }); + + chatJoin(chat_id) { + if (!this.profile) + return; + + let chat = chatFind(chat_id); + if (chat) { + chat.addMember(this.profile, this); + } } - /** - * @param {Account} account - */ - login(account) { - let c = this; - this.account = account; + chatLeave(chat_id) { + if (!this.profile) + return; - Profile.findOne({ - account_id: this.account._id - }).then((profile) => { - if (profile) { - this.profile = profile; - c.onLogin(); - c.sendLogin('success'); - } - else { - trace('Error: Couldn\'t find a profile with these credentials!'); - } + let chat = chatFind(chat_id); + if (chat) { + chat.kickMember(this.profile); + } + } + + chatConnectAll() { + if (!this.profile) + return; + + this.profile.chats.forEach(chat_id => { + let chat = chatFind(chat_id); + chat?.connectMember(this); + }); + } + + chatDisconnectAll() { + this.chats.forEach(chat => { + chat.disconnectMember(this); }); } } diff --git a/JavascriptServer/concepts/entity.js b/JavascriptServer/concepts/entity.js index cef4163..9554b37 100644 --- a/JavascriptServer/concepts/entity.js +++ b/JavascriptServer/concepts/entity.js @@ -1,16 +1,22 @@ import { EventEmitter } from "events"; import { CircleCollider, BoxCollider, PolygonCollider } from '#concepts/collider'; - import { isDeepStrictEqual } from 'util'; + + +export function entityExists(entityType) { + return global.entities.includes(entityType) + || Object.keys(global.entity_objects).includes(entityType) + || Object.keys(global.entity_names).includes(entityType); +} + + // a thing class Entity extends EventEmitter { static type = 'Unknown'; static object_name = 'oUnknownEntity'; type; object_name; - // type = Entity.type; - // object_name = Entity.object_name; is_solid = false; is_static = false; @@ -19,12 +25,14 @@ class Entity extends EventEmitter { pos; // keep in mind that the coordinates are always set to a whole number (to achieve pixel-perfect collisions) spd; // speed in pixels per second, can be fractional angle = 0; + origin = { x: 0, y: 0 }; // origin from 0 (top/left) to 1 (bottom/right) prev_pos; serialized; // save the last serialized version of this entity (to compare changes) base_size = { x: 64, y: 64 }; scale = { x: 1, y: 1 }; + flip = { x: 0, y: 0 }; // the custom variables that need sending with the entitiy @@ -40,6 +48,7 @@ class Entity extends EventEmitter { collider = null; // a polygon or a circle collider_type = 'box'; + collider_origin = { x: 0, y: 0 }; collider_radius = this.width / 2; // only relevant when collider_type is 'circle' collider_vertices = []; // if this is not overridden, a default rectangle collider will be used @@ -70,7 +79,7 @@ class Entity extends EventEmitter { if (typeof value === 'string') { this._state = this.states[value]; } - // it's a number + // state is a number // (-1 means keep the old state) else if (value != -1) { this._state = value; @@ -98,7 +107,6 @@ class Entity extends EventEmitter { this.object_name = this.constructor['object_name']; this.createCollider(); - this.collider.entity = this; this.tree.insert(this.collider); } @@ -152,12 +160,15 @@ class Entity extends EventEmitter { } createCollider(x = this.x, y = this.y) { - let pos = { x: x, y: y }; + let pos = { + x: x + this.width * (this.collider_origin.x - this.origin.x), + y: y + this.height * (this.collider_origin.y - this.origin.y) + }; // create the collider switch (this.collider_type) { case 'box': - this.collider = new BoxCollider(pos, this.width - .01, this.height - .01); + this.collider = new BoxCollider(pos, this.base_size.x - .01, this.base_size.y - .01); break; case 'circle': this.collider = new CircleCollider(pos, this.collider_radius); @@ -170,6 +181,10 @@ class Entity extends EventEmitter { throw 'Unknown collider type: ' + this.collider_type; } + this.collider.setScale(this.xscale, this.yscale); + this.collider.setAngle(this.angle); + // this.tree.updateBody(this.collider); + this.collider.entity = this; } @@ -182,46 +197,72 @@ class Entity extends EventEmitter { this.tree.insert(this.collider); } - updateCollider(x = this.x, y = this.y) { - if (this.size.x != this.prev_size.x || this.size.y != this.prev_size.y) { - this.regenerateCollider(x, y); + updateCollider(x = this.x, y = this.y, collider = this.collider) { + let pos = { + x: x + this.width * (this.collider_origin.x - this.origin.x), + y: y + this.height * (this.collider_origin.y - this.origin.y) + }; + + if (collider === this.collider) { + collider.setScale(this.xscale, this.yscale); + collider.setAngle(this.angle); + collider.setPosition(pos.x, pos.y); + } + else { + collider.setPosition(x, y); } - this.collider.setAngle(this.angle); - this.collider.setPosition(x, y); - this.tree.updateBody(this.collider); + this.tree.updateBody(collider); } - checkCollision(x = this.x, y = this.y, e) { - this.updateCollider(x, y); - return this.tree.checkCollision(this.collider, e.collider); + checkCollision(x = this.x, y = this.y, e, collider = this.collider) { + this.updateCollider(x, y, collider); + + let result = this.tree.checkCollision(collider, e.collider); + + // move back the collider + if (collider === this.collider) + this.updateCollider(this.x, this.y); + + return result; } - placeMeeting(x = this.x, y = this.y, type = 'solid') { - this.updateCollider(x, y); + placeMeeting(x = this.x, y = this.y, type = 'solid', collider = this.collider) { + this.updateCollider(x, y, collider); this.prev_size = { x: this.size.x, y: this.size.y }; - return this.tree.checkOne(this.collider, (res) => { + let result = this.tree.checkOne(this.collider, (res) => { let e = res.b.entity; - return e.matchesType(type); + return e && e.matchesType(type); }); + + // move back the collider + if (collider === this.collider) + this.updateCollider(this.x, this.y); + + return result; } - placeMeetingAll(x = this.x, y = this.y, type = 'solid') { - this.updateCollider(x, y); + placeMeetingAll(x = this.x, y = this.y, type = 'solid', collider = this.collider) { + this.updateCollider(x, y, collider); let entities = []; - this.tree.checkOne(this.collider, (res) => { + this.tree.checkOne(collider, (res) => { let e = res.b.entity; - if (e.matchesType(type)) + if (e && e.matchesType(type)) entities.push(e); }); + + // move back the collider + if (collider === this.collider) + this.updateCollider(this.x, this.y); + return entities; } isOutsideRoom(x = this.x, y = this.y) { - let bbox = this.bbox; // this is an optimization btw + let bbox = this.bbox; // don't call the getter every time return bbox.left - this.x + x > this.room.width || bbox.right - this.x + x < 0 @@ -259,14 +300,17 @@ class Entity extends EventEmitter { // removes the entity from the room (and triggers the 'remove' event) remove() { + let idx = this.room.entities.indexOf(this); + if (idx === -1) { // already removed + return; + } this.emit('remove'); - var pos = this.room.entities.indexOf(this); - this.room.entities.splice(pos, 1); + this.room.entities.splice(idx, 1); this.tree.remove(this.collider); } serialize() { - return { + let struct = { id: this.id, t: this.type, obj: this.object_name, @@ -279,6 +323,14 @@ class Entity extends EventEmitter { p: this.props, // uses a getter for props st: this.state }; + + if (this.flip.x) + struct.fx = true; + if (this.flip.y) + struct.fy = true; + + + return struct; } bundle() { @@ -301,11 +353,14 @@ class Entity extends EventEmitter { let x = this.x, y = this.y; let w = this.width, h = this.height; + let ox = this.origin.x; + let oy = this.origin.y; + return { - left: x, - top: y, - right: x + w, - bottom: y + h + left: x - w * ox, + top: y - h * oy, + right: x + w * (1 - ox), + bottom: y + h * (1 - oy) }; } diff --git a/JavascriptServer/concepts/lobby.js b/JavascriptServer/concepts/lobby.js index 3e849cf..530bf26 100644 --- a/JavascriptServer/concepts/lobby.js +++ b/JavascriptServer/concepts/lobby.js @@ -1,44 +1,37 @@ import trace from '#util/logging'; import Room from '#concepts/room'; import { EventEmitter } from 'events'; -import * as crypto from 'crypto'; import { gameModeFind } from '#concepts/game_mode'; - +import { getRandomId } from '#util/random_id'; // note: only create lobbies with createLobby(), don't call the constructor directly export function lobbyCreate(map) { - var lobby = new Lobby(map); + let lobby_id = getRandomId(); + if (lobby_id === null) + return null; - while (true) { - // a random 6-digit number - var lobbyid = crypto.randomInt(100000, 999999).toString(); - if (lobbyid in global.lobbies) { // just in case of a collision - continue; - } - else { - global.lobbies[lobbyid] = lobby; - lobby.lobbyid = lobbyid; - break; - } - } + let lobby = new Lobby(map); + lobby.lobby_id = lobby_id; + + global.lobbies[lobby_id] = lobby; return lobby; } -export function lobbyFind(lobbyid) { - return global.lobbies[lobbyid]; +export function lobbyFind(lobby_id) { + return global.lobbies[lobby_id]; } -export function lobbyExists(lobbyid) { - return global.lobbies.hasOwnProperty(lobbyid); +export function lobbyExists(lobby_id) { + return global.lobbies.hasOwnProperty(lobby_id); } -export function lobbyDelete(lobbyid) { - var lobby = global.lobbies[lobbyid]; +export function lobbyDelete(lobby_id) { + let lobby = global.lobbies[lobby_id]; lobby.close(); - delete global.lobbies[lobbyid]; + delete global.lobbies[lobby_id]; } export function lobbyList() { @@ -48,7 +41,7 @@ export function lobbyList() { // in context of an MMO this is a shard/separated world export default class Lobby extends EventEmitter { - lobbyid = '-1'; // assigned when created + lobby_id = '-1'; // assigned when created status = 'open'; /** @type {Client[]} */ players = []; @@ -134,6 +127,9 @@ export default class Lobby extends EventEmitter { * @param {boolean?} forced */ kickPlayer(player, reason, forced = false, secondary = false) { + if (!this.players.includes(player)) + return; + // close if a player leaves from the lobby? if (global.config.lobby.close_on_leave && this.status !== 'closed' && !secondary) { if (this.match && !this.match.ended) { // if left mid-match - end the match @@ -155,7 +151,7 @@ export default class Lobby extends EventEmitter { team.splice(idx, 1); }); - var idx = this.players.indexOf(player); + let idx = this.players.indexOf(player); this.players.splice(idx, 1); player.room?.removePlayer(player); // if in a room - kick, otherwise don't error out player.onLobbyLeave(this, reason, forced); @@ -215,7 +211,7 @@ export default class Lobby extends EventEmitter { // (e.x. we don't want to send functions and everything about every player) serialize() { return { - lobbyid: this.lobbyid, + lobby_id: this.lobby_id, rooms: global.config.rooms_enabled ? this.rooms.map(r => r.serialize()) : undefined, @@ -228,7 +224,7 @@ export default class Lobby extends EventEmitter { getInfo() { return { - lobbyid: this.lobbyid, + lobby_id: this.lobby_id, rooms: global.config.rooms_enabled ? this.rooms.map(r => r.getInfo()) : undefined, diff --git a/JavascriptServer/concepts/matchmaking/matchmaker.js b/JavascriptServer/concepts/matchmaking/matchmaker.js index 879a5fd..5c541ab 100644 --- a/JavascriptServer/concepts/matchmaking/matchmaker.js +++ b/JavascriptServer/concepts/matchmaking/matchmaker.js @@ -13,12 +13,12 @@ export default class MatchMaker { // an internal loop static processMatches() { // handle each mode's queue separately - for (let mode in this.queues) { - let match_found = true; - + for (const mode in this.queues) { let game_mode = global.game_modes[mode]; let q = this.queues[mode]; + let match_found = true; + let team_size = game_mode.team_size; let teams = []; @@ -143,15 +143,13 @@ export default class MatchMaker { j++; } - // if (j >= q.count(party_size)) - // break; + if (j >= q.count(party_size)) + break; } } + } - // if (teams.flat().length > 0) - // trace('teams:', teams); - // check if all the teams are packed for (let i = 0; i < teams_count; i++) { if (teams_filled[i] != team_size) { // not filled @@ -163,7 +161,7 @@ export default class MatchMaker { if (!match_found) { // skip to the next game mode - break; + continue; } // remove all the team members from the queue @@ -239,7 +237,7 @@ export default class MatchMaker { * @returns {Lobby} lobby */ static findNonfullLobby(user) { - var match_lobby = null; + let match_lobby = null; lobbyList().forEach((lobby) => { if (!lobby.full) { match_lobby = lobby; diff --git a/JavascriptServer/concepts/matchmaking/party.js b/JavascriptServer/concepts/matchmaking/party.js index b5c5b20..04bc913 100644 --- a/JavascriptServer/concepts/matchmaking/party.js +++ b/JavascriptServer/concepts/matchmaking/party.js @@ -1,42 +1,36 @@ -import * as crypto from 'crypto'; import MatchMaker from "#matchmaking/matchmaker"; +import { getRandomId } from "#util/random_id"; // use this instead of calling the new Party() contructor directly export function partyCreate(leader) { - const party = new Party(leader); + let party_id = getRandomId(global.parties); + if (party_id === null) + return null; - while (true) { - // a random 6-digit number - let partyid = crypto.randomInt(100000, 999999).toString(); - if (partyid in global.parties) { // just in case of a collision - continue; - } - else { - global.parties[partyid] = party; - party.partyid = partyid; - break; - } - } + let party = new Party(leader); + + global.parties[party_id] = party; + party.party_id = party_id; return party; } -export function partyGet(partyid) { - return global.parties[partyid]; +export function partyGet(party_id) { + return global.parties[party_id]; } -export function partyExists(partyid) { - return global.parties.hasOwnProperty(partyid); +export function partyExists(party_id) { + return global.parties.hasOwnProperty(party_id); } -export function partyDelete(partyid) { - let party = global.parties[partyid]; +export function partyDelete(party_id) { + let party = global.parties[party_id]; party.disband(); } export default class Party { - partyid; + party_id; members; leader; max_members; // inherited from config.party.max_members @@ -89,7 +83,11 @@ export default class Party { } } - this.members.splice(this.members.indexOf(member), 1); + let idx = this.members.indexOf(member); + if (idx === -1) + return; + + this.members.splice(idx, 1); member.onPartyLeave(this, reason, forced); member.party = null; @@ -106,7 +104,7 @@ export default class Party { } delete() { - delete global.parties[this.partyid]; + delete global.parties[this.party_id]; } matchMakingStart(req) { @@ -164,7 +162,7 @@ export default class Party { getInfo() { return { - partyid: this.partyid, + party_id: this.party_id, members: this.members.map(m => m.name), leader: this.leader?.name }; diff --git a/JavascriptServer/concepts/party.js b/JavascriptServer/concepts/party.js deleted file mode 100644 index b5c5b20..0000000 --- a/JavascriptServer/concepts/party.js +++ /dev/null @@ -1,173 +0,0 @@ -import * as crypto from 'crypto'; -import MatchMaker from "#matchmaking/matchmaker"; - -// use this instead of calling the new Party() contructor directly -export function partyCreate(leader) { - const party = new Party(leader); - - while (true) { - // a random 6-digit number - let partyid = crypto.randomInt(100000, 999999).toString(); - if (partyid in global.parties) { // just in case of a collision - continue; - } - else { - global.parties[partyid] = party; - party.partyid = partyid; - break; - } - } - - return party; -} - -export function partyGet(partyid) { - return global.parties[partyid]; -} - -export function partyExists(partyid) { - return global.parties.hasOwnProperty(partyid); -} - -export function partyDelete(partyid) { - let party = global.parties[partyid]; - party.disband(); -} - - -export default class Party { - partyid; - members; - leader; - max_members; // inherited from config.party.max_members - - get party_size() { return this.members.length; } - - ticket = null; // current matchmaking ticket (null = not looking for a match) - match = null; - - constructor(leader) { - this.members = []; - this.max_members = global.config.party.max_members; - - this.leader = leader; - this.addMember(leader); - - this.send(); - } - - addMember(member) { - if (member.party === this) - return; - else if (this.members.length >= this.max_members) { - member.onPartyReject(this, 'party full'); - return; - } - else if (member.party) { - member.party.kickMember(member, 'changing parties', true); - } - - this.matchMakingStop(); - - this.members.push(member); - member.party = this; - - this.send(); - } - - kickMember(member, reason = '', forced = true) { - // leave matchmaking - this.matchMakingStop(); - - if (this.isLeader(member)) { - if (this.members.length == 1) { // if no one else left - this.leader = null; - } - else { - // find the first member to become the new party leader - this.leader = this.members.find(m => m != member); - } - } - - this.members.splice(this.members.indexOf(member), 1); - member.onPartyLeave(this, reason, forced); - member.party = null; - - // delete the party ID if everyone left - if (this.members.length == 0) - this.delete(); - else { - this.send(); - } - } - - disband() { - this.members.forEach(member => this.kickMember(member, 'party disbanded', true)); - } - - delete() { - delete global.parties[this.partyid]; - } - - matchMakingStart(req) { - if (this.ticket !== null) - return 'already matchmaking'; - if (this.match !== null) - return 'already in a match'; - - this.ticket = MatchMaker.createTicket(this, req); - - // failed to create a ticket - if (this.ticket === null) { - return 'unable to start matchmaking'; - } - - return this.ticket; - } - - matchMakingStop() { - if (this.ticket === null) - return; - - this.ticket.remove(); - this.ticket = null; - } - - setLeader(leader) { - this.leader = leader; - } - - isLeader(member) { - return this.leader == member; - } - - isMember(client) { - return this.members.includes(client); - } - - getAvgMMR() { - if (this.members.length == 0) - return 0; - return this.members.reduce((v, m) => v + m.mmr, 0) / this.members.length; - } - - get mmr() { - return this.getAvgMMR(); - } - - send() { - this.members.forEach(member => { - member.sendPartyInfo(this); - }); - } - - - getInfo() { - return { - partyid: this.partyid, - members: this.members.map(m => m.name), - leader: this.leader?.name - }; - } -} -; diff --git a/JavascriptServer/concepts/room.js b/JavascriptServer/concepts/room.js index 0c8ff3f..9f33af8 100644 --- a/JavascriptServer/concepts/room.js +++ b/JavascriptServer/concepts/room.js @@ -72,7 +72,6 @@ class Room extends EventEmitter { this.width = this.level.width; this.height = this.level.height; - // this.tree = new MyRBush(7); this.tree = new System(); @@ -163,10 +162,10 @@ class Room extends EventEmitter { let full_bundle = { cmd: 'entities', room: this.level.room_name, full: true, entities: this.full_bundle }; this.players.forEach(player => { - // we will send everything every frame to those who joined recently (so that they 100% get it) + // we will send ALL the entities data every frame to those who joined recently (so that they 100% get it) if (player.room_join_timer > 0) { player.send(full_bundle); - player.room_join_timer--; + player.room_join_timer -= 1 / this.tickrate; } // broadcast the min bundle (only changed entities) to everyone else else if (this.bundle.length > 0) @@ -189,11 +188,12 @@ class Room extends EventEmitter { } + let entity; if (client === null) { - var entity = new etype(this, x, y); + entity = new etype(this, x, y); } else { - var entity = new etype(this, x, y, client); + entity = new etype(this, x, y, client); } entity.create(); @@ -247,7 +247,8 @@ class Room extends EventEmitter { } // find a new start position else { - const p = this.level.getStartPos(this.players.length - 1); + // const p = this.level.getStartPos(this.players.length-1); + const p = this.level.getStartPos(this.players.indexOf(player)); x = p.x; y = p.y; } @@ -257,7 +258,7 @@ class Room extends EventEmitter { player.entity = player_entity; } // add to the recently joined list to receive the old entities - player.room_join_timer = global.config.room.recently_joined_timer * global.config.tps; + player.room_join_timer = global.config.room.recently_joined_timer; this.emit('player join', player); } diff --git a/JavascriptServer/concepts/validator.js b/JavascriptServer/concepts/validator.js deleted file mode 100644 index 14ed6f0..0000000 --- a/JavascriptServer/concepts/validator.js +++ /dev/null @@ -1,22 +0,0 @@ -import FastestValidator from 'fastest-validator'; - - -export function createValidator(schema) { - let v = new FastestValidator(); - return v.compile(schema); -} - -export function addValidator(cmd, schema) { - if (Array.isArray(cmd)) { - for (let _cmd of cmd) { - addValidator(_cmd, schema); - } - } - else { - let v = createValidator(schema); - global.cmd_validators[cmd] = v; - return v; - } -} - -export const Validator = FastestValidator; diff --git a/JavascriptServer/config.js b/JavascriptServer/config.js index 66124e5..95c0f84 100644 --- a/JavascriptServer/config.js +++ b/JavascriptServer/config.js @@ -76,7 +76,7 @@ const common_config = { meta: { game_name: 'Warp Game', game_version: 'v1.0.0', - warp_version: 'v6.0.0', + warp_version: 'v7.0.0', compatible_game_versions: '>=1.0.0', @@ -112,7 +112,7 @@ const common_config = { // set to -1 to disable this feature // (!!! setting to 0 might cause problems and unexpected behaviour !!!) - recently_joined_timer: 2 // (seconds) - time + recently_joined_timer: 2 // (seconds) - time after a client joins to receive ALL entity data }, party: { @@ -132,6 +132,15 @@ const common_config = { process_interval: 1 * 1000 // matchmaking: attempt to create new matches every X ms }, + db: { + path: 'mongodb://127.0.0.1:27017/', + name: 'warp-game' // by default it uses the same db name for dev/prod, but you can use separate ones + }, + + login: { + kick_other_sessions: true + }, + tps: 20, // tickrate // Disable some of the features that you don't need in your game @@ -153,7 +162,8 @@ const common_config = { necessary_login: false, // if true, won't allow a client to join any lobby before logging in - ping_interval: 5 * 1000 + ping_interval: 5 * 1000, + reconnect_timeout: 15 * 1000 // keep a "dead" client in all the lobbies after socket disconnecting, waiting to reconnect with the same account }; const prod_config = { @@ -174,8 +184,6 @@ const prod_config = { ssl_cert_path: '/etc/letsencrypt/live/example.com/cert.pem', ssl_key_path: '/etc/letsencrypt/live/example.com/privkey.pem', - db: args.db || 'mongodb://127.0.0.1:27017/warp-game', // by default it uses the same db name for dev/prod, but - // you can add a postfix at the end of the name to separate them shell_enabled: false, verbose_lag: false, @@ -197,8 +205,6 @@ const dev_config = { ssl_cert_path: '', ssl_key_path: '', - db: args.db || 'mongodb://127.0.0.1:27017/warp-game', - shell_enabled: true, verbose_lag: true, diff --git a/JavascriptServer/entities/player.js b/JavascriptServer/entities/player.js index 1158fdc..7594620 100644 --- a/JavascriptServer/entities/player.js +++ b/JavascriptServer/entities/player.js @@ -1,11 +1,11 @@ import PhysicsEntity from '#entities/physics_entity'; -export const defaultInputs = { - move: { - x: 0, - y: 0 - }, - keys: { +export function getDefaultInputs() { + return { + move: { + x: 0, + y: 0 + }, kright: 0, kleft: 0, kup: 0, @@ -14,8 +14,8 @@ export const defaultInputs = { kjump: false, kjump_rel: false, kjump_press: false - } -}; + }; +} export default class PlayerEntity extends PhysicsEntity { @@ -23,6 +23,9 @@ export default class PlayerEntity extends PhysicsEntity { static object_name = 'oPlayer'; collider_type = 'box'; + // collider_type:ColliderType = 'circle'; + // collider_radius: number = 16; + collider_origin = { x: 0, y: 0 }; collision_type = 'discrete'; precise_collisions = true; @@ -42,6 +45,11 @@ export default class PlayerEntity extends PhysicsEntity { y: 2 }; + origin = { + x: 0.5, + y: 0.5 + }; + states = { idle: 0, walk: 1 }; client; @@ -49,7 +57,7 @@ export default class PlayerEntity extends PhysicsEntity { get name() { return this.client.name; } prop_names = ['name']; - inputs = defaultInputs; + inputs = getDefaultInputs(); is_solid = true; @@ -80,11 +88,11 @@ export default class PlayerEntity extends PhysicsEntity { this.spd.x = this.inputs.move.x * this.walksp; - if (this.inputs.keys.kjump && this.grounded()) { + if (this.inputs.kjump && this.grounded()) { this.jump(); } - if (!this.inputs.keys.kjump && !this.cut_jump && !this.grounded() && this.spd.y <= -1) { + if (!this.inputs.kjump && !this.cut_jump && !this.grounded() && this.spd.y <= -1) { this.spd.y /= 2; this.cut_jump = true; } diff --git a/JavascriptServer/entities/warp_portal.js b/JavascriptServer/entities/warp_portal.js index 337e9c0..90610c0 100644 --- a/JavascriptServer/entities/warp_portal.js +++ b/JavascriptServer/entities/warp_portal.js @@ -12,6 +12,11 @@ export default class WarpPortal extends Entity { y: 32 }; + origin = { + x: 0.5, + y: 0.5 + }; + collider_type = 'box'; diff --git a/JavascriptServer/initializers/00_exit_handler.js b/JavascriptServer/initializers/00_exit_handler.js index cf179a4..32a7052 100644 --- a/JavascriptServer/initializers/00_exit_handler.js +++ b/JavascriptServer/initializers/00_exit_handler.js @@ -1,18 +1,19 @@ import trace from '#util/logging'; import chalk from 'chalk'; -function cleanup() { - // note: only synchronous operations here! +async function cleanup() { + await Promise.all(global.clients.map(c => c.save())); + trace('saved all client data!'); } -function onProcessExit(exitCode = undefined) { +async function onProcessExit(exitCode = undefined) { trace('Running onProcessExit()'); if (exitCode !== undefined) trace('Exit code:', exitCode); trace('Running cleanup...'); - cleanup(); + await cleanup(); trace('Cleanup finished.'); @@ -21,7 +22,7 @@ function onProcessExit(exitCode = undefined) { } // do something when app is closing -// process.on('exit', onProcessExit.bind({ noexit: true })); +// process.on('exit', () => trace('Exited!')); //catches ctrl+c event process.on('SIGINT', onProcessExit); diff --git a/JavascriptServer/initializers/01_globals.js b/JavascriptServer/initializers/01_globals.js index 9f94f80..b78cbfe 100644 --- a/JavascriptServer/initializers/01_globals.js +++ b/JavascriptServer/initializers/01_globals.js @@ -7,6 +7,7 @@ if (global.config.entities_enabled) { } global.lobbies = {}; global.parties = {}; +global.chats = {}; global.cmd_validators = {}; global.packet_middleware = {}; diff --git a/JavascriptServer/initializers/06_mongodb.js b/JavascriptServer/initializers/02_mongodb.js similarity index 67% rename from JavascriptServer/initializers/06_mongodb.js rename to JavascriptServer/initializers/02_mongodb.js index 3339721..a8094c2 100644 --- a/JavascriptServer/initializers/06_mongodb.js +++ b/JavascriptServer/initializers/02_mongodb.js @@ -1,24 +1,22 @@ import trace from '#util/logging'; -import { createRequire } from 'module'; -const require = createRequire(import.meta.url); +import mongoose from 'mongoose'; -const mongoose = require('mongoose'); -// import * as mongoose from 'mongoose'; const { connect, connection } = mongoose; -const url = global.config.db; + +const uri = global.config.db.path + global.config.db.name; mongoose.set('strictQuery', false); var _export; if (global.config.db_enabled) { - connect(url, {}); + connect(uri, {}); const db = connection; _export = new Promise((resolve, reject) => { db.once('open', () => { - trace('Database connected:', url); + trace('Database connected:', uri); resolve(db); }); diff --git a/JavascriptServer/initializers/07_console.js b/JavascriptServer/initializers/03_console.js similarity index 82% rename from JavascriptServer/initializers/07_console.js rename to JavascriptServer/initializers/03_console.js index 1908dd7..4140e14 100644 --- a/JavascriptServer/initializers/07_console.js +++ b/JavascriptServer/initializers/03_console.js @@ -4,7 +4,10 @@ import * as readline from 'readline'; if (global.config.shell_enabled) { trace('starting the eval console...'); - const rl = readline.createInterface(process.stdin, process.stdout); + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); rl.on('line', async (line) => { try { let result = eval(line); @@ -18,7 +21,7 @@ if (global.config.shell_enabled) { } }); rl.on('SIGINT', () => { - process.exit(); + process.emit('SIGINT'); }); trace('> type right into the console to execute JS code in real time <'); } diff --git a/JavascriptServer/initializers/05_constants.js b/JavascriptServer/initializers/05_constants.js deleted file mode 100644 index cb0ff5c..0000000 --- a/JavascriptServer/initializers/05_constants.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/JavascriptServer/initializers/08_ping.js b/JavascriptServer/initializers/08_ping.js deleted file mode 100644 index dcf3fe4..0000000 --- a/JavascriptServer/initializers/08_ping.js +++ /dev/null @@ -1,9 +0,0 @@ -const ping_interval = setInterval(() => { - global.clients.forEach((c) => { - c.sendPing(); - }); -}, global.config.ping_interval); - -global.start_time = new Date().getTime(); -global.ping_interval = ping_interval; -export default ping_interval; diff --git a/JavascriptServer/initializers/02_entities.js b/JavascriptServer/initializers/10_entities.js similarity index 94% rename from JavascriptServer/initializers/02_entities.js rename to JavascriptServer/initializers/10_entities.js index a325ad3..862e950 100644 --- a/JavascriptServer/initializers/02_entities.js +++ b/JavascriptServer/initializers/10_entities.js @@ -24,7 +24,7 @@ else { return null; return new Promise(async (resolve, reject) => { - var entity = await import("file://" + entities_dir + filename); + let entity = await import("file://" + entities_dir + filename); entity = entity.default; global.entities.push(entity); diff --git a/JavascriptServer/initializers/03_levels.js b/JavascriptServer/initializers/11_levels.js similarity index 92% rename from JavascriptServer/initializers/03_levels.js rename to JavascriptServer/initializers/11_levels.js index 00a6d1f..f9d887b 100644 --- a/JavascriptServer/initializers/03_levels.js +++ b/JavascriptServer/initializers/11_levels.js @@ -22,10 +22,10 @@ trace(chalk.blueBright(`found levels: [${filenames.join(', ')}]`)); // but still waits until everything is loaded await Promise.all(filenames.map((filename) => { return new Promise(async (resolve, reject) => { - var this_level = await import("file://" + levels_dir + filename); + let this_level = await import("file://" + levels_dir + filename); this_level = this_level.default; - var name = this_level.name; + let name = this_level.name; if (global.levels[name] !== undefined) { throw `Error: Level with the name "${name}" already exists!`; } diff --git a/JavascriptServer/initializers/04_maps.js b/JavascriptServer/initializers/12_maps.js similarity index 91% rename from JavascriptServer/initializers/04_maps.js rename to JavascriptServer/initializers/12_maps.js index 4290bcf..f39f336 100644 --- a/JavascriptServer/initializers/04_maps.js +++ b/JavascriptServer/initializers/12_maps.js @@ -16,7 +16,7 @@ trace(chalk.blueBright(`found maps: [${filenames.join(', ')}]`)); await Promise.all(filenames.map((filename) => { return new Promise(async (resolve, reject) => { - var map = await import("file://" + maps_dir + filename); + let map = await import("file://" + maps_dir + filename); map = map.default; global.maps.push(map); diff --git a/JavascriptServer/initializers/09_game_modes.js b/JavascriptServer/initializers/13_game_modes.js similarity index 94% rename from JavascriptServer/initializers/09_game_modes.js rename to JavascriptServer/initializers/13_game_modes.js index 852d3fe..9342a47 100644 --- a/JavascriptServer/initializers/09_game_modes.js +++ b/JavascriptServer/initializers/13_game_modes.js @@ -16,7 +16,7 @@ trace(chalk.blueBright(`found game modes: [${filenames.join(', ')}]`)); await Promise.all(filenames.map((filename) => { return new Promise(async (resolve, reject) => { - var gm = await import("file://" + gms_dir + filename); + let gm = await import("file://" + gms_dir + filename); gm = gm.default; // find the maps for the game mode diff --git a/JavascriptServer/initializers/10_lobbies.js b/JavascriptServer/initializers/14_lobbies.js similarity index 100% rename from JavascriptServer/initializers/10_lobbies.js rename to JavascriptServer/initializers/14_lobbies.js diff --git a/JavascriptServer/initializers/15_chats.js b/JavascriptServer/initializers/15_chats.js new file mode 100644 index 0000000..84d5203 --- /dev/null +++ b/JavascriptServer/initializers/15_chats.js @@ -0,0 +1,21 @@ +import Chat from "#concepts/chat"; +import ChatLog from "#schemas/chat"; + +// create instances of every chat from the DB +const chatLogs = await ChatLog.find({}); +chatLogs.forEach(chatlog => { + let chat = new Chat(chatlog); + global.chats[chat.chat_id] = chat; +}); + + +// create a new id=0 "global" chat if it doesn't exist already +if (global.chats['0'] === undefined) { + let chatlog = new ChatLog(); + chatlog._id = '0'; + + let chat = new Chat(chatlog); + global.chats['0'] = chat; +} + +// chatCreate([]); diff --git a/JavascriptServer/initializers/12_cmd.js b/JavascriptServer/initializers/16_cmd.js similarity index 100% rename from JavascriptServer/initializers/12_cmd.js rename to JavascriptServer/initializers/16_cmd.js diff --git a/JavascriptServer/initializers/11_matchmaker.js b/JavascriptServer/initializers/20_matchmaker.js similarity index 100% rename from JavascriptServer/initializers/11_matchmaker.js rename to JavascriptServer/initializers/20_matchmaker.js diff --git a/JavascriptServer/initializers/21_ping.js b/JavascriptServer/initializers/21_ping.js new file mode 100644 index 0000000..f5472f7 --- /dev/null +++ b/JavascriptServer/initializers/21_ping.js @@ -0,0 +1,20 @@ +import trace from "#util/logging"; +import chalk from "chalk"; + +const ping_interval = setInterval(() => { + global.clients.forEach((c) => { + c.sendPing(); + + if (!c.connected) { + c.reconnect_timer -= global.config.ping_interval; + if (c.reconnect_timer < 0) { + trace(chalk.yellowBright("Client timed out.")); + c.destroy(); + } + } + }); +}, global.config.ping_interval); + +global.start_time = new Date().getTime(); +global.ping_interval = ping_interval; +export default ping_interval; diff --git a/JavascriptServer/jsconfig.json b/JavascriptServer/jsconfig.json index e4bbbc4..dd578e0 100644 --- a/JavascriptServer/jsconfig.json +++ b/JavascriptServer/jsconfig.json @@ -14,6 +14,7 @@ "#root/*": ["./*"], "*": ["node_modules/*", "src/*"] - } + }, + "baseUrl": "./" } } \ No newline at end of file diff --git a/JavascriptServer/package-lock.json b/JavascriptServer/package-lock.json index c87429b..212fe95 100644 --- a/JavascriptServer/package-lock.json +++ b/JavascriptServer/package-lock.json @@ -1,12 +1,12 @@ { "name": "warp-server", - "version": "6.0.0", + "version": "7.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "warp-server", - "version": "6.0.0", + "version": "7.0.0", "dependencies": { "@msgpack/msgpack": "^2.8.0", "chalk": "^5.2.0", @@ -28,7 +28,6 @@ "version": "1.1.9", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz", "integrity": "sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==", - "license": "MIT", "dependencies": { "sparse-bitfield": "^3.0.3" } @@ -42,15 +41,18 @@ } }, "node_modules/@types/node": { - "version": "18.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", - "dev": true + "version": "18.19.67", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.67.tgz", + "integrity": "sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/rbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-3.0.0.tgz", - "integrity": "sha512-W3ue/GYWXBOpkRm0VSoifrP3HV0Ni47aVJWvXyWMcbtpBy/l/K/smBRiJ+fI8f7shXRjZBiux+iJzYbh7VmcZg==" + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-3.0.4.tgz", + "integrity": "sha512-knSt9cCW8jj1ZSFcFeBZaX++OucmfPxxHiRwTahZfJlnQsek7O0bazTJHWD2RVj9LEoejUYF2de3/stf+QXcXw==" }, "node_modules/@types/sat": { "version": "0.0.31", @@ -58,48 +60,45 @@ "integrity": "sha512-P4SVw79XheP1p92useDVpLYYOUQ6lpw2L7IdQz4dD23DZ8DiC1STgPOh72hjR5IZJBPQbzlICAbmjCKbwyYuxg==" }, "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/webidl-conversions": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", - "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", - "license": "MIT" + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" }, "node_modules/@types/whatwg-url": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", - "license": "MIT", "dependencies": { "@types/webidl-conversions": "*" } }, "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/bson": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.0.tgz", - "integrity": "sha512-ROchNosXMJD2cbQGm84KoP7vOGPO6/bOAW0veMMbzhXLqoZptcaYRVLitwvuhwhjjpU1qP4YZRWLhgETdgqUQw==", - "license": "Apache-2.0", + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.1.tgz", + "integrity": "sha512-P92xmHDQjSKPLHqFxefqMxASNq/aWJMEZugpCjf+AF/pgcUpMMQCg7t7+ewko0/u8AapvF3luf/FoehddEK+sA==", "engines": { "node": ">=16.20.1" } }, "node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -108,11 +107,11 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -136,35 +135,22 @@ } }, "node_modules/fastest-validator": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.17.0.tgz", - "integrity": "sha512-37U/JDP72QSFqcvNnO81f0Aeu9og+5I3mc55b2v2RbV0S2I7KvQEdBtrFeIvaYVgam1bDUgy9F9AK9HolByogA==" + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastest-validator/-/fastest-validator-1.19.0.tgz", + "integrity": "sha512-wUfJBrXmccVz4kARAiWTkuqsC6EFeqbNxwfysCDk+maExBPP8KxyBwaWtayrWjKIaBIbaz+rqI2kel6ecayxcg==" }, "node_modules/kareem": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", - "license": "Apache-2.0", "engines": { "node": ">=12.0.0" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "license": "MIT" + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" }, "node_modules/minimist": { "version": "1.2.8", @@ -178,7 +164,6 @@ "version": "6.10.0", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.10.0.tgz", "integrity": "sha512-gP9vduuYWb9ZkDM546M+MP2qKVk5ZG2wPF63OvSRuUbqCR+11ZCAE1mOfllhlAG0wcoJY5yDL/rV3OmYEwXIzg==", - "license": "Apache-2.0", "dependencies": { "@mongodb-js/saslprep": "^1.1.5", "bson": "^6.7.0", @@ -224,7 +209,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", - "license": "Apache-2.0", "dependencies": { "@types/whatwg-url": "^11.0.2", "whatwg-url": "^13.0.0" @@ -234,7 +218,6 @@ "version": "8.8.3", "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.8.3.tgz", "integrity": "sha512-/I4n/DcXqXyIiLRfAmUIiTjj3vXfeISke8dt4U4Y8Wfm074Wa6sXnQrXN49NFOFf2mM1kUdOXryoBvkuCnr+Qw==", - "license": "MIT", "dependencies": { "bson": "^6.7.0", "kareem": "2.6.3", @@ -252,11 +235,6 @@ "url": "https://opencollective.com/mongoose" } }, - "node_modules/mongoose/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/mpath": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", @@ -277,9 +255,9 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/poly-decomp": { "version": "0.3.0", @@ -289,6 +267,14 @@ "node": "*" } }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, "node_modules/quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", @@ -308,12 +294,9 @@ "integrity": "sha512-mxdv5RZJO4tdMnUURGU3gAMcnDUEwcNJwE+lPO0/V+rBeDvFLH3wEZEOR0fH7cTN0zQaNxBEbHnyQL9DzupwQQ==" }, "node_modules/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "bin": { "semver": "bin/semver.js" }, @@ -324,14 +307,12 @@ "node_modules/sift": { "version": "17.1.3", "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", - "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", - "license": "MIT" + "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==" }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", - "license": "MIT", "dependencies": { "memory-pager": "^1.0.2" } @@ -340,7 +321,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", - "license": "MIT", "dependencies": { "punycode": "^2.3.0" }, @@ -348,33 +328,29 @@ "node": ">=14" } }, - "node_modules/tr46/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "license": "BSD-2-Clause", "engines": { "node": ">=12" } @@ -383,7 +359,6 @@ "version": "13.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", - "license": "MIT", "dependencies": { "tr46": "^4.1.1", "webidl-conversions": "^7.0.0" @@ -393,9 +368,9 @@ } }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "engines": { "node": ">=10.0.0" }, @@ -411,11 +386,6 @@ "optional": true } } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/JavascriptServer/package.json b/JavascriptServer/package.json index 9d297e4..f862385 100644 --- a/JavascriptServer/package.json +++ b/JavascriptServer/package.json @@ -1,6 +1,6 @@ { "name": "warp-server", - "version": "6.0.0", + "version": "7.0.0", "private": true, "description": "", "main": "server.js", diff --git a/JavascriptServer/packet.js b/JavascriptServer/packet.js index ae542da..66ff3e5 100644 --- a/JavascriptServer/packet.js +++ b/JavascriptServer/packet.js @@ -8,11 +8,11 @@ export default class packet { * @returns {Uint8Array} pack */ static build(data) { - var dataBuff = encode(data); - var sizeBuff = Buffer.alloc(4); + let dataBuff = encode(data); + let sizeBuff = Buffer.alloc(4); sizeBuff.writeUInt32LE(dataBuff.length); - var buff = Buffer.concat([sizeBuff, dataBuff], dataBuff.length + 4); + let buff = Buffer.concat([sizeBuff, dataBuff], dataBuff.length + 4); return buff; } @@ -41,16 +41,16 @@ export default class packet { c.halfpack = null; } - var dataSize = data.length; + let dataSize = data.length; - for (var i = 0; i < dataSize;) { + for (let i = 0; i < dataSize;) { if (i + 4 > dataSize) { // a split in the size bits c.halfpack = Buffer.alloc(dataSize - i); data.copy(c.halfpack, 0, i, dataSize); break; } - var packSize = data.readUInt32LE(i); // unpack the size + let packSize = data.readUInt32LE(i); // unpack the size i += 4; if (i + packSize > dataSize) { @@ -60,7 +60,7 @@ export default class packet { break; } - var dataPack = Buffer.alloc(packSize); // unpack the data + let dataPack = Buffer.alloc(packSize); // unpack the data data.copy(dataPack, 0, i, i + packSize); i += packSize; diff --git a/JavascriptServer/schemas/account.js b/JavascriptServer/schemas/account.js index 1c8aae9..4d8139e 100644 --- a/JavascriptServer/schemas/account.js +++ b/JavascriptServer/schemas/account.js @@ -1,78 +1,17 @@ // this section contains a schema for saving players' account info -import trace from '#util/logging'; - -import mongoose from 'mongoose'; -const { model, Schema } = mongoose; -import { hashPassword, verifyPassword } from '#util/password_encryption'; -import { Names } from '#util/names'; +import { model, Schema } from 'mongoose'; // you can edit this schema! const accountSchema = new Schema({ username: { type: String, required: true, unique: true }, password: { type: String, required: true }, - // you can add additional properties to the schema here: -}, { collection: 'Accounts' }); - - -// logging in/registering stuff -accountSchema.statics.register = function accountRegister(username, password) { - username = username.toLowerCase(); - - return new Promise(async (resolve, reject) => { - if (!Names.isValid(username)) { - reject('failed to register'); - } - - var account = new Account({ - username: username, - password: await hashPassword(password), - - // you can add more stuff below (you'll also need to define it in the Account Schema above) - }); - - account.save() - .then((acc) => { - resolve(acc); - }) - .catch((err) => { - trace('Error while registering: ' + err.message); - reject('failed to register'); - }); - }); -}; - -accountSchema.statics.login = function accountLogin(username, password) { - username = username.toLowerCase(); + // you can add additional properties to the schema below + // if using TypeScript - (don't forget to also update the IAccount interface): - return new Promise(async (resolve, reject) => { - Account.findOne({ username: username }).catch((err) => { - if (err) { - trace(err); - reject('error while logging in'); - } - }).then(async (account) => { - if (!account) { - reject('account not found'); - } - else { - if (await verifyPassword(password, account.password)) { - if (global.clients.some(c => c.account?.username?.toLowerCase() === account.username.toLowerCase())) { - reject('account is already logged into on another session'); - } - else { - resolve(account); - } - } - else { - reject('wrong password'); - } - } - }); - }); -}; +}); -export const Account = model('Account', accountSchema); +export const Account = model('Account', accountSchema, 'Accounts'); export default Account; export function getAccountInfo(a) { @@ -80,6 +19,7 @@ export function getAccountInfo(a) { return null; return { + id: a.id, username: a.username }; } diff --git a/JavascriptServer/schemas/chat.js b/JavascriptServer/schemas/chat.js new file mode 100644 index 0000000..b54b5dd --- /dev/null +++ b/JavascriptServer/schemas/chat.js @@ -0,0 +1,33 @@ +// this section contains a schema for saving players' account info +import { model, Schema } from 'mongoose'; + +// for some reason trying to msgpack.encode message with ObjectId leads to a circular reference (???) +export function messageSerialize(msg) { + return { + name: msg.name, + content: msg.content, + profile_id: msg.profile_id?.toString() + }; +} + +const messageSchema = new Schema({ + profile_id: { type: Schema.Types.ObjectId, ref: 'Profile', required: false }, + name: String, + content: String +}, { _id: false }); + +// you can edit this schema! +const chatSchema = new Schema({ + _id: { type: String, unique: true, index: true }, + + private: { type: Boolean, default: false }, + type: { type: String, default: 'group' }, + messages: [messageSchema], + members: [ + { type: Schema.Types.ObjectId, ref: 'Profile' } + ] +}); + + +export const ChatLog = model('Chat', chatSchema, 'Chats'); +export default ChatLog; diff --git a/JavascriptServer/schemas/friend_request.js b/JavascriptServer/schemas/friend_request.js index 6923255..bb92001 100644 --- a/JavascriptServer/schemas/friend_request.js +++ b/JavascriptServer/schemas/friend_request.js @@ -1,5 +1,4 @@ -import mongoose from 'mongoose'; -const { model, Schema } = mongoose; +import { model, Schema } from 'mongoose'; import Profile from '#schemas/profile'; const friendRequestSchema = new Schema({ @@ -8,7 +7,7 @@ const friendRequestSchema = new Schema({ }, { collection: 'FriendRequests' }); friendRequestSchema.statics.findIncoming = async function (profile_id) { - return await (await FriendRequest.find({ receiver: profile_id }).populate('sender')).map(req => req.sender); + return (await FriendRequest.find({ receiver: profile_id }).populate('sender')).map(req => req.sender); }; friendRequestSchema.statics.findOutgoing = async function (profile_id) { @@ -16,7 +15,7 @@ friendRequestSchema.statics.findOutgoing = async function (profile_id) { }; friendRequestSchema.statics.findRequestId = async function (sender, receiver) { - return (await FriendRequest.exists({ sender, receiver }))._id; + return (await FriendRequest.findOne({ sender, receiver })).id; }; friendRequestSchema.statics.requestExists = async function (sender, receiver) { diff --git a/JavascriptServer/schemas/profile.js b/JavascriptServer/schemas/profile.js index 524f08c..fe1bb48 100644 --- a/JavascriptServer/schemas/profile.js +++ b/JavascriptServer/schemas/profile.js @@ -1,52 +1,36 @@ // This schema is for profiles -import mongoose from 'mongoose'; -const { model, Schema } = mongoose; +import { model, Schema } from 'mongoose'; // this holds the state of the profile // you can edit this schema! const profileSchema = new Schema({ - account_id: { type: Schema.Types.ObjectId, ref: 'Account' }, - name: { type: String, unique: true }, + account_id: { type: Schema.Types.ObjectId, ref: 'Account', index: true }, + name: { type: String, unique: true, index: true }, online: { type: Boolean, default: false }, last_online: { type: Date, default: Date.now }, friends: [{ type: Schema.Types.ObjectId, ref: 'Profile' }], + chats: [{ type: String, ref: 'Chat' }], // chat ids are strings mmr: { type: Number, required: false }, // matchmaking rating state: { - lobbyid: String, - room: String, + lobby_id: { type: String, required: false }, + room: { type: String, required: false }, x: Number, y: Number, - //hp: Number + state: Number } // you can add additional properties to the schema here: -}, { collection: 'Profiles' }); +}); -export const Profile = model('Profile', profileSchema); - +export const Profile = model('Profile', profileSchema, 'Profiles'); export default Profile; -export function freshProfile(account) { - return new Profile({ - account_id: account._id, - name: account.username, - mmr: global.config.matchmaking.mmr_starting, - - state: { - lobbyid: '', - room: '', - - x: 0, - y: 0 - } - }); -} // like profile, but only the data that is useful for sending export function getProfileInfo(p) { @@ -61,7 +45,3 @@ export function getProfileInfo(p) { mmr: p.mmr }; } - -export async function getProfileByName(name) { - return await Profile.findOne({ name }); -} diff --git a/JavascriptServer/schemas/session.js b/JavascriptServer/schemas/session.js new file mode 100644 index 0000000..e045f79 --- /dev/null +++ b/JavascriptServer/schemas/session.js @@ -0,0 +1,10 @@ +import { Schema, model } from 'mongoose'; + +export const SessionSchema = new Schema({ + token: { type: String, index: true }, + account_id: { type: Schema.Types.ObjectId, ref: 'Account' } +}, { timestamps: true }); + + +export const Session = model('Session', SessionSchema, 'Sessions'); +export default Session; diff --git a/JavascriptServer/server.js b/JavascriptServer/server.js index 2c92ea4..f01780f 100644 --- a/JavascriptServer/server.js +++ b/JavascriptServer/server.js @@ -3,7 +3,7 @@ import { createServer } from 'net'; const port = global.config.port; const ip = global.config.ip; -import * as ws from 'ws'; +import { WebSocketServer } from 'ws'; const ws_port = global.config.ws_port; import * as http from 'http'; @@ -29,10 +29,10 @@ const __dirname = dirname(fileURLToPath(import.meta.url)); const init_files = fs.readdirSync(__dirname + '/initializers', 'utf8'); // synchronous loading, because order matters -for (var i = 0; i < init_files.length; i++) { - var file = init_files[i]; +for (let i = 0; i < init_files.length; i++) { + let file = init_files[i]; trace(chalk.blueBright('loading initializer:', file)); - await import("file://" + __dirname + '/initializers/' + file); + await await import("file://" + __dirname + '/initializers/' + file); } trace(chalk.blueBright('loaded initializers!')); @@ -47,40 +47,43 @@ trace(chalk.greenBright(`Running ${config.meta.game_name} ${config.meta.game_ver const server = createServer(function (socket) { trace(chalk.blueBright("Socket connected!")); - var c = new Client(socket); + const c = new Client(socket); global.clients.push(c); // add the client to clients list (unnecessary) c.ip = socket.remoteAddress; // Bind functions on events - - socket.on('error', function (err) { - if (err.message.includes('ECONNRESET')) { // this is a disconnect - trace(chalk.redBright('Socket violently disconnected.')); - } - else { - trace(chalk.redBright(`Error! ${err}`)); - } - }); - - // When data arrived - socket.on('data', function (data) { - // create artificial_delay - if (delayReceive.enabled) { - setTimeout(function () { + c.bindTCP = (socket) => { + socket.on('error', function (err) { + if (err.message.includes('ECONNRESET')) { // this is a disconnect + trace(chalk.redBright('Socket violently disconnected.')); + } + else { + trace(chalk.redBright(`Error! ${err}`)); + } + }); + + // When data arrived + socket.on('data', function (data) { + // create artificial_delay + if (delayReceive.enabled) { + setTimeout(function () { + packet.parse(c, data); // handle the logic + }, delayReceive.get()); + } + else { // just parse normally packet.parse(c, data); // handle the logic - }, delayReceive.get()); - } - else { // just parse normally - packet.parse(c, data); // handle the logic - } - }); + } + }); + + // When a socket/connection closed + socket.on('close', function () { + c.onDisconnect(); + + trace(chalk.red('Socket disconnected.')); + }); + }; - // When a socket/connection closed - socket.on('close', function () { - c.onDisconnect(); - global.clients.splice(global.clients.indexOf(c), 1); - trace(chalk.red('Socket closed.')); - }); + c.bindTCP(socket); }); server.maxConnections = config.server.max_connections; @@ -106,7 +109,7 @@ if (global.config.ws_enabled) { http_server = http.createServer({}); } - const ws_server = new ws.WebSocketServer({ + const ws_server = new WebSocketServer({ server: http_server, clientTracking: true, maxPayload: config.server.max_ws_payload, @@ -115,40 +118,42 @@ if (global.config.ws_enabled) { ws_server.on('connection', function (socket, r) { trace(chalk.blueBright("WebSocket connected!")); - var c = new Client(socket, 'ws'); + const c = new Client(socket, 'ws'); global.clients.push(c); // add the client to clients list (unnecessary) c.ip = r.socket.remoteAddress; // Bind functions on events - - socket.on('error', function (err) { - if (err.message.includes('ECONNRESET')) { // this is a disconnect - trace(chalk.redBright('WebSocket violently disconnected.')); - // handle disconnect here - } + c.bindWS = (socket) => { + socket.on('error', function (err) { + if (err.message.includes('ECONNRESET')) { + trace(chalk.redBright('WebSocket violently disconnected.')); + c.onDisconnect(); + } + + trace(`Error! ${err}`); + }); - trace(`Error! ${err}`); - }); - - // When data arrived - socket.on('message', function (data) { - // create artificial_delay - if (delayReceive.enabled) { - setTimeout(function () { + // When data arrived + socket.on('message', function (data) { + // create artificial_delay + if (delayReceive.enabled) { + setTimeout(function () { + packet.ws_parse(c, data); // handle the logic + }, delayReceive.get()); + } + else { // just parse normally packet.ws_parse(c, data); // handle the logic - }, delayReceive.get()); - } - else { // just parse normally - packet.ws_parse(c, data); // handle the logic - } - }); + } + }); + + // When a socket/connection closed + socket.on('close', function () { + trace(chalk.yellowBright('WebSocket disconnected.')); + c.onDisconnect(); + }); + }; - // When a socket/connection closed - socket.on('close', function () { - c.onDisconnect(); - global.clients.splice(global.clients.indexOf(c), 1); - trace(chalk.yellowBright('WebSocket closed.')); - }); + c.bindWS(socket); }); ws_server.on('error', function (err) { diff --git a/JavascriptServer/types/bbox.js b/JavascriptServer/types/bbox.js deleted file mode 100644 index cb0ff5c..0000000 --- a/JavascriptServer/types/bbox.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/JavascriptServer/types/client_properties.js b/JavascriptServer/types/client_properties.js deleted file mode 100644 index cb0ff5c..0000000 --- a/JavascriptServer/types/client_properties.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/JavascriptServer/types/point.js b/JavascriptServer/types/point.js deleted file mode 100644 index cb0ff5c..0000000 --- a/JavascriptServer/types/point.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/JavascriptServer/types/socktype.js b/JavascriptServer/types/socktype.js deleted file mode 100644 index cb0ff5c..0000000 --- a/JavascriptServer/types/socktype.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/JavascriptServer/util/auth.js b/JavascriptServer/util/auth.js new file mode 100644 index 0000000..7fbbcb3 --- /dev/null +++ b/JavascriptServer/util/auth.js @@ -0,0 +1,155 @@ +import Account from '#schemas/account'; +import Profile from '#schemas/profile'; +import * as crypto from 'crypto'; +import { Names } from '#util/names'; +import Session from '#schemas/session'; + + +// these can be slow and should ideally only be called from async functions +export function hashPassword(password) { + const salt = crypto.randomBytes(16).toString('hex'); + const derivedKey = crypto.scryptSync(password, salt, 32); + const result = salt + ":" + derivedKey.toString('hex'); + + return result; +} + +export function verifyPassword(password, _hash) { + const [salt, hash] = _hash.split(':'); + const hashBuffer = Buffer.from(hash, 'hex'); + + const keyLength = hashBuffer.length; + const derivedKey = crypto.scryptSync(password, salt, keyLength); + + return crypto.timingSafeEqual(hashBuffer, derivedKey); +} + + + +export function sessionCreate(account) { + const token = crypto.randomBytes(16).toString('hex'); + + return new Session({ + account_id: account.id, + token: token + }); +} + +export function profileCreate(account) { + return new Profile({ + account_id: account.id, + name: account.username, + mmr: global.config.matchmaking.mmr_starting, + + state: { + lobby_id: null, + room: null, + + x: 0, + y: 0, + + state: 0 + } + }); +} + +export function accountCreate(username, password = '_', temporary = true) { + if (!temporary) { + password = hashPassword(password); + } + else { + password = '_'; + } + + return new Account({ + username, + password, + temporary + + // you can add more stuff below (you'll also need to define it in the Account Schema above) + }); +} + + +export async function getProfileByName(name) { + return await Profile.findOne({ name }); +} + +export async function profileRename(profile, new_name) { + if (!Names.isValid(new_name)) { + throw 'invalid name'; + } + if (await Profile.exists({ name: new_name })) { + throw 'name already taken'; + } + + profile.name = new_name; + return await profile.save(); +} + + +// logging in/registering stuff +export async function accountRegister(username, password) { + if (!Names.isValid(username)) { + throw 'invalid username'; + } + if (await Account.exists({ username })) { + throw 'username already taken'; + } + + const account = accountCreate(username, password, false); + return await account.save(); +} + +export async function accountActivate(account, new_username, password) { + if (!account.temporary) { + throw 'account not temporary'; + } + if (!Names.isValid(new_username)) { + throw 'invalid username'; + } + if ((await Account.exists({ username: new_username }))._id !== account._id) { + throw 'username taken'; + } + + account.username = new_username; + account.password = password; + account.temporary = false; + + await account.save(); + + return account; +} + +export async function accountLogin(username, password) { + const account = await Account.findOne({ username }); + if (!account) { + throw 'account not found'; + } + if (account.temporary) { + throw 'account is not activated'; + } + if (!verifyPassword(password, account.password)) { + throw 'wrong password'; + } + + return account; +} + +export async function sessionGet(session_token) { + const session = await Session.findOne({ token: session_token }); + if (!session) { + throw 'session does not exist'; + } + + return session; +} + +export async function sessionLogin(session) { + const account = await Account.findById(session.account_id); + if (!account) { + throw 'account does not exist'; + } + + return account; +} diff --git a/JavascriptServer/util/entity_functions.js b/JavascriptServer/util/entity_functions.js deleted file mode 100644 index 98c372f..0000000 --- a/JavascriptServer/util/entity_functions.js +++ /dev/null @@ -1,6 +0,0 @@ - -export function entityExists(entityType) { - return global.entities.includes(entityType) - || Object.keys(global.entity_objects).includes(entityType) - || Object.keys(global.entity_names).includes(entityType); -} diff --git a/JavascriptServer/util/logging.js b/JavascriptServer/util/logging.js index e4d924a..485d5b6 100644 --- a/JavascriptServer/util/logging.js +++ b/JavascriptServer/util/logging.js @@ -5,9 +5,9 @@ const dummy_function = () => { }; const styling_regex = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; function trace(...strs) { - var str = ''; + let str = ''; - for (var i = 0; i < strs.length; i++) { + for (let i = 0; i < strs.length; i++) { let s = strs[i]; if (typeof s === 'undefined') { str += 'undefined'; diff --git a/JavascriptServer/util/names.js b/JavascriptServer/util/names.js index 8774e2b..d1018ca 100644 --- a/JavascriptServer/util/names.js +++ b/JavascriptServer/util/names.js @@ -11,6 +11,8 @@ export class Names { if (name.startsWith('guest')) { return false; } + if (name === 'system') + return false; return true; } @@ -18,8 +20,13 @@ export class Names { static guest_counter = 1; static getDefaultName() { - let s = (this.guest_counter++).toString(); - s = '0'.repeat(3 - s.length) + s; - return 'Guest' + s; + // let s = (this.guest_counter++).toString(); + let s = Math.floor(Math.random() * 1000000).toString(); + s = '0'.repeat(6 - s.length) + s; + return 'guest' + s; } + + static next = this.getDefaultName; + static get = this.getDefaultName; + static generate = this.getDefaultName; } diff --git a/JavascriptServer/util/password_encryption.js b/JavascriptServer/util/password_encryption.js deleted file mode 100644 index e79eba9..0000000 --- a/JavascriptServer/util/password_encryption.js +++ /dev/null @@ -1,27 +0,0 @@ -import * as crypto from 'crypto'; - - -export async function hashPassword(password) { - return new Promise((resolve, reject) => { - const salt = crypto.randomBytes(16).toString('hex'); - crypto.scrypt(password, salt, 64, (err, derivedKey) => { - if (err) - reject(err); - resolve(salt + ":" + derivedKey.toString('hex')); - }); - }); -} - -export async function verifyPassword(password, _hash) { - return new Promise((resolve, reject) => { - const [salt, hash] = _hash.split(':'); - const hashBuffer = Buffer.from(hash, 'hex'); - - const keyLength = salt.length == 16 ? 16 : 64; // legacy passwords with salt length 8 & key length 16 - crypto.scrypt(password, salt, keyLength, (err, derivedKey) => { - if (err) - reject(err); - resolve(crypto.timingSafeEqual(hashBuffer, derivedKey)); - }); - }); -} diff --git a/JavascriptServer/util/random_id.js b/JavascriptServer/util/random_id.js new file mode 100644 index 0000000..a7e9229 --- /dev/null +++ b/JavascriptServer/util/random_id.js @@ -0,0 +1,19 @@ +import { randomInt } from "crypto"; + +export function getRandomId(avoid_keys = {}, digits = 6) { + let id = ''; + let a = Math.pow(10, digits - 1); // 100'000 + let b = Math.pow(10, digits) - 1; // 999'999 + + if (Object.keys(avoid_keys).length >= b / 2) + return null; + + + // get a random id, without collisions + while (id == '' || id in avoid_keys) { + // a random k-digit number + id = randomInt(a, b).toString(); + } + + return id; +} diff --git a/Release/GMClient.zip b/Release/GMClient.zip index 6adb3a28a3a42b624e029ceb4a97b41a6e3b080c..57a3dd7ff374f9cfc7134f87086ad6e3e8242df8 100644 GIT binary patch delta 30146 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 delta 27675 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
6Q9wkjiZ8_20Zk;CV~f8eauab5PbbhB}H zHFvZ@4t?Y5z@=gm#dZHLoYch$ki}PI^4sGIdT)*b@QX1=E=YPNW^31fH1H*9d3814 z#(CVyPQ9V-N+VXGXb(|Qn4snNl>oiv4je?DP-LGw$*OX%kYVtR%_faYz^|tG!{NLw zQp!uc;5g`t75pAmr6MGqGMJ6~^X>OieYqR@UTF*~TtoBc-__|SGz+7jgwKBXsn3@)J`t=J=VW_jZByr!To?x_1pa)wnEE;7lm>8K6;I;Knz0 z6cBZ>*El5zlm$+kQJw*MgAaVbp#~1d2~g#E{|yG+JP-7L<3i!-WbiG%0`Vfixr4KK z9E1R4KPw6-RXSBR3?xho7V9jV2Sk8XKO2g0L_Z8#K?-E|Ga4be{vRGtOS{Lt`i9E2VTf%hm(W|R3HbmNN53x0Rj|TK28cGdLZxBpkoZu z{3js-XUKsK5=y{tfItz+i^M}NPC5{f5!ByVKu565NJX9S^51#_A_ibk1Qn1yz=|qr z8~FH)8dw}SE;-2{3|f5w;2XTii_FdO`ej2~Ft>h?t+Qsq4Tf@_<_2tzQ=!Un$M_Zk z2SkWRiuj*WAg!Pd2JleRfm1za%m$bQGlb9sM}sUV{MaPkjxeB#wlM;O`mq9pqsNbzMq$ukHb8BZ9+gwEn~@t0 zn3EyMDRNT&Bq0Ke*#Py6FkUoH4W%!SxOjn3@!)mVb|Dvm&e3Dr#mQl6M*^jQ7cw5> zBq0KGF9OP(jQ^q;Dv#)ZE91vnKf9~&ggUayhCBiH7&4(GQqQZc)d2qH51Pi=W+yEM zn4D%t0qu5nG$0Kh8IW|gRsyjA^9%zD=${>0U|G%@ym1_0KEsZZ*dJFT2XBxHvaTWf z{F8(Te3JlyoJJS&3;GKFhsZKHGMs!s9As~H7G3@68T8A(m(kJ9ko8R|YY~Yb^)LL5 zv-oy)mgx8(`q@1*AdSBX5txt&?x5jA$pL*^#VJrx5>PnHc`OICtqZ3>A<5{G^#8k& z0o@qTWAIPuKtSK}KO^!1?|D+x2niJw4ou8an&du5gZnd{{{mBa?7Bv@tqc`l?Msda$DYJG2v6yd0_K#wl!=lMF!mg zo0HT4;}WfSOa%m@qa>%Op>)aB2HjpxBVo|HL}%dk60-?1r?b%-C%hod_we263f%wG z=b|t9pP(ZGH-M5QPDW$~r%S`=O#A}&mzYr|ioWo7N=LKyl!?=2K=gv1uBD-i>&izE z-`3OD*7M)SWk>>Fss!{`s4$oS*A)(w6O2A>d&&uCfMW%~hBRQWYnI%#$(ZDG*lwe~dV_)Udz-3Hh$6C@@n1 delta 42406 zcmZ^~b8uzdw>BDdY=z+yzlwWz32DUxw~pst+i|Z zF~;+ZHRjMv*#h6*0FQMA$4Zi_^*99scL0+Fnu1dye!Xk$Jb^r(f`EWvg8|dPaR7y} zlh*xA$U#>>!>wS$;31-NEnQ?Sn;iD}c|3mjv>OtH|#cXww(p{fNMAk_|s08l;ZU`P^p^LJ5yO1O}Ln4@86Iu%S?!Yi3idMGrP@&{lOf@k&Vs0Rn_bX7+WG>*}sRD#bNAj;BM6f^Ky z{8K;u10RpMVjml_g2;s(7al{&8P3ld%yqlH)ceQ8V^h`P#3AAqLh9*W zbg0L1hVfJUkRi=J<5GL@Qq}Li9fSq6U7(7x;NQ?eK%k*P{=q>`pe_~!6dD917z_ji z69ibb@*Ut8H*O!uge?B_5l*f5jVzgJov7}z4xp&jL~Z{TPiUt!(5>MP7Q|MHbv%{v zr=3Ye>kn9lKhvWO8*rl+I+GPP+@fryX?mPfB!&+i0Trk~uH>#{g6v!_b?i4w6qMBD zY(kFR0&eZz!|>k;selF2TXE0WIn}IxH>hv^5fUzo5%R;_x^Fj{wiw%4fszDc-cWs zc4)vm*neWQC~a1k1_}aV2nhm$^<^_AcBYJ$M)sz*X3j2*=FV1T_NFcj)-Ht!n?L%Q z;DfJT(aohQ5{sOtzoCkVI6~kcF^MIw1OKV_}EUkRNr33%Ed0f0#P@fv0~1$=TQR?qX|;CD&oD;~JJlf;PKl!e0o3dfyM!d+uLi-23A=h!|dk(!@kT!75 z+?s@T=OZ7WZ!9+1J+^4L~mg7V$&5)jyGuDdqYA2z`HS0lDk_$#dnbZWK>)v{2Bd= z(Ntg$EIuGs-oB3sIrxctFqQ#TR*6d};gV)H9D*|x@3SYNSE5N2H+Q2m9GqN4)%G;= zXwv6ya%b04&!5$iT4O^>84+@3ih#%u1*&ypaPN0SC#+TCPGh$1`lG}4abPxf1^?V3ZJb{&$n+sIdm zxImKnEq5UqC}>`GH&Y19ANsY_E}{N{{{dM22OKNtzkZXcLJuV43poG;uoo5$;ArIR z>h)#&m8$D915C(%R~nJDE%XVOPzk5NoV*=IQ($RyI)!W+L-={OY|)9h9wY4|aqL8@ z%b_zByUrP3M}Xp~%=g0CUIJ?iT+NIziAsX!8~qW47xB~?|83YK1BUFw0~|Y06W~nEe9*@IN#6 zynVHoQf}^$s6WbJ&7Yi>Jl-&KS37z^(J)^T6Ni5t?&xt!19suWFSNhAbzFTIhJ)g> zcRSIh;(PI(FPl_gh)AXgQ1pGSvIy3H%rVKKU-Zo=0Mcx-aKT9jL$uY)yYNi-7n)eD z52HE%gG?>O7U;Bp+&vl)6^RL9)o8_N)4#IETR|;V9jJhW4H#paLhAslE_2vW$Kl7z zeVpof;58~+hFjblb@|1Ao|>R24qYwsl7OHRfG7?z2Sm-MR3c81DO z6U<=hZ=m-aWiN>9t59<+rGIb7gC1d1b`K;+;Q*mQ|*(G8@Z30D|>MY}A0kkyKu zm+Z*Ws&n7OF!qDB=wqPiPJu`zQ%$Nm;}H+5i?qpRD&Wn*-dy>6IXbA_1MWNA3$G3@ zN6t{MI&FIEhZMo>K_1gKqY`)iOodrf(qB4<~>VbL=qVoBpV;6}zijQ>N?xVYk* znWU2TEbTGR!ZO&EfrYlau834{q#-LQQ|^Au`+m0d#i`nmVIfzpfd34GVHrzH3x@x4 z5P?9zA>dbzbo$-^f|Lh;a_#ILepoi#kGERCyd2TM8hufTywO|MFe8vX8x-+!Wqm^t zB_pCMM7nIA7$DlI|0h22;%(DM?HwN0jZNDPj@iLmna$Ddme%Opi|5FAl3;Fo^RbhP za<@0Z7;tj$C)x$((>42+g1%G%l-UmmG1Wz34!v*9$be0Bh`lV1f{A;GK^kMaG=Y?= zZ)W7<x#c^|=8n5DBK z*hMVy2JQ=|6~V7Fm!?K{p=9O(6YOj5O?5)7;J$e&Ndzg2IbnG{R4r<_@yQha=%QVN*yJJXEo>AA;3lSNw3E&f7H!M0 zY40+KhfNqen7)I1*|o#``i8KZbbFZyJw?F%X*e?8p5jn8|10717mf|w03u%Rv!8c2 z$2C~{Mt8qp`;YZ*puy2!#&fVUqOwirxk4k1dayI-vQ6zgJB<1ZWVEjTJhXuQm|Oqg zRbPNb4EpcG$ah;%gnxoKfu0QxlP~1vfxAEl@ns?b7i(T zGQ{w|+aa~JCYwnF?ywz%(^w8->(q9&f9lp&yQ-9I76Swl>=JPd3UEmdTS22}!td0- zM>wUb)$M1pm!8cc5T96!*Yv3jv)M4)7Qb*+qgE)_&5&oRtFO8Y1H&c}x~Pcb@-NM- z0KxI08~TyIK>Yo%h9)Jz$C}23^l&N3$@Hf2R^P}Z?X%4)^S+yO5Su8jD08aAdEwPA zXJC`N$RHVQR=*9%`jq=dVMB0JA*{|I?rV?|(B7qd8rxc7$*^aPqP%LK#A~!J@^|;Y zB-JAkICc$1hT)-EQ-zubbnrqUWqHNFT06t6c%RXj1FkXVw%R+d**`K*?uWaSq0rEV z2%~o>+CLVkerPXE&czA-O#X9EB>zs40tz(LuD?^je!+ES%7Y!|n%($KRTfK3Y~zM- zvr-bkJ}SQd5#ZDk^?>%DwmgN)_g_>X;B$cj{-J`-0j>!tO1r!iU1mF?X<(KvJE)+NYpl1WUD>VxbiC3ofma1d)!07P(g z$(WMgDa&yCpNVStPXvQG3ZqEyaf z)ET+^-{_4vb77Xvtk1;KukG;8W6kS)AV3#CsAo3G&?|R--`>8~-J^%IKHqu92S|A~ zGI%Ggap_my_>STS#p4YCxV9LCB>%k9Nxla=YvdE^^`8X270T0{QmjU8M1VOm!T}xe~Wq84KcCLT&cJVNN?de1K8eNvAG8_ z!MRvsvbgskYBk9*BUxCil^*=4c{=cbm^>Q?GVf^p? z(EskoRH7^L`Pw)BwQ&EJ{Qwt6BR5w|22%!Cm&EZ}*uF34waXvt!L=YR?C1bx&@(C^ zEM+f}(;1hJt0=Rj$K&dFA9-{Hw~s{`)ELx+{2OS{Ux^x`r4tFxVFN-`A1`(Ub2l5^ z-~go{(@HbiS~jmPshT)(0!yp`w;l6`rSHb#WiTe5<&(UfeG|vK8xT&_B%pN%@t;zc ze?KGl|B|-mYvKPdQoAskxVgAG*!?TET68;X&{yX7D)h07n!Y)vKVEr``4&K&Dnx`7 zWl?;$5a@Os}xKZX`>I2GoCBeLaAhEJ-xMEoD)5(lJe$ zqFAoZ*rZE;f(%gyL9TOrFvY&>Cvd$$z1%4_EhVpFloaXzjCukYd-b%DFE3jBe;N8O z#1BEyrE|Vye*Ibm|Eui(oqhd-IY2MwAJCD1KM8H^7UP!@xjJ~{rmrZ8i8#*+0T;;d z3+^`y8!#S{c>iAVey}z@5gUoQ!0M+*BWi{WS;fHcct+60+zP7?)EOA6yA(;elOR`U zh)Pm9Td84>mU19yV}0ia2l;~vK~I*ux$^rkE!c!+^3rs}qOQBjkTFGuVI%vHYb~)|a~=`d_uPFtRfo4VtMeNyyeT%VvZ+*vf+ZPXnxbB zFvhss0*-tDfsB*8ax8c2^>f~i#8kAPhRsuk>qs~Q8K zaqblQN6B_!i|oz+IOhKOEZOwjbQ`|lDEfj0?|+5G*1_1=>t9HsqPt#8-|p z0AaWQAG{2m3>rWG6kQpa32D?|W#6Z~JtFj*q1T_=g!2#kqzem8gfm$@QjGB#0|LMM zrnVbQ!$hotC6A>LFf9sH#D$8}xGXdKlF30phQ#l+rGm`oIjp)?YtT1GTWn#DZ0-{K zr6dvoD^OiZL-?72k|-l;cp~>horve`fN+$UO>WCuRJFle@;a&w;jMZNlD*X%&SERG zC?3|Opp=V;Fmg26pZ{qFYQLfD|Iydu|5xAtO0xbj@u-+y*Z?8q-&X-wO#8y%xv$>W zx~`$V0d^i79IgO~C8f~gP0_)?xEVZ)uFuc!+YNZ%7xXeQE5%%Kh94St}pY)A!Mg5wnd1F@(`31I2!ll;DrrH(3Ncl`i8gQ7?Q1v7;h7E4oH1Ec(B zhJA)vqfNTM0Ix6=UQuL?)+=fg2KBjHxD)tM6DWvO0oANm(0k_QEXy+37))XQ$dC(m zW|2UCa29udJ||rChkHz7wOF8+drf6Jlx34L9+L(&wayE5NTK-$}Xt zJNFAJoob?3Kkv?7*_wrqU^mkEVN>e*;r~@tnze>Gp#F*yG+;nLkpG9BtGK$En|}of zo$9^O>m10Pue4bxMDdu>LHf&%vmEp@qOj=ljN&+SR8C~fxl)0mgUs-sKEg6h{5H1%n*+}l7%UEDg6ii6Or{Ir6TDiIQA4<@rTs6QS+AebM?xZ z?BU73f?AB25qTiMxP8T^qT4YX337Ou0L&~rnp}42`wBVmCVYNX?YJ8+$JctbBI$bn zJa}!Rf}(AcjW@J@o^x&I`(QjNRse#>$~r;iUy<+rhT{sVUix&$XR#%i6P^kZT~B^` ze`-Md|Eg?k4$@vK!m6uHyx;GKR66GM3#YuJD0?#7qu;c-jH%!dSdbcPmPxEx>cD1d zEG?9ccAkcI9yh%SNhGA1{ss>RgZk^^8d+&b0i#|-@;9kxzYk^=?nrvi6B2+#`)z`s zObtSRKVS_&5k5VEuk1UrS%-DWYVJt&+vIs~eRLT^b{TR55V58mdLH<1V~| z*d3lF&Wq%{Lou4u^XJ4aXWp@7h_lB|NSv`Wk6_CGk{t?o+=>o%eWH+a^F3-E);T5FyRWJtf#tU*U zHVDXX!QOf7&9WMKPTqRm&tQ`>1d&P&qVUNj&6tPuj32O!R-N8KstpgDLhU^jJY3-sdbr`MdK&`G+Lk4L~W{0s1o_ zVNae0cR%MEsa%JtZW&ul+WGJmg1~yKnEjCiwSYz=36buaI2Uf6c*5wnb6Xed<;c)zYs@~<|949L z1K;vWtA+EImx=>oQBVT>e%z>FV-B9h+8DRQ@p~Kg$>hL#yTDL`*v$s?I1yM^magGB!P- z60@jOa;U7Rs0b2aR-{Q?f|ZPJc34>MvS_XC0{TDBuYZuJjlq=$K?DKG7X$(MH*IjR zH!*W`bzuaU*nYJFT)$lR1+HGqI>#-4w=t$i==nlzvxB&=eOgS>is&4=G}6-yCZq<= zdWTejsB$|q$Lltds4^yZ$*m!`KFN6p>)=`b_y|_3pnvP+@KP=!?j-&53`9$$nsc}(O-eEXa((aY@CxEwY&*!Bv2*O-!WXrmfjZXVf-V-B;Jce=5 z>L7Rl5%XKWB`4pN{J{NJv-rg1eOUSqw@7AKhk^=iDRMJ*$iHZ99WQvhGt$M42IKE;eggz zzYc}7Nl3K__u(;w-Xe(iQd20^ZMc5$sJwSCRpGoU25=G|h9*!VY=?Kk(ZRKASd5CD z-Q}h7XUH!8kPsmgO%NAz^^|<317hhDu-mq{-Q1Q$Q#;+?r<1Y&v zo;AKk9Q9QUa3H|+9Y^3I|1DgK(HGJv;V(~Jn6@GrV!{#(b^Y-C{Ic<$4w#DawYdpe z@F}Ugv#oNBnUL%H6*7C=Ay&)YPVI})`2*TGWWDBy-~~O?{djs~B>5I+k+q1qH2EWF zTar0EuE2&^Z$l2J?_80TDfs@|?X6%6E`s?mJoY*hgMVTnenl({LsNQNPyjZj$^`_i zjmc+tL{#K2pWJZ&=88VQQ2-*ds{;;}4i=mQh;LEDvrm`!-3Gbg3qLlG3mRTy1@bj) za7^&zi+c-UkB3i@=3-HvQ1Z_~S)-5->eiH%Sx0QHh+L`{rqWnvuu=C3`ou+gDpT!n zbV-NUiId|=K3%+|V+6jR9RU-q2+K94?^ zqlu-7z!;rBD+LYhQbrL_HWE5qWN}YMkS%;T)pBqPOop_bP8Frp`F}HgQO=bLH@K;V zN0N9LOWrb9&{>2wR0SU$`YIuzQN?~5Vsv$hu*Wryngx5%+Sp3KzRI>OtJ^-Gdy(q6PG!^e$3aDCZ;tUpBSej8`ZR~!f;~;x6!ckDhg!C1k zv$xn4o1eaot_~pN32h1Ux6rTg4B06TwfXF7SXSrm` z5|^Z$ngLoWzqPI^#^cKf5c~zU`u592jXU+Uqj|3Zs8i;W#PKJl%#p1SKHp9}jYEXj zs^4a*u-2O;E{B^=$rl5Atut2!MXeSXRXwuE#2E`b4yEwqS`J>KkFH3Pr^AnE89Z;Oc1~_K zx+94zF}0;$&;EV92-6f=92)YHu3dGWc^-FUZ1OMG9J6U3ZT8vh6yZ@>TOcVO6Y1Y4 zvKbpsKCj~wBBn+)U^N=4_61?(t?*u>`GY_oGY7i}_vmKYjZXIMsO_Rq2+q@(%n}*k zI{eNN{7wa7XK`U(O?WB65(uhp4YNitx2_HOpbxuQy7Fw#5(#N-@j~Q$OXVS+2lX29 zlRUL-_2)BvEyepvkRGdjnhyc(<$S+5$}*#kzTA;dYqe}RZEAbW?5ZozQ;f%r-wgy; z3|9v*1}<(qJi^X(@qRe?wAfN-GVr6rrkx+=q=zo$C(NO`n0CXRlRbgz~1UF}G)5z}zhbTQZM1KN6rhvTl zG;Y#L?K1wR-dn&?3mnP*?P?Fv(1lHSJam6=3K@qb>hjE=v1-e_vl}Vuv$*nT&@MM9#ydq zLUs2)x{GVX@^f%jXMEh4*Opp6x2pO>CRz3==5~8T`O6jPT>q4eC%EA(ATnc;9)=*t8W20AJl5$DF73?>9QB6L1OlgC&qAs(K>U6l^TOb-70NzX1MO}LV+>5T?{7Q)nh*Z&m^&~_M(nEVA;dY`QDGSjlrLJupjw@R*tHdq)QQ;)dmkT z&0-V{iNl(%=RVpF&1(vt{rs+DZ477+lnl96#^p2Trn~MP4_$_kn_11Jj{ekxh&+WE zwRB4!Z9-uNV_t8W$Df%;cRVr9))&0fpEKBNBLb(e(<5aE1|-;k>`Ra(avKD}?jP;H z`kp9Lwlm#0;)maO;ETWWd%)hK35>1)R)&5Qkx~@V#&@q&aj>Ym{jE5{h=4%X%)5~U zAGyVsTH83TXcfN@ad~084x{=o`|~nz%MpnC_qB^*T+(sgmV^)jezS>ujhbrR%c|iA zF7sGdy=&KkU<8sjpi5GlHChj>g(B&viP-!p?%rka*l}ol59CJhUm&Fq%+L!098A;8 zGG>3kcz|9gt^EvS3$WDV3fGT8l<;gC|0t=%JxU}i(a=1vozmYoqL19l$HYllc$KZ? zbsb2>cK(NgR>0PZ=O7>g({vwGFvkkT{d!8Qf+|{@iew}Kkjs>IueU6c70GyktuPat zP9H+0TfLwJztDa%V+u3s16K;j6|tMEIc108WltD6HkAm!t*I(IFw~z4!uVXI)$G-R zAr$N@IDcWIL##5;ruzZx6hnI_65x&W6CiFhKav*R@Jkf<&7J?7`0#x|Iy=fpmLPLP zx$kv1&9<8i09{qNak=W}Ji`VCpAz#^QMlJLEV#3(e*WYRDZ(gcH1u-h-H*!4PNx~V z{^H^L%~-AoFj!Rbbp&O~a53xq+tqb|=X zd70ZSf41^07x3F7JtrO*MS-Sz%2jxk7!OR2-F$R2EpDic|s>aKC(pPY~K z>4>!ibXVT~K%*xM)~P}$lfEOC?~Xkdu)kI~`Owvw_8`=0Ivz5XT=&W-N#A1QGt)m? zt=VWPx6acpw?ULvQ`0t(#Yk3@z{k^=JlBH5IvqUpx+;Zv?&vx?_+B=WwneD(faF`q zU47bUuDbBlHVDo3#1=Bvoymc?>I=i11N^E@gF_2TNVA_kM1^#DXrH|JM9uK@Skwmc z1YE$S8Q0VajN%CJ5Q#%!K|?kjM=sH)jM(=!8)n<~D54vp~BLpgfU{2p|_i73Sy)K*t0?dzvw zxq;3aZKE5gPPK}j#Sy4(U46b4@C z3j(tLRd@c6r1C4FwEB0#rV&RExZZU0{&R56j|gL&$AEGkN-r^$t24EWY>MsVzW0w3 zkuf=mBq$w-Ox~Z@t4s(XRHD-QdFgv0r5@w%8Usx!JexxLH%KJPgvVW~3ULI5n&ney z#y9}v@Pn`SEXH#va)ZIok7i~EN_36)GmZa?Q=wd?}dtWJ!@&}Bywg?oZwUQ z%RTUHQ9H%euk81%5zugVNCPjF<>E$!AL}*N{tbB~zRk@&JxL-2_Tk~!;7D_@>tOnH zGWNeV(2K6C)O zmP`&2>H6!nidIry?8{Q61mXAT*Z0AaYaOVwc$G-;IvAs{Wi^q7 z3`c3#$oLKj1!T^IDKneoOLOH?L@*U{b-;7iQJ#j)7C{DJ{cH)fx-M1*gNK zIh<`7I8f$JVPpt?CCDYLWwIE@k*%f%muS3Ep0w4ZUHS*rJqn_C7Boef9fJ~qFxB=A zS^Kt=Rb6eEtcsx=g?(g#8Ivqp*d&)@KR>NnTj^O++*ZSJ1rLSX2K>$o$dDlS>kH5Nt}>g zZ7QboqY@DB2;ldv6`iJ?xD^c7iG~dEKG;@CkCu9u-%xLuqji(; z17rfWWj`E6Hb3aXhXrQ1NimyTe~CK_1?1#7i>(PH+fQkEx?*Xk zZ2OvMZvr)2%xECZ_hiQ)khqSb)Ga!uDSr$1iY-Shc6l(LX~ZlCufC6a$0a`N)#e&fU^4%MgJ~iM zYmW#=DCO<4hocxp)HDkKeNuI>(?5a$nKm$5VR|P5p`*(uixrB?{E%8Hgfc$cSWG`h zUo9f+0RP2}l>nvIk-kF8#7#xB(1p;0v7uDf@`QHCG7ZPA>pO(71z8tJ+60QgirC@m z^upNR3Q^Y~r^SU1S!oAd8E;n5llWu0cyzXJLQe!RuLAjD=l#$CC+$T!Eb+UWHFW9R zxYe$?jFLh)$MV<#{><_>n}Nhw$i_+Ffr{+4>s{D`C0~vhf4@q@-$zU;Y|^JjYP+?u z@IB@yj_rjEM;AEUmUP9Q{2H%Aqq@OJDglJ=ZekjTzmbP_8|hKqFda}b;o>u>Fbqqxfn|uT3*_myF}dEf&UZHd znHS5hUt+KWR92fZzz!k$aV>k}s3^qT^**-stK0~x+19NMSG7>bFOSjvsqeMX>}-W2 zE#wt_&c#MBXdH4h{mWuL7cD<9eGGl)^Bo$hh;iR=0W-}cm-osS8%?9qS0r=FlT}eW z^VNRZQ8lj;DM^qy%!2-{9zxpmn$>LJD5@*Qi@%x?z@gtZC{LrMac0R^hBmdt!&(uO z;Rth~wz91x{Va3%iNcz}YG9iu!XD}O!j=KAaRD#It79-x%8zkZ|7tz+Q`W*}I*-@f zfL;b+jW7`<0c*$=lHU8hL#^Z8R$klq=C9teQhVMg`A$Iro`dk1OhyR4Bq19BT*aU zfS9Cew!*#lXkHPGYR6jHUP9ujgQB~#Oi(NJ2mG@6Kudi*&M9FPj`KZsXF+eI0KQFm z8?%`}ajWJ$sArzC(H8p>bo8h4>EB@XA^T!)fRK0h6N2vcFB4Q%yFn#i)BU}g`lE78 zi3kmhOX_K#x@%a5>q*D9r$k|r*J6dAnTQY~4cAxK=9sRvm1x2zI)rVJK7__+(aBLVNu%=6qgeh5$r@@+a@KT-!T zk0u;3=3c5~mRJ2VW(O0yk8TZ94S>Je0j;`0;p4y*3tGC+zdX$NKfVVl+&f80MJIds zH2b(@wt>zqBvQ>_wR_Y*f2QKlpIAO3q)tDaLKt|w4>V9aEQ{hYW-7HCECY-5VCTq} zYq4}O?=nA`b$J8YQ$ReOu)s*kHcfe1NBc6$JLjlXJnGWD$$UEr?9(RV;mes_0nO6< z25qogv=U8rv37wmeg0!Z2R-3vheJop~djhy!1p<2wXh!jaQX-Rl>7<*jn=ILQF* zOKz&fju!=E(?%eDr~zThqSu0OZSiMwDqCGcVJM2-)PN7d)cjGF}md*0VHT3wLWa~ z%YqjFS?{Er2w}h2z+sfCD@vB|#S3zJ6g-&8bT&37us`eaR=$b4fNa`ay!T{K4|}Ti z3J8+`+gSok$GW2a{#Xh+G=(b-khY7ID3U;DsE~O5%V*mLMC4%UARx6RVi$l~{Xr~U z7Y3rL_5?p0Q~sP26X9ZCM0dQ@HY_UMr^feTEp4)`?AO-X8}VAN`sCmr;&}V=)mZzV zeKmS1i~pKX{utjB?6Pd^p;meuat?z=e{iuclP8A)=mbIAjE4|w;z3Wevf}i%G|s!Tnsb{W9@%_ zn~cp{vH8=3okVII$w2h1auSpw+qntbD31w1Ly`J9-{v1qwoEhJS?`kXHao-D+YY6A zsYje43SKM~eLu@#y4*vzf7s%|qa2jnltWK@oqzb(BiEC@WHmWSBls|djsiGpDgaf8 zzZIZ<3*9Pwh+Lpw4WZ2i-5jwkaQyI+^24I1Q3h{cPR5ZpNSF3ZE|u5LA1<&JI1B?2 z@Ydrf9Lt;;8|VGlJ1BrySJ<@z1G(;z(+nV|;uBg4gvR{2`HAN)LQ*i5pm{UPnhg%# zkG>4?_WV1d(lKYuII4)EbPx`4{J4>>rbC0l?=CG1`)yEge&PhcO}fAl)jm(k5vxuT z6i~TfLs5U6Ma>t7V<3BG$!vis?BEX&t|~-Vw^SR?rCc6^Q8OleSN#;Vsx`yo-|W21 z$22g+w$*kGeJ`$H=J+^6twgAEc;8frDn@9VE0KA#Vj+-_DIcR$6CydnPMjY1exjzuNO^Zv%#Pa1cN$JR>bN#g%IojCcAv^zY<99@XdGk}Q7}klUKhDvvNMOjU7AE#f9-+zg4##BoTm(TF{ra`Z+<%1mG{F>thqxxCZ`JG6 zFLOeaJh7%|>>q=O(X2P&Wj*o8ov_g%joCF-fuSSr>`_93=cr(d?@~yv-6@&)jd8NN zde_2ZgOu-`1cJun^WfXEOLr3>`8@PD*JU?+2@Iu9!?#$mQWD&f!0 z*czQ zb_$E7E!eWcI5l(oJ&~x^K5*PB-IUS$pb<1ZQH0_m^l)%whcqWz_)@HueBVBPf9v?U zj7^rzO{(dT(r}dSVJ9lLAx9M*lg-iCs%p&X@N=N8|Ho&Rrr{hB;E$v=WMd;E^DXz= zGzYsqI-Un2|C-n;XB^*-za*C#YI=T69ZPiGoal2 z&jseQOvz{8nG7$qvrtL$0lL*6Hs3`Nwaml8*2Td)nr2_K;Q{Lw9%dLWR?Wz=4^g

NZFS=->nA84w9x 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℘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 delta 44724 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 delta 27675 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 { if (!Names.isValid(name)) { return; } - if (clients.some(client => client.name === name)) { + if (global.clients.some(client => client.name === name)) { return; } diff --git a/TypescriptServer/src/concepts/client.ts b/TypescriptServer/src/concepts/client.ts index ace4e4a..509ff11 100644 --- a/TypescriptServer/src/concepts/client.ts +++ b/TypescriptServer/src/concepts/client.ts @@ -244,7 +244,7 @@ export default class Client extends SendStuff implements IClient { this.socket = null; this.connected = false; - this.reconnect_timer = config.reconnect_timeout; + this.reconnect_timer = global.config.reconnect_timeout; this.matchMakingStop(); diff --git a/TypescriptServer/src/initializers/00_exit_handler.ts b/TypescriptServer/src/initializers/00_exit_handler.ts index cd71f56..1b7c6a4 100644 --- a/TypescriptServer/src/initializers/00_exit_handler.ts +++ b/TypescriptServer/src/initializers/00_exit_handler.ts @@ -2,7 +2,7 @@ import trace from '#util/logging'; import chalk from 'chalk'; async function cleanup() { - await Promise.all(clients.map(c => c.save())); + await Promise.all(global.clients.map(c => c.save())); trace('saved all client data!'); }