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

29 lines
921 B
TypeScript
Raw Normal View History

2023-05-13 21:42:40 +00:00
import {
ApplicationCommandOptionChoiceData,
AutocompleteInteraction,
CacheType,
} from 'discord.js';
import { go } from 'fuzzysort';
2023-05-13 22:01:58 +00:00
import resolveTankName from '../../utilities/resolveTankName.js';
import { tanks } from '../blitzstars/tankopedia.js';
2023-05-13 21:42:40 +00:00
export default async function tanksAutocomplete(
interaction: AutocompleteInteraction<CacheType>,
) {
2023-05-14 17:13:42 +00:00
const focusedOption = interaction.options.getFocused(true);
if (focusedOption.name !== 'tank') return;
2023-05-13 21:42:40 +00:00
await interaction.respond(
2023-05-14 17:13:42 +00:00
focusedOption.value
? go(focusedOption.value, tanks, { keys: ['name'], limit: 10 }).map(
2023-05-13 21:42:40 +00:00
(item) =>
({
2023-05-13 22:01:58 +00:00
name: item.obj.name ? item.obj.name : resolveTankName(item.obj),
2023-05-13 21:42:40 +00:00
value: `${item.obj.tank_id}`,
} satisfies ApplicationCommandOptionChoiceData<string>),
)
: [],
);
2023-05-14 17:13:42 +00:00
console.log(`Tanks autocomplete for ${focusedOption.value}`);
2023-05-13 21:42:40 +00:00
}