diff --git a/src/client/registry/UserRegistry.js b/src/client/registry/UserRegistry.js index d1a2ee24..53db3100 100644 --- a/src/client/registry/UserRegistry.js +++ b/src/client/registry/UserRegistry.js @@ -32,7 +32,10 @@ class UserRegistry extends Map { const inserted = await this.database.users.add(member); - this.cacheUser(inserted); + if (inserted) + this.cacheUser(inserted); + else + Log.warn(`Adding new user from member ${Format.member(member)}, user was already inserted.`); } async ignoreUser(user, ignoreUntil) { diff --git a/src/database/repositories/UserRepository.js b/src/database/repositories/UserRepository.js index 3eb249f8..1bc335b3 100644 --- a/src/database/repositories/UserRepository.js +++ b/src/database/repositories/UserRepository.js @@ -45,7 +45,8 @@ class UserRepository { try { return await this._db.tx(async t => { const inserted = await t.one( - 'INSERT INTO users.users (user_id, is_bot) VALUES ($[user_id], $[is_bot]) RETURNING *;', + `INSERT INTO users.users (user_id, is_bot) VALUES ($[user_id], $[is_bot]) + ON CONFLICT(user_id) DO NOTHING RETURNING *;`, { user_id: user.id, is_bot: !!user.bot } ); await t.none(