mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 12:09:51 +02:00
Merge branch '1.9.0' into main
This commit is contained in:
30 files changed
+464
-297
No files matched your search
@@ -5,7 +5,7 @@ import { tankAverages } from '../core/blitzstars/tankAverages.js';
|
||||
import cleanTable from '../core/interaction/cleanTable.js';
|
||||
import infoEmbed from '../core/interaction/infoEmbed.js';
|
||||
import getClientId from '../core/process/getClientId.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { client } from '../index.js';
|
||||
|
||||
const executionStart = new Date().getTime();
|
||||
|
||||
@@ -13,7 +13,7 @@ import positiveEmbed from '../core/interaction/positiveEmbed.js';
|
||||
import addUsernameOption from '../core/options/addUsernameOption.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { AccountInfo } from '../types/accountInfo.js';
|
||||
|
||||
export type SkilledClan = 'SKLLD' | 'SMRI';
|
||||
|
||||
@@ -5,7 +5,7 @@ import resolveTankId from '../core/blitz/resolveTankId.js';
|
||||
import addStatsSubCommandGroups from '../core/options/addStatsSubCommandGroups.js';
|
||||
import resolvePeriod from '../core/options/resolvePeriod.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import evolution from '../renderers/evolution.js';
|
||||
import { StatType } from '../renderers/stats.js';
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
CommandRegistry,
|
||||
guildCommands,
|
||||
publicCommands,
|
||||
} from '../events/interactionCreate.js';
|
||||
} from '../events/interactionCreate/index.js';
|
||||
import { client } from '../index.js';
|
||||
|
||||
export default {
|
||||
|
||||
@@ -10,7 +10,7 @@ import getBlitzClan from '../core/blitz/getBlitzClan.js';
|
||||
import getWargamingResponse from '../core/blitz/getWargamingResponse.js';
|
||||
import addClanChoices from '../core/options/addClanChoices.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { AccountInfo } from '../types/accountInfo.js';
|
||||
import { ClanInfo } from '../types/clanInfo.js';
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
import addUsernameOption from '../core/options/addUsernameOption.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { AccountInfo } from '../types/accountInfo.js';
|
||||
import { PlayerClanData } from '../types/playerClanData.js';
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SlashCommandBuilder } from 'discord.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
|
||||
export default {
|
||||
inProduction: true,
|
||||
|
||||
@@ -8,7 +8,7 @@ import infoEmbed from '../core/interaction/infoEmbed.js';
|
||||
import addUsernameOption from '../core/options/addUsernameOption.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { AccountAchievements } from '../types/accountAchievements.js';
|
||||
import { AccountInfo } from '../types/accountInfo.js';
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import infoEmbed from '../core/interaction/infoEmbed.js';
|
||||
import addUsernameOption from '../core/options/addUsernameOption.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { AccountInfo } from '../types/accountInfo.js';
|
||||
|
||||
export default {
|
||||
|
||||
@@ -6,7 +6,7 @@ import infoEmbed from '../core/interaction/infoEmbed.js';
|
||||
import addClanChoices from '../core/options/addClanChoices.js';
|
||||
import addServerChoices from '../core/options/addServerChoices.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { ClanList } from '../types/clanList.js';
|
||||
|
||||
export default {
|
||||
|
||||
@@ -7,7 +7,7 @@ import infoEmbed from '../core/interaction/infoEmbed.js';
|
||||
import addServerChoices from '../core/options/addServerChoices.js';
|
||||
import addUsernameOption from '../core/options/addUsernameOption.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { AccountList } from '../types/accountList.js';
|
||||
|
||||
export default {
|
||||
|
||||
@@ -4,7 +4,7 @@ import markdownEscape from 'markdown-escape';
|
||||
import { TANK_NAMES } from '../core/blitz/tankopedia.js';
|
||||
import infoEmbed from '../core/interaction/infoEmbed.js';
|
||||
import addTankChoices from '../core/options/addTankChoices.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
|
||||
export default {
|
||||
inProduction: true,
|
||||
|
||||
+34
-2
@@ -1,11 +1,16 @@
|
||||
import { SlashCommandBuilder } from 'discord.js';
|
||||
import { CYCLIC_API } from '../constants/cyclic.js';
|
||||
import tanksAutocomplete from '../core/autocomplete/tanks.js';
|
||||
import usernameAutocomplete from '../core/autocomplete/username.js';
|
||||
import resolveTankId from '../core/blitz/resolveTankId.js';
|
||||
import interactionToURL from '../core/interaction/interactionToURL.js';
|
||||
import linkButton from '../core/interaction/linkButton.js';
|
||||
import primaryButton from '../core/interaction/primaryButton.js';
|
||||
import { Period } from '../core/options/addPeriodSubCommands.js';
|
||||
import addStatsSubCommandGroups from '../core/options/addStatsSubCommandGroups.js';
|
||||
import resolvePeriod from '../core/options/resolvePeriod.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import stats, { StatType } from '../renderers/stats.js';
|
||||
|
||||
export default {
|
||||
@@ -23,16 +28,43 @@ export default {
|
||||
const commandGroup = interaction.options.getSubcommandGroup(
|
||||
true,
|
||||
) as StatType;
|
||||
const subcommand = interaction.options.getSubcommand() as Period;
|
||||
const player = await resolvePlayer(interaction);
|
||||
const period = resolvePeriod(interaction);
|
||||
const tankIdRaw = interaction.options.getString('tank')!;
|
||||
const tankId = commandGroup === 'tank' ? resolveTankId(tankIdRaw) : 0;
|
||||
const start = interaction.options.getInteger('start');
|
||||
const end = interaction.options.getInteger('end');
|
||||
const path = `stats/${commandGroup}/${subcommand}?server=${
|
||||
player.server
|
||||
}&id=${player.id}&tankId=${tankId}&start=${start ?? 0}&end=${end ?? 0}`;
|
||||
|
||||
return await stats(commandGroup, period, player, tankId);
|
||||
interactionToURL(interaction);
|
||||
|
||||
return [
|
||||
await stats(commandGroup, period, player, tankId),
|
||||
primaryButton(path, 'Refresh'),
|
||||
linkButton(path, 'Embed'),
|
||||
];
|
||||
},
|
||||
|
||||
autocomplete: (interaction) => {
|
||||
usernameAutocomplete(interaction);
|
||||
tanksAutocomplete(interaction);
|
||||
},
|
||||
|
||||
async button(interaction) {
|
||||
const url = new URL(`${CYCLIC_API}/${interaction.customId}`);
|
||||
const path = url.pathname.split('/').filter(Boolean);
|
||||
const commandGroup = path[1] as StatType;
|
||||
const period = resolvePeriod(interaction);
|
||||
const player = await resolvePlayer(interaction);
|
||||
|
||||
return await stats(
|
||||
commandGroup,
|
||||
period,
|
||||
player,
|
||||
parseInt(url.searchParams.get('tankId')!),
|
||||
);
|
||||
},
|
||||
} satisfies CommandRegistry;
|
||||
@@ -2,7 +2,7 @@ import { SlashCommandBuilder } from 'discord.js';
|
||||
import usernameAutocomplete from '../core/autocomplete/username.js';
|
||||
import addUsernameOption from '../core/options/addUsernameOption.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import today from '../renderers/today.js';
|
||||
|
||||
export default {
|
||||
|
||||
@@ -8,7 +8,7 @@ import positiveEmbed from '../core/interaction/positiveEmbed.js';
|
||||
import addUsernameOption from '../core/options/addUsernameOption.js';
|
||||
import resolvePlayer from '../core/options/resolvePlayer.js';
|
||||
import { WARGAMING_APPLICATION_ID } from '../core/process/args.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate.js';
|
||||
import { CommandRegistry } from '../events/interactionCreate/index.js';
|
||||
import { AccountInfo } from '../types/accountInfo.js';
|
||||
import { PlayerClanData } from '../types/playerClanData.js';
|
||||
|
||||
|
||||
Reference in new issue
Block a user