mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-11-14 05:06:11 +01:00
feat: lenient username and clan lookup
This commit is contained in:
1 parent
9df4d52bb5
commit
9a9ea3a71a
19 files changed
+292
-209
No files matched your search
@@ -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>),
|
||||
)
|
||||
: [],
|
||||
|
||||
Reference in new issue
Block a user