From 17af4087a541fd1318b8ac4c854e6664817bec98 Mon Sep 17 00:00:00 2001 From: Brandon <14009481+bng94@users.noreply.github.com> Date: Sun, 31 Aug 2025 15:55:23 -0400 Subject: [PATCH 1/5] Update release.yml --- .github/workflows/release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 198415d..3f18e55 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,6 @@ permissions: contents: write jobs: create-release: - if: github.event.pull_request.merged == true runs-on: ubuntu-latest outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} From 0ff438605689ee9e03734108842e98f872bf3568 Mon Sep 17 00:00:00 2001 From: Brandon <14009481+bng94@users.noreply.github.com> Date: Sun, 31 Aug 2025 15:56:21 -0400 Subject: [PATCH 2/5] Update release.yml --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3f18e55..5cab9ab 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,6 +10,7 @@ permissions: contents: write jobs: create-release: + if: github.event_name == 'pull_request' && github.event.pull_request.merged == true runs-on: ubuntu-latest outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} From 04c6a9262e2c5098fb0f9eee54530eb2977bda61 Mon Sep 17 00:00:00 2001 From: Brandon <14009481+bng94@users.noreply.github.com> Date: Fri, 26 Sep 2025 08:18:54 -0400 Subject: [PATCH 3/5] add login with retry fail safe to retry login before throwing error in order to ensure its not error from our end. --- src/index.js | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/src/index.js b/src/index.js index 8f0f5f1..4d77846 100644 --- a/src/index.js +++ b/src/index.js @@ -262,12 +262,37 @@ const DiscordFeaturesHandler = async ( client.levelCache[thisLevel.name.toString()] = thisLevel.level; } - client.login(client.config.token).catch((e) => { - console.warn(e); - throw new Error( - `Please check if your discord bot token is valid! The token should be defined in config.token` - ); - }); + const loginWithRetry = async (client, maxRetries = 3) => { + for (const attempt = 1; attempt <= maxRetries; attempt++) { + try { + await client.login(client.config.token); + return; + } catch (error) { + console.warn(`Login attempt ${attempt} failed:`, error.message); + + if (error.code === "TOKEN_INVALID" || error.message.includes("401")) { + throw new Error( + "Invalid token provided. Please check your discord bot token in config.token" + ); + } + + if (attempt === maxRetries) { + throw new Error( + `Failed to login after ${maxRetries} attempts. Last error: ${error.message}` + ); + } + + const baseDelay = 1000; + const jitter = Math.random() * 500; + const delay = baseDelay * Math.pow(2, attempt - 1) + jitter; + + console.log(`Retrying in ${Math.round(delay)}ms...`); + await new Promise((resolve) => setTimeout(resolve, delay)); + } + } + }; + + await loginWithRetry(client); await client.wait(modulesPreloadTime); loadModules({ From d1334d50c2b68ac4d2b812940ac7f614dbf76298 Mon Sep 17 00:00:00 2001 From: Brandon <14009481+bng94@users.noreply.github.com> Date: Sat, 4 Jul 2026 11:10:11 -0400 Subject: [PATCH 4/5] Update index.js --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 4d77846..543f675 100644 --- a/src/index.js +++ b/src/index.js @@ -263,7 +263,7 @@ const DiscordFeaturesHandler = async ( } const loginWithRetry = async (client, maxRetries = 3) => { - for (const attempt = 1; attempt <= maxRetries; attempt++) { + for (let attempt = 1; attempt <= maxRetries; attempt++) { try { await client.login(client.config.token); return; From d55d14f1a3ad9a18b479711065d06991eaa0b7bf Mon Sep 17 00:00:00 2001 From: Brandon <14009481+bng94@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:57:16 -0400 Subject: [PATCH 5/5] 3.2.1 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 83619f6..11c7393 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "discord-features-handler", - "version": "3.2.0", + "version": "3.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "discord-features-handler", - "version": "3.2.0", + "version": "3.2.1", "license": "MIT", "dependencies": { "discord.js": "^14.21.0" diff --git a/package.json b/package.json index 7c35008..e48ce1c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "discord-features-handler", - "version": "3.2.0", + "version": "3.2.1", "description": "An simple discord regular and slash commands, events and modules handler with folder structure", "main": "src/index.js", "types": "src/index.d.ts",