feat: autocomplete size limits

This commit is contained in:
TrèsAbhi committed 2023-11-01 11:45:19 -05:00
1 parent 882e61ff44
commit 3ea77f5899
5 files changed
+88 -45

No files matched your search

+21 -7
View File
@@ -5,6 +5,10 @@ import {
} from 'discord.js';
import { go } from 'fuzzysort';
import { TANK_NAMES_DIACRITICS } from '../blitzstars/tankopedia';
import {
DISCORD_CHOICES_MAX_NAME_SIZE,
OVERFLOW_SUFFIX,
} from './autocompleteClan';
export default async function autocompleteTanks(
interaction: AutocompleteInteraction<CacheType>,
@@ -18,13 +22,23 @@ export default async function autocompleteTanks(
go(focusedOption.value, await TANK_NAMES_DIACRITICS, {
keys: ['combined'],
limit: 10,
}).map(
async (item) =>
({
name: item.obj.original,
value: `${item.obj.id}`,
}) satisfies ApplicationCommandOptionChoiceData<string>,
),
}).map(async (item) => {
let name = item.obj.original;
if (name.length > DISCORD_CHOICES_MAX_NAME_SIZE) {
const overSize = name.length - DISCORD_CHOICES_MAX_NAME_SIZE;
name = `${item.obj.original.slice(
0,
item.obj.original.length - overSize - OVERFLOW_SUFFIX.length,
)}${OVERFLOW_SUFFIX}`;
}
return {
name,
value: `${item.obj.id}`,
} satisfies ApplicationCommandOptionChoiceData<string>;
}),
)
: [],
);