feat: lenient username and clan lookup

This commit is contained in:
TresAbhi committed 2023-05-16 02:02:50 +00:00
1 parent 9df4d52bb5
commit 9a9ea3a71a
19 files changed
+292 -209

No files matched your search

+5 -15
View File
@@ -3,33 +3,23 @@ import {
AutocompleteInteraction,
CacheType,
} from 'discord.js';
import { BlitzServer } from '../../constants/servers.js';
import { AccountList } from '../../types/players.js';
import getWargamingResponse from '../blitz/getWargamingResponse.js';
import { args } from '../process/args.js';
import { BLITZ_SERVERS } from '../../constants/servers.js';
import listAccountsPanServer from '../blitz/listAccountsPanServer.js';
export default async function usernameAutocomplete(
interaction: AutocompleteInteraction<CacheType>,
) {
const focusedOption = interaction.options.getFocused(true);
if (focusedOption.name !== 'username') return;
const server = interaction.options.getString('server') as BlitzServer;
const players = await getWargamingResponse<AccountList>(
`https://api.wotblitz.${
server ?? 'com'
}/wotb/account/list/?application_id=${
args['wargaming-application-id']
}&search=${focusedOption.value}&limit=10`,
);
const players = await listAccountsPanServer(focusedOption.value);
await interaction.respond(
players
? players.map(
(player) =>
({
name: player.nickname,
value: `${player.account_id}`,
name: `${player.nickname} (${BLITZ_SERVERS[player.server]})`,
value: `${player.server}/${player.account_id}`,
} satisfies ApplicationCommandOptionChoiceData<string>),
)
: [],