diff --git a/messages/en.json b/messages/en.json index 97dbcd9..c400032 100644 --- a/messages/en.json +++ b/messages/en.json @@ -73,5 +73,7 @@ "alreadyDonator": "You are already a donator!", "discordNeeded": "You need to link your Discord account to access this page", "discordRoleNeeded": "You need the Donator Discord role to access this page", - "addedDonator": "Added donator benefits to your account!" + "addedDonator": "Added donator benefits to your account!", + "errorDonatorCheck": "Something went wrong when checking your Discord donator status. Please try again later.", + "discordRateLimit": "{message} Retry after {retry_after} seconds." } diff --git a/src/pages/donator/check.astro b/src/pages/donator/check.astro index 8d085db..63ca968 100644 --- a/src/pages/donator/check.astro +++ b/src/pages/donator/check.astro @@ -29,6 +29,13 @@ async function getMessage() { } }) + if (memberInfoRes.status == 429) { + const { message, retry_after }: { message: string; retry_after: number } = await memberInfoRes.json() + return m.discordRateLimit({ message, retry_after }) + } else if (memberInfoRes.status != 200) { + return m.errorDonatorCheck + } + const memberInfo: { roles: string[] } = await memberInfoRes.json() const isDiscordDonator = memberInfo.roles.includes(DISCORD_DONATOR_ID)