diff --git a/packages/bot/src/core/discord/autocompleteClan/index.ts b/packages/bot/src/core/discord/autocompleteClan/index.ts index 7ff1c2def..a36c15713 100644 --- a/packages/bot/src/core/discord/autocompleteClan/index.ts +++ b/packages/bot/src/core/discord/autocompleteClan/index.ts @@ -36,7 +36,7 @@ export async function autocompleteClan( return { name, - value: `${clan.clan_id}`, + value: `${clan.region}/${clan.clan_id}`, } satisfies ApplicationCommandOptionChoiceData; }) : [], diff --git a/packages/bot/src/core/discord/resolveClanFromCommand.ts b/packages/bot/src/core/discord/resolveClanFromCommand.ts index 7e269e4a0..aad1e142a 100644 --- a/packages/bot/src/core/discord/resolveClanFromCommand.ts +++ b/packages/bot/src/core/discord/resolveClanFromCommand.ts @@ -1,19 +1,20 @@ -import { idToRegion, searchClansAcrossRegions } from '@blitzkit/core'; +import { Region, searchClansAcrossRegions } from '@blitzkit/core'; import { ChatInputCommandInteraction } from 'discord.js'; import markdownEscape from 'markdown-escape'; import { UserError } from '../blitzkit/userError'; import { translator } from '../localization/translator'; +export const serverAndIdPattern = /(com|eu|asia)\/[0-9]+/; + export async function resolveClanFromCommand( interaction: ChatInputCommandInteraction, ) { const { translate } = translator(interaction.locale); const clan = interaction.options.getString('clan', true); - const id = parseInt(clan); - if (isNaN(id)) { - const region = idToRegion(id); - return { region, id }; + if (serverAndIdPattern.test(clan)) { + const [server, accountId] = clan.split('/'); + return { region: server as Region, id: Number(accountId) }; } else { const accounts = await searchClansAcrossRegions(clan);