Files
blitzkit/src/core/autocomplete/username.ts
T

29 lines
930 B
TypeScript
Raw Normal View History

2023-05-14 17:13:42 +00:00
import {
ApplicationCommandOptionChoiceData,
AutocompleteInteraction,
CacheType,
} from 'discord.js';
2023-05-16 02:02:50 +00:00
import { BLITZ_SERVERS } from '../../constants/servers.js';
import listAccountsPanServer from '../blitz/listAccountsPanServer.js';
2023-05-14 17:13:42 +00:00
export default async function usernameAutocomplete(
interaction: AutocompleteInteraction<CacheType>,
) {
const focusedOption = interaction.options.getFocused(true);
if (focusedOption.name !== 'username') return;
2023-05-16 02:02:50 +00:00
const players = await listAccountsPanServer(focusedOption.value);
2023-05-14 17:13:42 +00:00
await interaction.respond(
players
? players.map(
(player) =>
({
2023-05-16 02:02:50 +00:00
name: `${player.nickname} (${BLITZ_SERVERS[player.server]})`,
value: `${player.server}/${player.account_id}`,
2023-05-14 17:13:42 +00:00
} satisfies ApplicationCommandOptionChoiceData<string>),
)
: [],
);
console.log(`Username autocomplete for ${focusedOption.value}`);
}