diff --git a/src/client/scripts/esm/util/uuid.js b/src/client/scripts/esm/util/uuid.js index 291134d36..d7f02d6d5 100644 --- a/src/client/scripts/esm/util/uuid.js +++ b/src/client/scripts/esm/util/uuid.js @@ -20,6 +20,21 @@ function generateID(length) { return result; } +/** + * Generates a random ID of the provided length, with the characters 0-9, a-z. + * @param {number} length - The length of the desired ID + * @returns {string} The ID + */ +function generateID_Base36(length) { + let result = ''; + const characters = '0123456789abcdefghijklmnopqrstuvwxyz'; // Base 62 characters + const charactersLength = characters.length; + for (let i = 0; i < length; i++) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); // Coercing to an int with Math.floor + } + return result; +} + /** * Generates a **UNIQUE** ID of the provided length, with the characters 0-9 and a-z. * The provided object should contain the keys of the existing IDs. @@ -99,6 +114,7 @@ function base62ToBase10(base62Str) { export default { generateID, + generateID_Base36, genUniqueID, generateNumbID, base10ToBase62, diff --git a/src/server/config/config.js b/src/server/config/config.js index 274cc1666..eea2793f2 100644 --- a/src/server/config/config.js +++ b/src/server/config/config.js @@ -29,7 +29,7 @@ if (!DEV_BUILD && !ARE_RATE_LIMITING) throw new Error("ARE_RATE_LIMITING must be * I recommend 2 seconds of latency for testing slow networks. */ const simulatedWebsocketLatencyMillis = 0; -// const simulatedWebsocketLatencyMillis = 1000; // 1 Second +// const simulatedWebsocketLatencyMillis = 2000; // 2 Seconds if (!DEV_BUILD && simulatedWebsocketLatencyMillis !== 0) throw new Error("simulatedWebsocketLatencyMillis must be 0 in production!!"); /** The domain name of the production website. */ diff --git a/src/server/game/invitesmanager/createinvite.js b/src/server/game/invitesmanager/createinvite.js index 7500bcc1e..774b810ef 100644 --- a/src/server/game/invitesmanager/createinvite.js +++ b/src/server/game/invitesmanager/createinvite.js @@ -64,7 +64,7 @@ async function createInvite(ws, messageContents, replyto) { // invite: { id, own const owner = ws.metadata.memberInfo.signedIn ? { member: ws.metadata.memberInfo.username } : { browser: ws.metadata.cookies["browser-id"] }; invite.owner = owner; - do { invite.id = uuid.generateID(5); } while (existingInviteHasID(invite.id)); + do { invite.id = uuid.generateID_Base36(5); } while (existingInviteHasID(invite.id)); addInvite(ws, invite, replyto); }