From 05fe7a581f889294fbc8fa9e7386994188a08534 Mon Sep 17 00:00:00 2001 From: probro27 Date: Tue, 4 Apr 2023 05:03:23 -0400 Subject: [PATCH 1/3] cron job now checks if the member is a bot before adding the role --- src/components/cron.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/cron.ts b/src/components/cron.ts index a62acf6b..6a68637d 100644 --- a/src/components/cron.ts +++ b/src/components/cron.ts @@ -152,7 +152,7 @@ export const assignCodeyRoleForLeaderboard = (client: Client): CronJob => }); leaderboard.forEach(async (lbUserCoinEntry) => { const memberToUpdate = members.get(lbUserCoinEntry.user_id); - if (memberToUpdate) { + if (memberToUpdate && !memberToUpdate.user?.bot) { await updateMemberRole(memberToUpdate, await getRoleName(CODEY_COIN_ROLE_ID), true); } }); From 8a6ab44eb5764e71d1a459edc0b1ad2d98254e2f Mon Sep 17 00:00:00 2001 From: probro27 Date: Tue, 6 Jun 2023 17:49:49 -0400 Subject: [PATCH 2/3] getting additional 5 members from leaderboard to resolve issue --- src/components/cron.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/cron.ts b/src/components/cron.ts index 6a68637d..4add129d 100644 --- a/src/components/cron.ts +++ b/src/components/cron.ts @@ -137,7 +137,8 @@ export const createCoffeeChatCron = (client: Client): CronJob => // Gives Codey coin role to those on the leaderboard list everyday export const assignCodeyRoleForLeaderboard = (client: Client): CronJob => new CronJob('0 0 0 */1 * *', async function () { - const leaderboard = await getCoinLeaderboard(NUMBER_USERS_TO_ASSIGN_ROLE); + // extra 5 members in case there are 5 bots in the leaderboard (as per the production environment) + const leaderboard = await getCoinLeaderboard(NUMBER_USERS_TO_ASSIGN_ROLE + 5); const guild = client.guilds.resolve(TARGET_GUILD_ID); if (!guild) { throw new CodeyUserError(undefined, 'guild not found'); From 9e406063440620b36da4f215f8e08ba1c766b683 Mon Sep 17 00:00:00 2001 From: probro27 Date: Tue, 13 Jun 2023 19:07:09 -0400 Subject: [PATCH 3/3] users made to be exact 10 in a role assignment loop --- src/components/cron.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/cron.ts b/src/components/cron.ts index 4add129d..b663c69e 100644 --- a/src/components/cron.ts +++ b/src/components/cron.ts @@ -151,10 +151,14 @@ export const assignCodeyRoleForLeaderboard = (client: Client): CronJob => await updateMemberRole(member, await getRoleName(CODEY_COIN_ROLE_ID), false); } }); - leaderboard.forEach(async (lbUserCoinEntry) => { - const memberToUpdate = members.get(lbUserCoinEntry.user_id); - if (memberToUpdate && !memberToUpdate.user?.bot) { - await updateMemberRole(memberToUpdate, await getRoleName(CODEY_COIN_ROLE_ID), true); - } - }); + let users = 0; + while (users < 10) { + leaderboard.forEach(async (lbUserCoinEntry) => { + const memberToUpdate = members.get(lbUserCoinEntry.user_id); + if (memberToUpdate && !memberToUpdate.user?.bot) { + await updateMemberRole(memberToUpdate, await getRoleName(CODEY_COIN_ROLE_ID), true); + users++; + } + }); + } });