diff --git a/src/config.ts b/src/config.ts index 5ec4becf..08a96ac6 100644 --- a/src/config.ts +++ b/src/config.ts @@ -33,6 +33,7 @@ export const { bankerRoleId, raiderRoleId, inactiveRaiderRoleId, + noBotsRoleId, knightRoleId, trackerRoleId, reinforcementsRoleId, @@ -216,6 +217,7 @@ export const { raiderRoleId: string; inactiveRaiderRoleId: string; reinforcementsRoleId: string; + noBotsRoleId: string; // Guild role IDs membersAndAlliesRoleId: string; diff --git a/src/services/bot/bot-prisma.ts b/src/services/bot/bot-prisma.ts index c78aba88..d343a1a8 100644 --- a/src/services/bot/bot-prisma.ts +++ b/src/services/bot/bot-prisma.ts @@ -26,6 +26,7 @@ import { ParkBotButtonCommand } from "../../features/raid-bots/park-bot-button-c import { refreshBotEmbed } from "../../features/raid-bots/bot-embed"; import { code } from "../../shared/util"; import { MINUTES } from "../../shared/time"; +import { noBotsRoleId } from "../../config"; export class PrismaPublicAccounts implements IPublicAccountService { private refreshing: boolean = false; @@ -131,6 +132,11 @@ export class PrismaPublicAccounts implements IPublicAccountService { let status = "✅ Granted"; try { + const roles = interaction.member?.roles as GuildMemberRoleManager; + if (roles.cache.has(noBotsRoleId)) { + throw new Error("You do not have permission to request bots"); + } + const details = await accounts.getAccount( name, interaction.member?.roles as GuildMemberRoleManager