From 53696ccbbc1c2cac4cecc70fbc9c82d5a5b59c89 Mon Sep 17 00:00:00 2001 From: Mara Date: Sun, 16 Jun 2024 13:31:26 +0200 Subject: [PATCH] fix: optimize updating data --- src/events/ready.ts | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/events/ready.ts b/src/events/ready.ts index cbf9ea19..2d65e2a3 100644 --- a/src/events/ready.ts +++ b/src/events/ready.ts @@ -41,7 +41,10 @@ export default (client: EClient): void => { function convertDatabaseUser(db: Settings, guild: Guild) { if (db.get(guild.id, "converted")) return; const users = db.get(guild.id, "user"); - if (!users) return; + if (!users) { + db.set(guild.id, true, "converted"); + return; + } const defaultChannel = db.get(guild.id, "managerId"); const privateChannel = db.get(guild.id, "privateChannel"); for (const [userId, userData] of Object.entries(users)) { @@ -49,16 +52,21 @@ function convertDatabaseUser(db: Settings, guild: Guild) { for (const index in userData) { const data = userData[index]; if (!Array.isArray(data.messageId)) { - if (!privateChannel || !defaultChannel) { - console.error("Missing channel for the conversion"); - //remove the user + let toUpdate = false; + if (data.isPrivate && privateChannel) { + data.messageId = [data.messageId, privateChannel]; + toUpdate = true; + } else if (defaultChannel) { + toUpdate = true; + data.messageId = [data.messageId, defaultChannel]; + } + if (toUpdate) db.set(guild.id, data, `user.${userId}.${index}`); + else { + console.warn( + `No channel to update for ${userId}/${data.charName} => Deleting it` + ); db.delete(guild.id, `user.${userId}.${index}`); - continue; } - if (data.isPrivate && privateChannel) - data.messageId = [data.messageId, privateChannel]; - else if (defaultChannel) data.messageId = [data.messageId, defaultChannel]; - db.set(guild.id, data, `user.${userId}.${index}`); } } }