mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-27 04:29:50 +01:00
fix: more imports
This commit is contained in:
1 parent
25cfb7db74
commit
4f24db0956
182 files changed
+456
-452
No files matched your search
@@ -1,6 +1,5 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { getRatingInfo, Region } from '@blitzkit/core';
|
||||||
import { NextResponse } from 'next/server';
|
import { NextResponse } from 'next/server';
|
||||||
import getRatingInfo from '../../../../../../../website/src/core/blitz/getRatingInfo';
|
|
||||||
|
|
||||||
export async function GET(
|
export async function GET(
|
||||||
request: Request,
|
request: Request,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { blitzStarsTankAverages } from '@blitzkit/core/src/blitzstars/tankAverages';
|
import { blitzStarsTankAverages } from '@blitzkit/core';
|
||||||
import { NextResponse } from 'next/server';
|
import { NextResponse } from 'next/server';
|
||||||
|
|
||||||
export async function GET() {
|
export async function GET() {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { tankDefinitions, usersDatabase } from '@blitzkit/core';
|
import { tankDefinitions, TankVotes, usersDatabase } from '@blitzkit/core';
|
||||||
import { NextRequest, NextResponse } from 'next/server';
|
import { NextRequest, NextResponse } from 'next/server';
|
||||||
import { TankVotes } from '../../../../../../core/src/blitzkit/votes';
|
|
||||||
import { isValidBlitzId } from '../../../../../../website/src/core/blitz/isValidBlitzId';
|
import { isValidBlitzId } from '../../../../../../website/src/core/blitz/isValidBlitzId';
|
||||||
import {
|
import {
|
||||||
BlitzkitResponse,
|
BlitzkitResponse,
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import { tankDefinitions, usersDatabase } from '@blitzkit/core';
|
|
||||||
import {
|
import {
|
||||||
TANK_VOTE_CATEGORIES,
|
TANK_VOTE_CATEGORIES,
|
||||||
|
tankDefinitions,
|
||||||
TankVoteCategory,
|
TankVoteCategory,
|
||||||
} from '@blitzkit/core/src/blitzkit/votes';
|
usersDatabase,
|
||||||
|
} from '@blitzkit/core';
|
||||||
import { NextRequest, NextResponse } from 'next/server';
|
import { NextRequest, NextResponse } from 'next/server';
|
||||||
import { StarsInt } from '../../../../../../website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/components/Stars';
|
import { StarsInt } from '../../../../../../website/src/app/tools/tankopedia/[id]/components/Model/MetaSection/components/Stars';
|
||||||
import { isValidBlitzId } from '../../../../../../website/src/core/blitz/isValidBlitzId';
|
import { isValidBlitzId } from '../../../../../../website/src/core/blitz/isValidBlitzId';
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import { getBlitzStarsLinkButton } from '../../core/blitzstars/getBlitzStarsLinkButton';
|
import { getBlitzStarsLinkButton } from '../../core/blitzstars/getBlitzStarsLinkButton';
|
||||||
import addPeriodicFilterOptions from '../../core/discord/addPeriodicFilterOptions';
|
import { addPeriodicFilterOptions } from '../../core/discord/addPeriodicFilterOptions';
|
||||||
import addUsernameChoices from '../../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../../core/discord/addUsernameChoices';
|
||||||
import autocompleteTanks from '../../core/discord/autocompleteTanks';
|
import { autocompleteTanks } from '../../core/discord/autocompleteTanks';
|
||||||
import autocompleteUsername from '../../core/discord/autocompleteUsername';
|
import { autocompleteUsername } from '../../core/discord/autocompleteUsername';
|
||||||
import { buttonRefresh } from '../../core/discord/buttonRefresh';
|
import { buttonRefresh } from '../../core/discord/buttonRefresh';
|
||||||
import commandToURL from '../../core/discord/commandToURL';
|
import { commandToURL } from '../../core/discord/commandToURL';
|
||||||
import { createLocalizedCommand } from '../../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../../core/discord/createLocalizedCommand';
|
||||||
import { getCustomPeriodParams } from '../../core/discord/getCustomPeriodParams';
|
import { getCustomPeriodParams } from '../../core/discord/getCustomPeriodParams';
|
||||||
import { getFiltersFromButton } from '../../core/discord/getFiltersFromButton';
|
import { getFiltersFromButton } from '../../core/discord/getFiltersFromButton';
|
||||||
import { getFiltersFromCommand } from '../../core/discord/getFiltersFromCommand';
|
import { getFiltersFromCommand } from '../../core/discord/getFiltersFromCommand';
|
||||||
import resolvePeriodFromButton from '../../core/discord/resolvePeriodFromButton';
|
import { resolvePeriodFromButton } from '../../core/discord/resolvePeriodFromButton';
|
||||||
import resolvePeriodFromCommand from '../../core/discord/resolvePeriodFromCommand';
|
import { resolvePeriodFromCommand } from '../../core/discord/resolvePeriodFromCommand';
|
||||||
import resolvePlayerFromButton from '../../core/discord/resolvePlayerFromButton';
|
import { resolvePlayerFromButton } from '../../core/discord/resolvePlayerFromButton';
|
||||||
import resolvePlayerFromCommand from '../../core/discord/resolvePlayerFromCommand';
|
import { resolvePlayerFromCommand } from '../../core/discord/resolvePlayerFromCommand';
|
||||||
import { CommandRegistry } from '../../events/interactionCreate';
|
import { CommandRegistry } from '../../events/interactionCreate';
|
||||||
import { renderBreakdown } from './render';
|
import { renderBreakdown } from './render';
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
import {
|
import {
|
||||||
|
blitzStarsTankAverages,
|
||||||
BlitzStats,
|
BlitzStats,
|
||||||
|
calculateWN8,
|
||||||
filterStats,
|
filterStats,
|
||||||
|
getWN8Percentile,
|
||||||
StatFilters,
|
StatFilters,
|
||||||
TankDefinition,
|
TankDefinition,
|
||||||
tankDefinitions,
|
tankDefinitions,
|
||||||
} from '@blitzkit/core';
|
} from '@blitzkit/core';
|
||||||
import { blitzStarsTankAverages } from '@blitzkit/core/src/blitzstars/tankAverages';
|
|
||||||
import calculateWN8 from '@blitzkit/core/src/statistics/calculateWN8';
|
|
||||||
import getWN8Percentile from '@blitzkit/core/src/statistics/getWN8Percentile';
|
|
||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import { chunk } from 'lodash';
|
import { chunk } from 'lodash';
|
||||||
import { getAccountInfo } from '../../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import getTankStats from '../../../../website/src/core/blitz/getTankStats';
|
import { getTankStats } from '../../../../website/src/core/blitz/getTankStats';
|
||||||
import { UserError } from '../../../../website/src/hooks/userError';
|
import { UserError } from '../../../../website/src/hooks/userError';
|
||||||
import * as Breakdown from '../../components/Breakdown';
|
import * as Breakdown from '../../components/Breakdown';
|
||||||
import CommandWrapper from '../../components/CommandWrapper';
|
import { CommandWrapper } from '../../components/CommandWrapper';
|
||||||
import NoData from '../../components/NoData';
|
import { NoData } from '../../components/NoData';
|
||||||
import TitleBar from '../../components/TitleBar';
|
import { TitleBar } from '../../components/TitleBar';
|
||||||
import { filtersToDescription } from '../../core/blitzkit/filtersToDescription';
|
import { filtersToDescription } from '../../core/blitzkit/filtersToDescription';
|
||||||
import getStatsInPeriod from '../../core/blitzstars/getStatsInPeriod';
|
import { getStatsInPeriod } from '../../core/blitzstars/getStatsInPeriod';
|
||||||
import { ResolvedPeriod } from '../../core/discord/resolvePeriodFromCommand';
|
import { ResolvedPeriod } from '../../core/discord/resolvePeriodFromCommand';
|
||||||
import { ResolvedPlayer } from '../../core/discord/resolvePlayerFromCommand';
|
import { ResolvedPlayer } from '../../core/discord/resolvePlayerFromCommand';
|
||||||
import { translator } from '../../core/localization/translator';
|
import { translator } from '../../core/localization/translator';
|
||||||
|
|||||||
@@ -2,31 +2,33 @@ import { Locale, SlashCommandSubcommandGroupBuilder } from 'discord.js';
|
|||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import * as Graph from '../components/Graph';
|
import * as Graph from '../components/Graph';
|
||||||
import { LineColor } from '../components/Graph/components/Line/constants';
|
import { LineColor } from '../components/Graph/components/Line/constants';
|
||||||
import NoData from '../components/NoData';
|
import { NoData } from '../components/NoData';
|
||||||
import TitleBar from '../components/TitleBar';
|
import { TitleBar } from '../components/TitleBar';
|
||||||
import resolveTankId from '../core/blitz/resolveTankId';
|
import { resolveTankId } from '../core/blitz/resolveTankId';
|
||||||
import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton';
|
import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton';
|
||||||
import getPlayerHistories from '../core/blitzstars/getPlayerHistories';
|
import { getPlayerHistories } from '../core/blitzstars/getPlayerHistories';
|
||||||
import getTankHistories from '../core/blitzstars/getTankHistories';
|
import { getTankHistories } from '../core/blitzstars/getTankHistories';
|
||||||
import { addPeriodSubCommands } from '../core/discord/addPeriodSubCommands';
|
import { addPeriodSubCommands } from '../core/discord/addPeriodSubCommands';
|
||||||
import addTankChoices from '../core/discord/addTankChoices';
|
import { addTankChoices } from '../core/discord/addTankChoices';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import autocompleteTanks from '../core/discord/autocompleteTanks';
|
import { autocompleteTanks } from '../core/discord/autocompleteTanks';
|
||||||
import autocompleteUsername from '../core/discord/autocompleteUsername';
|
import { autocompleteUsername } from '../core/discord/autocompleteUsername';
|
||||||
import { buttonRefresh } from '../core/discord/buttonRefresh';
|
import { buttonRefresh } from '../core/discord/buttonRefresh';
|
||||||
import commandToURL from '../core/discord/commandToURL';
|
import { commandToURL } from '../core/discord/commandToURL';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import { getCustomPeriodParams } from '../core/discord/getCustomPeriodParams';
|
import { getCustomPeriodParams } from '../core/discord/getCustomPeriodParams';
|
||||||
import resolvePeriodFromButton from '../core/discord/resolvePeriodFromButton';
|
import { resolvePeriodFromButton } from '../core/discord/resolvePeriodFromButton';
|
||||||
import resolvePeriodFromCommand, {
|
import {
|
||||||
ResolvedPeriod,
|
ResolvedPeriod,
|
||||||
|
resolvePeriodFromCommand,
|
||||||
} from '../core/discord/resolvePeriodFromCommand';
|
} from '../core/discord/resolvePeriodFromCommand';
|
||||||
import resolvePlayerFromButton from '../core/discord/resolvePlayerFromButton';
|
import { resolvePlayerFromButton } from '../core/discord/resolvePlayerFromButton';
|
||||||
import resolvePlayerFromCommand, {
|
import {
|
||||||
ResolvedPlayer,
|
ResolvedPlayer,
|
||||||
|
resolvePlayerFromCommand,
|
||||||
} from '../core/discord/resolvePlayerFromCommand';
|
} from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
|
|
||||||
|
|||||||
@@ -3,31 +3,33 @@ import { Locale } from 'discord.js';
|
|||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import GenericAllStats from '../components/GenericAllStats';
|
import { GenericAllStats } from '../components/GenericAllStats';
|
||||||
import NoData from '../components/NoData';
|
import { NoData } from '../components/NoData';
|
||||||
import TierWeights from '../components/TierWeights';
|
import { TierWeights } from '../components/TierWeights';
|
||||||
import TitleBar from '../components/TitleBar';
|
import { TitleBar } from '../components/TitleBar';
|
||||||
import { filtersToDescription } from '../core/blitzkit/filtersToDescription';
|
import { filtersToDescription } from '../core/blitzkit/filtersToDescription';
|
||||||
import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton';
|
import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton';
|
||||||
import getStatsInPeriod from '../core/blitzstars/getStatsInPeriod';
|
import { getStatsInPeriod } from '../core/blitzstars/getStatsInPeriod';
|
||||||
import addPeriodicFilterOptions from '../core/discord/addPeriodicFilterOptions';
|
import { addPeriodicFilterOptions } from '../core/discord/addPeriodicFilterOptions';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import autocompleteTanks from '../core/discord/autocompleteTanks';
|
import { autocompleteTanks } from '../core/discord/autocompleteTanks';
|
||||||
import autocompleteUsername from '../core/discord/autocompleteUsername';
|
import { autocompleteUsername } from '../core/discord/autocompleteUsername';
|
||||||
import { buttonRefresh } from '../core/discord/buttonRefresh';
|
import { buttonRefresh } from '../core/discord/buttonRefresh';
|
||||||
import commandToURL from '../core/discord/commandToURL';
|
import { commandToURL } from '../core/discord/commandToURL';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import { getCustomPeriodParams } from '../core/discord/getCustomPeriodParams';
|
import { getCustomPeriodParams } from '../core/discord/getCustomPeriodParams';
|
||||||
import { getFiltersFromButton } from '../core/discord/getFiltersFromButton';
|
import { getFiltersFromButton } from '../core/discord/getFiltersFromButton';
|
||||||
import { getFiltersFromCommand } from '../core/discord/getFiltersFromCommand';
|
import { getFiltersFromCommand } from '../core/discord/getFiltersFromCommand';
|
||||||
import resolvePeriodFromButton from '../core/discord/resolvePeriodFromButton';
|
import { resolvePeriodFromButton } from '../core/discord/resolvePeriodFromButton';
|
||||||
import resolvePeriodFromCommand, {
|
import {
|
||||||
ResolvedPeriod,
|
ResolvedPeriod,
|
||||||
|
resolvePeriodFromCommand,
|
||||||
} from '../core/discord/resolvePeriodFromCommand';
|
} from '../core/discord/resolvePeriodFromCommand';
|
||||||
import resolvePlayerFromButton from '../core/discord/resolvePlayerFromButton';
|
import { resolvePlayerFromButton } from '../core/discord/resolvePlayerFromButton';
|
||||||
import resolvePlayerFromCommand, {
|
import {
|
||||||
ResolvedPlayer,
|
ResolvedPlayer,
|
||||||
|
resolvePlayerFromCommand,
|
||||||
} from '../core/discord/resolvePlayerFromCommand';
|
} from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { getClanInfo } from '../../../website/src/core/blitz/getClanInfo';
|
import { getClanInfo } from '../../../website/src/core/blitz/getClanInfo';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import GenericStats from '../components/GenericStats';
|
import { GenericStats } from '../components/GenericStats';
|
||||||
import NoData from '../components/NoData';
|
import { NoData } from '../components/NoData';
|
||||||
import TitleBar from '../components/TitleBar';
|
import { TitleBar } from '../components/TitleBar';
|
||||||
import addClanChoices from '../core/discord/addClanChoices';
|
import { addClanChoices } from '../core/discord/addClanChoices';
|
||||||
import autocompleteClan from '../core/discord/autocompleteClan';
|
import autocompleteClan from '../core/discord/autocompleteClan';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import { localizationObject } from '../core/discord/localizationObject';
|
import { localizationObject } from '../core/discord/localizationObject';
|
||||||
|
|||||||
@@ -3,12 +3,12 @@ import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
|||||||
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import { linkBlitzAndDiscord } from '../../../website/src/core/blitzkit/linkBlitzAndDiscord';
|
import { linkBlitzAndDiscord } from '../../../website/src/core/blitzkit/linkBlitzAndDiscord';
|
||||||
import { Glow } from '../components/AllStatsOverview/components/HeroStat/components/Glow';
|
import { Glow } from '../components/AllStatsOverview/components/HeroStat/components/Glow';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import autocompleteUsername from '../core/discord/autocompleteUsername';
|
import { autocompleteUsername } from '../core/discord/autocompleteUsername';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import embedInfo from '../core/discord/embedInfo';
|
import { embedInfo } from '../core/discord/embedInfo';
|
||||||
import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand';
|
import { resolvePlayerFromCommand } from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { translator } from '../core/localization/translator';
|
import { translator } from '../core/localization/translator';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
import { theme } from '../stitches.config';
|
import { theme } from '../stitches.config';
|
||||||
|
|||||||
@@ -4,18 +4,18 @@ import {
|
|||||||
TankDefinition,
|
TankDefinition,
|
||||||
Tier,
|
Tier,
|
||||||
flags,
|
flags,
|
||||||
|
gameDefinitions,
|
||||||
tankDefinitions,
|
tankDefinitions,
|
||||||
} from '@blitzkit/core';
|
} from '@blitzkit/core';
|
||||||
import { gameDefinitions } from '@blitzkit/core/src/blitzkit/gameDefinitions';
|
|
||||||
import { chunk } from 'lodash';
|
import { chunk } from 'lodash';
|
||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import getTankStats from '../../../website/src/core/blitz/getTankStats';
|
import { getTankStats } from '../../../website/src/core/blitz/getTankStats';
|
||||||
import addTierChoices from '../core/discord/addTierChoices';
|
import { addTierChoices } from '../core/discord/addTierChoices';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import autocompleteUsername from '../core/discord/autocompleteUsername';
|
import { autocompleteUsername } from '../core/discord/autocompleteUsername';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand';
|
import { resolvePlayerFromCommand } from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { translator } from '../core/localization/translator';
|
import { translator } from '../core/localization/translator';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import autocompleteUsername from '../core/discord/autocompleteUsername';
|
import { autocompleteUsername } from '../core/discord/autocompleteUsername';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import embedInfo from '../core/discord/embedInfo';
|
import { embedInfo } from '../core/discord/embedInfo';
|
||||||
import markdownTable from '../core/discord/markdownTable';
|
import { markdownTable } from '../core/discord/markdownTable';
|
||||||
import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand';
|
import { resolvePlayerFromCommand } from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { translator } from '../core/localization/translator';
|
import { translator } from '../core/localization/translator';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,25 @@
|
|||||||
import { BkrlFormat, deltaBkrlBlitzStats } from '@blitzkit/core';
|
import {
|
||||||
|
BkrlFormat,
|
||||||
|
deltaBkrlBlitzStats,
|
||||||
|
getLeagueFromScore,
|
||||||
|
getRatingInfo,
|
||||||
|
} from '@blitzkit/core';
|
||||||
|
import { getArchivedRatingMidnightLeaderboard } from '@blitzkit/core/src/blitzkit/getArchivedRatingMidnightLeaderboard';
|
||||||
import { SlashCommandSubcommandBuilder } from 'discord.js';
|
import { SlashCommandSubcommandBuilder } from 'discord.js';
|
||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import { getLeagueFromScore } from '../../../website/src/core/blitz/getLeagueFromScore';
|
|
||||||
import getRatingInfo from '../../../website/src/core/blitz/getRatingInfo';
|
|
||||||
import { getRatingNeighbors } from '../../../website/src/core/blitz/getRatingNeighbors';
|
import { getRatingNeighbors } from '../../../website/src/core/blitz/getRatingNeighbors';
|
||||||
import { normalizeLeagueIcon } from '../../../website/src/core/blitz/normalizeLeagueIcon';
|
|
||||||
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
||||||
import getArchivedRatingMidnightLeaderboard from '../../../website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard';
|
|
||||||
import { iconPng } from '../../../website/src/core/blitzkit/iconPng';
|
import { iconPng } from '../../../website/src/core/blitzkit/iconPng';
|
||||||
import { Glow } from '../components/AllStatsOverview/components/HeroStat/components/Glow';
|
import { Glow } from '../components/AllStatsOverview/components/HeroStat/components/Glow';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import { DeltaCaret } from '../components/DeltaCaret';
|
import { DeltaCaret } from '../components/DeltaCaret';
|
||||||
import TitleBar from '../components/TitleBar';
|
import { TitleBar } from '../components/TitleBar';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { normalizeLeagueIcon } from '../core/blitz/normalizeLeagueIcon';
|
||||||
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand';
|
import { resolvePlayerFromCommand } from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { translator } from '../core/localization/translator';
|
import { translator } from '../core/localization/translator';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
import { theme } from '../stitches.config';
|
import { theme } from '../stitches.config';
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
import {
|
import {
|
||||||
BkrlDiscriminatedEntries,
|
BkrlDiscriminatedEntries,
|
||||||
FIRST_MINIMAL_ARCHIVED_RATING_SEASON,
|
FIRST_MINIMAL_ARCHIVED_RATING_SEASON,
|
||||||
|
getArchivedLatestSeasonNumber,
|
||||||
|
getArchivedRatingInfo,
|
||||||
|
getArchivedRatingLeaderboard,
|
||||||
|
getRatingInfo,
|
||||||
LEAGUES,
|
LEAGUES,
|
||||||
RatingInfo,
|
RatingInfo,
|
||||||
Region,
|
Region,
|
||||||
} from '@blitzkit/core';
|
} from '@blitzkit/core';
|
||||||
|
import { getArchivedRatingMidnightLeaderboard } from '@blitzkit/core/src/blitzkit/getArchivedRatingMidnightLeaderboard';
|
||||||
import {
|
import {
|
||||||
APIApplicationCommandOptionChoice,
|
APIApplicationCommandOptionChoice,
|
||||||
Locale,
|
Locale,
|
||||||
@@ -14,24 +19,19 @@ import { range } from 'lodash';
|
|||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import getRatingInfo from '../../../website/src/core/blitz/getRatingInfo';
|
|
||||||
import { getRatingLeague } from '../../../website/src/core/blitz/getRatingLeague';
|
import { getRatingLeague } from '../../../website/src/core/blitz/getRatingLeague';
|
||||||
import { getRatingNeighbors } from '../../../website/src/core/blitz/getRatingNeighbors';
|
import { getRatingNeighbors } from '../../../website/src/core/blitz/getRatingNeighbors';
|
||||||
import { isOnGoingRatingSeason } from '../../../website/src/core/blitz/isOnGoingRatingSeason';
|
import { isOnGoingRatingSeason } from '../../../website/src/core/blitz/isOnGoingRatingSeason';
|
||||||
import { getArchivedLatestSeasonNumber } from '../../../website/src/core/blitzkit/getArchivedLatestSeasonNumber';
|
|
||||||
import getArchivedRatingInfo from '../../../website/src/core/blitzkit/getArchivedRatingInfo';
|
|
||||||
import { getArchivedRatingLeaderboard } from '../../../website/src/core/blitzkit/getArchivedRatingLeaderboard';
|
|
||||||
import getArchivedRatingMidnightLeaderboard from '../../../website/src/core/blitzkit/getArchivedRatingMidnightLeaderboard';
|
|
||||||
import { UserError } from '../../../website/src/hooks/userError';
|
import { UserError } from '../../../website/src/hooks/userError';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import * as Leaderboard from '../components/Leaderboard';
|
import * as Leaderboard from '../components/Leaderboard';
|
||||||
import TitleBar from '../components/TitleBar';
|
import { TitleBar } from '../components/TitleBar';
|
||||||
import addRegionChoices from '../core/discord/addRegionChoices';
|
import { addRegionChoices } from '../core/discord/addRegionChoices';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import autocompleteUsername from '../core/discord/autocompleteUsername';
|
import { autocompleteUsername } from '../core/discord/autocompleteUsername';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import { localizationObject } from '../core/discord/localizationObject';
|
import { localizationObject } from '../core/discord/localizationObject';
|
||||||
import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand';
|
import { resolvePlayerFromCommand } from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { translator } from '../core/localization/translator';
|
import { translator } from '../core/localization/translator';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
import {
|
import {
|
||||||
|
blitzStarsTankAverages,
|
||||||
|
calculateWN8,
|
||||||
idToRegion,
|
idToRegion,
|
||||||
tankDefinitions,
|
tankDefinitions,
|
||||||
|
tankIcon,
|
||||||
TIER_ROMAN_NUMERALS,
|
TIER_ROMAN_NUMERALS,
|
||||||
} from '@blitzkit/core';
|
} from '@blitzkit/core';
|
||||||
import { tankIcon } from '@blitzkit/core/src/blitzkit/tankIcon';
|
|
||||||
import { blitzStarsTankAverages } from '@blitzkit/core/src/blitzstars/tankAverages';
|
|
||||||
import calculateWN8 from '@blitzkit/core/src/statistics/calculateWN8';
|
|
||||||
import { clamp } from 'lodash';
|
import { clamp } from 'lodash';
|
||||||
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
||||||
import { iconPng } from '../../../website/src/core/blitzkit/iconPng';
|
import { iconPng } from '../../../website/src/core/blitzkit/iconPng';
|
||||||
import { mapDefinitions } from '../../../website/src/core/blitzkit/mapDefinitions';
|
import { mapDefinitions } from '../../../website/src/core/blitzkit/mapDefinitions';
|
||||||
import { RenderConfiguration } from '../../../website/src/core/blitzkit/renderConfiguration';
|
import { RenderConfiguration } from '../../../website/src/core/blitzkit/renderConfiguration';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import TitleBar from '../components/TitleBar';
|
import { TitleBar } from '../components/TitleBar';
|
||||||
import buttonLink from '../core/discord/buttonLink';
|
import { buttonLink } from '../core/discord/buttonLink';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
import { theme } from '../stitches.config';
|
import { theme } from '../stitches.config';
|
||||||
|
|||||||
@@ -8,20 +8,20 @@ import {
|
|||||||
import { escapeMarkdown, Locale } from 'discord.js';
|
import { escapeMarkdown, Locale } from 'discord.js';
|
||||||
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
import { getAccountInfo } from '../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
import { getClanAccountInfo } from '../../../website/src/core/blitz/getClanAccountInfo';
|
||||||
import getTankStats from '../../../website/src/core/blitz/getTankStats';
|
import { getTankStats } from '../../../website/src/core/blitz/getTankStats';
|
||||||
import { buildTechTreeLine } from '../../../website/src/core/blitzkit/buildTechTreeLine';
|
import { buildTechTreeLine } from '../../../website/src/core/blitzkit/buildTechTreeLine';
|
||||||
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
|
||||||
import { iconPng } from '../../../website/src/core/blitzkit/iconPng';
|
import { iconPng } from '../../../website/src/core/blitzkit/iconPng';
|
||||||
import { resolveAncestry } from '../../../website/src/core/blitzkit/resolveAncestry';
|
import { resolveAncestry } from '../../../website/src/core/blitzkit/resolveAncestry';
|
||||||
import { tankIconPng } from '../../../website/src/core/blitzkit/tankIconPng';
|
import { tankIconPng } from '../../../website/src/core/blitzkit/tankIconPng';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import { CommandWrapper } from '../components/CommandWrapper';
|
||||||
import TitleBar from '../components/TitleBar';
|
import { TitleBar } from '../components/TitleBar';
|
||||||
import resolveTankId from '../core/blitz/resolveTankId';
|
import { resolveTankId } from '../core/blitz/resolveTankId';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import { addUsernameChoices } from '../core/discord/addUsernameChoices';
|
||||||
import autocompleteTanks from '../core/discord/autocompleteTanks';
|
import { autocompleteTanks } from '../core/discord/autocompleteTanks';
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import { localizationObject } from '../core/discord/localizationObject';
|
import { localizationObject } from '../core/discord/localizationObject';
|
||||||
import resolvePlayerFromCommand from '../core/discord/resolvePlayerFromCommand';
|
import { resolvePlayerFromCommand } from '../core/discord/resolvePlayerFromCommand';
|
||||||
import { translator } from '../core/localization/translator';
|
import { translator } from '../core/localization/translator';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
import { theme } from '../stitches.config';
|
import { theme } from '../stitches.config';
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { ClanList, Region } from '@blitzkit/core';
|
import { ClanList, Region } from '@blitzkit/core';
|
||||||
|
import { fetchBlitz } from '@blitzkit/core/src/blitz/fetchBlitz';
|
||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import fetchBlitz from '../../../website/src/core/blitz/fetchBlitz';
|
import { addClanChoices } from '../core/discord/addClanChoices';
|
||||||
import addClanChoices from '../core/discord/addClanChoices';
|
import { addRegionChoices } from '../core/discord/addRegionChoices';
|
||||||
import addRegionChoices from '../core/discord/addRegionChoices';
|
|
||||||
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||||
import embedInfo from '../core/discord/embedInfo';
|
import { embedInfo } from '../core/discord/embedInfo';
|
||||||
import { localizationObject } from '../core/discord/localizationObject';
|
import { localizationObject } from '../core/discord/localizationObject';
|
||||||
import { translator } from '../core/localization/translator';
|
import { translator } from '../core/localization/translator';
|
||||||
import { CommandRegistry } from '../events/interactionCreate';
|
import { CommandRegistry } from '../events/interactionCreate';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { Region } from '@blitzkit/core';
|
||||||
|
import fetchBlitz from '@blitzkit/core/src/blitz/fetchBlitz';
|
||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import fetchBlitz from '../../../website/src/core/blitz/fetchBlitz';
|
|
||||||
import { AccountList } from '../../../website/src/core/blitz/searchPlayersAcrossRegions';
|
import { AccountList } from '../../../website/src/core/blitz/searchPlayersAcrossRegions';
|
||||||
import { usernamePattern } from '../../../website/src/core/blitz/searchPlayersAcrossRegions/constants';
|
import { usernamePattern } from '../../../website/src/core/blitz/searchPlayersAcrossRegions/constants';
|
||||||
import addRegionChoices from '../core/discord/addRegionChoices';
|
import addRegionChoices from '../core/discord/addRegionChoices';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { gameDefinitions } from '@blitzkit/core/src/blitzkit/gameDefinitions';
|
import { gameDefinitions } from '@blitzkit/core';
|
||||||
import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton';
|
import { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton';
|
||||||
import { addFilterOptions } from '../core/discord/addFilterOptions';
|
import { addFilterOptions } from '../core/discord/addFilterOptions';
|
||||||
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
import addUsernameChoices from '../core/discord/addUsernameChoices';
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
|
import { getWN8Percentile, Percentile } from '@blitzkit/core';
|
||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import { SupplementaryStats } from '../../../../website/src/core/blitz/getAccountInfo';
|
import { SupplementaryStats } from '../../../../website/src/core/blitz/getAccountInfo';
|
||||||
|
import { translator } from '../../core/localization/translator';
|
||||||
import { PERCENTILE_COLORS } from '../PercentileIndicator/constants';
|
import { PERCENTILE_COLORS } from '../PercentileIndicator/constants';
|
||||||
import { HeroStat } from './components/HeroStat';
|
import { HeroStat } from './components/HeroStat';
|
||||||
import {
|
import {
|
||||||
WN8SurroundingStat,
|
WN8SurroundingStat,
|
||||||
WN8SurroundingStatAlign,
|
WN8SurroundingStatAlign,
|
||||||
} from './components/WN8SurroundingStat';
|
} from './components/WN8SurroundingStat';
|
||||||
import { translator } from '../../core/localization/translator';
|
|
||||||
import getWN8Percentile from '@blitzkit/core/src/statistics/getWN8Percentile';
|
|
||||||
|
|
||||||
export interface AllStatsOverviewProps {
|
export interface AllStatsOverviewProps {
|
||||||
stats: {
|
stats: {
|
||||||
@@ -25,7 +24,7 @@ export interface AllStatsOverviewProps {
|
|||||||
locale: Locale;
|
locale: Locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function AllStatsOverview({
|
export function AllStatsOverview({
|
||||||
stats,
|
stats,
|
||||||
locale,
|
locale,
|
||||||
supplementaryStats,
|
supplementaryStats,
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
import { TankClass, TreeType } from '@blitzkit/core';
|
import {
|
||||||
import { TREE_TYPE_ICONS } from '@blitzkit/core/src/blitzkit/tankDefinitions/constants';
|
Percentile,
|
||||||
import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
|
TankClass,
|
||||||
|
TREE_TYPE_ICONS,
|
||||||
|
TreeType,
|
||||||
|
} from '@blitzkit/core';
|
||||||
import { createColors } from 'bepaint';
|
import { createColors } from 'bepaint';
|
||||||
import {
|
import {
|
||||||
AccentColor,
|
AccentColor,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
|
import { Percentile } from '@blitzkit/core';
|
||||||
import { createColors } from 'bepaint';
|
import { createColors } from 'bepaint';
|
||||||
import {
|
import {
|
||||||
AccentColor,
|
AccentColor,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ interface CommandWrapperProps {
|
|||||||
fat?: boolean;
|
fat?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function CommandWrapper({ children, fat }: CommandWrapperProps) {
|
export function CommandWrapper({ children, fat }: CommandWrapperProps) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { asset } from '@blitzkit/core/src/blitzkit/asset';
|
import { asset } from '@blitzkit/core';
|
||||||
|
|
||||||
interface FlagProps {
|
interface FlagProps {
|
||||||
nation: string;
|
nation: string;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
|
import { Percentile } from '@blitzkit/core';
|
||||||
import { theme } from '../../../stitches.config';
|
import { theme } from '../../../stitches.config';
|
||||||
import PercentileIndicator from '../../PercentileIndicator';
|
import { PercentileIndicator } from '../../PercentileIndicator';
|
||||||
|
|
||||||
interface CardItem {
|
interface CardItem {
|
||||||
label: string;
|
label: string;
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
import { BlitzStats } from '@blitzkit/core';
|
import { BlitzStats, getWN8Percentile, isNumber } from '@blitzkit/core';
|
||||||
import isNumber from '@blitzkit/core/src/math/isNumber';
|
|
||||||
import getWN8Percentile from '@blitzkit/core/src/statistics/getWN8Percentile';
|
|
||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import { SupplementaryStats } from '../../../../website/src/core/blitz/getAccountInfo';
|
import { SupplementaryStats } from '../../../../website/src/core/blitz/getAccountInfo';
|
||||||
import { translator } from '../../core/localization/translator';
|
import { translator } from '../../core/localization/translator';
|
||||||
@@ -14,7 +12,7 @@ interface GenericAllStatsProps {
|
|||||||
locale: Locale;
|
locale: Locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function GenericAllStats({
|
export function GenericAllStats({
|
||||||
stats,
|
stats,
|
||||||
supplementaryStats,
|
supplementaryStats,
|
||||||
locale,
|
locale,
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { GenericStat } from '..';
|
import { GenericStat } from '..';
|
||||||
import GenericStatsRow from './GenericStatsRow';
|
import { GenericStatsRow } from './GenericStatsRow';
|
||||||
|
|
||||||
interface GenericStatsColumnProps {
|
interface GenericStatsColumnProps {
|
||||||
stats: GenericStat[];
|
stats: GenericStat[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function GenericStatsColumn({ stats }: GenericStatsColumnProps) {
|
export function GenericStatsColumn({ stats }: GenericStatsColumnProps) {
|
||||||
return (
|
return (
|
||||||
<div style={{ flex: 1, display: 'flex', flexDirection: 'column', gap: 8 }}>
|
<div style={{ flex: 1, display: 'flex', flexDirection: 'column', gap: 8 }}>
|
||||||
{stats.map((stat) => (
|
{stats.map((stat) => (
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import { GenericStat } from '..';
|
import { GenericStat } from '..';
|
||||||
import { theme } from '../../../stitches.config';
|
import { theme } from '../../../stitches.config';
|
||||||
import PercentileIndicator from '../../PercentileIndicator';
|
import { PercentileIndicator } from '../../PercentileIndicator';
|
||||||
|
|
||||||
interface GenericStatsRowProps {
|
interface GenericStatsRowProps {
|
||||||
stat: GenericStat;
|
stat: GenericStat;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function GenericStatsRow({ stat }: GenericStatsRowProps) {
|
export function GenericStatsRow({ stat }: GenericStatsRowProps) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
|
import { Percentile } from '@blitzkit/core';
|
||||||
import GenericStatsColumn from './components/GenericStatsColumn';
|
import { GenericStatsColumn } from './components/GenericStatsColumn';
|
||||||
|
|
||||||
export type GenericStat =
|
export type GenericStat =
|
||||||
| [string, string | number | undefined]
|
| [string, string | number | undefined]
|
||||||
@@ -10,10 +10,7 @@ export interface GenericStatsProps {
|
|||||||
columnCount?: number;
|
columnCount?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function GenericStats({
|
export function GenericStats({ stats, columnCount = 2 }: GenericStatsProps) {
|
||||||
stats,
|
|
||||||
columnCount = 2,
|
|
||||||
}: GenericStatsProps) {
|
|
||||||
const filteredStats = stats.filter(([, value]) => value !== undefined);
|
const filteredStats = stats.filter(([, value]) => value !== undefined);
|
||||||
const itemsPerRow = Math.ceil(filteredStats.length / columnCount);
|
const itemsPerRow = Math.ceil(filteredStats.length / columnCount);
|
||||||
const columns: GenericStat[][] = [];
|
const columns: GenericStat[][] = [];
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ interface NoDataProps {
|
|||||||
locale: Locale;
|
locale: Locale;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function NoData({ type, locale }: NoDataProps) {
|
export function NoData({ type, locale }: NoDataProps) {
|
||||||
const { translate } = translator(locale);
|
const { translate } = translator(locale);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
|
import { Percentile } from '@blitzkit/core';
|
||||||
import {
|
import {
|
||||||
amber,
|
amber,
|
||||||
blue,
|
blue,
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
|
import { Percentile } from '@blitzkit/core';
|
||||||
import { PERCENTILE_COLORS } from './constants';
|
import { PERCENTILE_COLORS } from './constants';
|
||||||
|
|
||||||
interface PercentileIndicatorProps {
|
interface PercentileIndicatorProps {
|
||||||
percentile: Percentile;
|
percentile: Percentile;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function PercentileIndicator({
|
export function PercentileIndicator({ percentile }: PercentileIndicatorProps) {
|
||||||
percentile,
|
|
||||||
}: PercentileIndicatorProps) {
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { TankClass, TreeType } from '@blitzkit/core';
|
import { TankClass, TREE_TYPE_ICONS, TreeType } from '@blitzkit/core';
|
||||||
import { TREE_TYPE_ICONS } from '@blitzkit/core/src/blitzkit/tankDefinitions/constants';
|
|
||||||
import { theme } from '../../../../stitches.config';
|
import { theme } from '../../../../stitches.config';
|
||||||
|
|
||||||
export interface ItemProps {
|
export interface ItemProps {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { TierWeightsRecord } from '@blitzkit/core/src/statistics/getTierWeights';
|
import { TierWeightsRecord } from '@blitzkit/core';
|
||||||
import { theme } from '../stitches.config';
|
import { theme } from '../stitches.config';
|
||||||
|
|
||||||
interface TierWeightsProps {
|
interface TierWeightsProps {
|
||||||
weights: TierWeightsRecord;
|
weights: TierWeightsRecord;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function TierWeights({ weights }: TierWeightsProps) {
|
export function TierWeights({ weights }: TierWeightsProps) {
|
||||||
return (
|
return (
|
||||||
<div style={{ display: 'flex', gap: 8 }}>
|
<div style={{ display: 'flex', gap: 8 }}>
|
||||||
{Object.entries(weights).map(([tier, weight]) => (
|
{Object.entries(weights).map(([tier, weight]) => (
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ interface TitleBarProps {
|
|||||||
description?: string;
|
description?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function TitleBar({ title, image, description }: TitleBarProps) {
|
export function TitleBar({ title, image, description }: TitleBarProps) {
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
File renamed without changes.
@@ -6,7 +6,7 @@ import { UserError } from '../../../../website/src/hooks/userError';
|
|||||||
import { tankNamesTechTreeOnly } from '../discord/autocompleteTanks';
|
import { tankNamesTechTreeOnly } from '../discord/autocompleteTanks';
|
||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
|
|
||||||
export default async function resolveTankId(
|
export async function resolveTankId(
|
||||||
tank: string | number,
|
tank: string | number,
|
||||||
locale: Locale,
|
locale: Locale,
|
||||||
techTreeOnly = false,
|
techTreeOnly = false,
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
export default function getPeriodNow() {
|
export function getPeriodNow() {
|
||||||
return Date.now() / 1000;
|
return Date.now() / 1000;
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ import { Region } from '@blitzkit/core';
|
|||||||
import getTimeDaysAgo from '../../../../website/src/core/blitzkit/getTimeDaysAgo';
|
import getTimeDaysAgo from '../../../../website/src/core/blitzkit/getTimeDaysAgo';
|
||||||
import { PeriodSize } from '../discord/addPeriodSubCommands';
|
import { PeriodSize } from '../discord/addPeriodSubCommands';
|
||||||
|
|
||||||
export default function getPeriodStart(region: Region, period: PeriodSize) {
|
export function getPeriodStart(region: Region, period: PeriodSize) {
|
||||||
if (period === 'career') return 0;
|
if (period === 'career') return 0;
|
||||||
if (period === 'today') return getTimeDaysAgo(region, 1);
|
if (period === 'today') return getTimeDaysAgo(region, 1);
|
||||||
return getTimeDaysAgo(region, parseInt(period));
|
return getTimeDaysAgo(region, parseInt(period));
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import jsxToSvg from './jsxToSvg';
|
import { jsxToSvg } from './jsxToSvg';
|
||||||
import svgToPng from './svgToPng';
|
import { svgToPng } from './svgToPng';
|
||||||
|
|
||||||
export default async function jsxToPng(jsx: JSX.Element) {
|
export async function jsxToPng(jsx: JSX.Element) {
|
||||||
const svg = await jsxToSvg(jsx);
|
const svg = await jsxToSvg(jsx);
|
||||||
const png = svgToPng(svg);
|
const png = svgToPng(svg);
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { RenderConfiguration } from '../../../../website/src/core/blitzkit/renderConfiguration';
|
import { RenderConfiguration } from '../../../../website/src/core/blitzkit/renderConfiguration';
|
||||||
import jsxToSvg from './jsxToSvg';
|
import { jsxToSvg } from './jsxToSvg';
|
||||||
import { svgToPngThreaded } from './svgToPngThreaded';
|
import { svgToPngThreaded } from './svgToPngThreaded';
|
||||||
|
|
||||||
export default async function jsxToPngThreaded(
|
export async function jsxToPngThreaded(
|
||||||
jsx: JSX.Element,
|
jsx: JSX.Element,
|
||||||
renderConfiguration: RenderConfiguration,
|
renderConfiguration: RenderConfiguration,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ const fontsPromise = [
|
|||||||
return { name: 'Roboto', weight, data };
|
return { name: 'Roboto', weight, data };
|
||||||
});
|
});
|
||||||
|
|
||||||
export default async function jsxToSvg(
|
export async function jsxToSvg(
|
||||||
jsx: JSX.Element,
|
jsx: JSX.Element,
|
||||||
renderConfiguration = new RenderConfiguration(),
|
renderConfiguration = new RenderConfiguration(),
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Resvg } from '@resvg/resvg-js';
|
import { Resvg } from '@resvg/resvg-js';
|
||||||
|
|
||||||
export default function svgToPng(svg: string) {
|
export function svgToPng(svg: string) {
|
||||||
return new Resvg(svg).render().asPng();
|
return new Resvg(svg).render().asPng();
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
} from '../../types/histories';
|
} from '../../types/histories';
|
||||||
import { PlayerStats } from './getPlayerStats';
|
import { PlayerStats } from './getPlayerStats';
|
||||||
|
|
||||||
export default async function getPlayerHistories(
|
export async function getPlayerHistories(
|
||||||
server: Region,
|
server: Region,
|
||||||
id: number,
|
id: number,
|
||||||
options?: Partial<GetHistoriesOptions>,
|
options?: Partial<GetHistoriesOptions>,
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
import { BlitzStats, emptyAllStats, Region } from '@blitzkit/core';
|
import {
|
||||||
import { DiffedTankStats } from '@blitzkit/core/src/statistics/filterStats';
|
BlitzStats,
|
||||||
|
DiffedTankStats,
|
||||||
|
emptyAllStats,
|
||||||
|
Region,
|
||||||
|
} from '@blitzkit/core';
|
||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import getTankHistories, {
|
import {
|
||||||
|
getTankHistories,
|
||||||
TankHistories,
|
TankHistories,
|
||||||
TankHistoryRaw,
|
TankHistoryRaw,
|
||||||
} from './getTankHistories';
|
} from './getTankHistories';
|
||||||
@@ -16,7 +21,7 @@ const emptyTankHistoryNode: TankHistoryRaw = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// BIG TODO: merge this neatly with diffNormalizedTankStats
|
// BIG TODO: merge this neatly with diffNormalizedTankStats
|
||||||
export default async function getStatsInPeriod(
|
export async function getStatsInPeriod(
|
||||||
server: Region,
|
server: Region,
|
||||||
id: number,
|
id: number,
|
||||||
start: number,
|
start: number,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Region, emptyAllStats } from '@blitzkit/core';
|
import { Region, emptyAllStats } from '@blitzkit/core';
|
||||||
import { Locale } from 'discord.js';
|
import { Locale } from 'discord.js';
|
||||||
import getTankStats from '../../../../website/src/core/blitz/getTankStats';
|
import { getTankStats } from '../../../../website/src/core/blitz/getTankStats';
|
||||||
import { UserError } from '../../../../website/src/hooks/userError';
|
import { UserError } from '../../../../website/src/hooks/userError';
|
||||||
import {
|
import {
|
||||||
GetHistoriesOptions,
|
GetHistoriesOptions,
|
||||||
@@ -33,7 +33,7 @@ const getTankHistoriesDefaultOptions: GetTankHistoriesOptions = {
|
|||||||
tankId: undefined,
|
tankId: undefined,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default async function getTankHistories(
|
export async function getTankHistories(
|
||||||
server: Region,
|
server: Region,
|
||||||
id: number,
|
id: number,
|
||||||
locale: Locale,
|
locale: Locale,
|
||||||
@@ -52,7 +52,7 @@ export default async function getTankHistories(
|
|||||||
all: history.all,
|
all: history.all,
|
||||||
last_battle_time: history.last_battle_time,
|
last_battle_time: history.last_battle_time,
|
||||||
tank_id: history.tank_id,
|
tank_id: history.tank_id,
|
||||||
} satisfies TankHistory),
|
}) satisfies TankHistory,
|
||||||
);
|
);
|
||||||
const compliantTanks: number[] = [];
|
const compliantTanks: number[] = [];
|
||||||
const lastBattles: Record<number, number> = {};
|
const lastBattles: Record<number, number> = {};
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Locale, SlashCommandStringOption } from 'discord.js';
|
|||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import { localizationObject } from './localizationObject';
|
import { localizationObject } from './localizationObject';
|
||||||
|
|
||||||
export default function addClanChoices(option: SlashCommandStringOption) {
|
export function addClanChoices(option: SlashCommandStringOption) {
|
||||||
const { translate } = translator(Locale.EnglishUS);
|
const { translate } = translator(Locale.EnglishUS);
|
||||||
|
|
||||||
return option
|
return option
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import {
|
|||||||
SlashCommandSubcommandBuilder,
|
SlashCommandSubcommandBuilder,
|
||||||
} from 'discord.js';
|
} from 'discord.js';
|
||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import addTankChoices from './addTankChoices';
|
import { addTankChoices } from './addTankChoices';
|
||||||
import addTierChoices from './addTierChoices';
|
import { addTierChoices } from './addTierChoices';
|
||||||
import { localizationObject } from './localizationObject';
|
import { localizationObject } from './localizationObject';
|
||||||
|
|
||||||
export function addFilterOptions<
|
export function addFilterOptions<
|
||||||
@@ -38,7 +38,7 @@ export function addFilterOptions<
|
|||||||
name_localizations: localizationObject(
|
name_localizations: localizationObject(
|
||||||
`common.nations.${nation}`,
|
`common.nations.${nation}`,
|
||||||
),
|
),
|
||||||
} satisfies APIApplicationCommandOptionChoice),
|
}) satisfies APIApplicationCommandOptionChoice,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.setRequired(false),
|
.setRequired(false),
|
||||||
@@ -67,7 +67,7 @@ export function addFilterOptions<
|
|||||||
name_localizations: localizationObject(
|
name_localizations: localizationObject(
|
||||||
`common.tank_class_short.${tankType}`,
|
`common.tank_class_short.${tankType}`,
|
||||||
),
|
),
|
||||||
} satisfies APIApplicationCommandOptionChoice),
|
}) satisfies APIApplicationCommandOptionChoice,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.setRequired(false),
|
.setRequired(false),
|
||||||
@@ -95,7 +95,7 @@ export function addFilterOptions<
|
|||||||
name_localizations: localizationObject(
|
name_localizations: localizationObject(
|
||||||
`common.tree_type.${treeType}`,
|
`common.tree_type.${treeType}`,
|
||||||
),
|
),
|
||||||
} satisfies APIApplicationCommandOptionChoice),
|
}) satisfies APIApplicationCommandOptionChoice,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.setRequired(false),
|
.setRequired(false),
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { gameDefinitions } from '@blitzkit/core/src/blitzkit/gameDefinitions';
|
import { gameDefinitions } from '@blitzkit/core';
|
||||||
import {
|
import {
|
||||||
SlashCommandBuilder,
|
SlashCommandBuilder,
|
||||||
SlashCommandSubcommandBuilder,
|
SlashCommandSubcommandBuilder,
|
||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
import { addFilterOptions } from './addFilterOptions';
|
import { addFilterOptions } from './addFilterOptions';
|
||||||
import { addPeriodSubCommands } from './addPeriodSubCommands';
|
import { addPeriodSubCommands } from './addPeriodSubCommands';
|
||||||
|
|
||||||
export default async function addPeriodicFilterOptions<
|
export async function addPeriodicFilterOptions<
|
||||||
OptionType extends SlashCommandBuilder | SlashCommandSubcommandGroupBuilder,
|
OptionType extends SlashCommandBuilder | SlashCommandSubcommandGroupBuilder,
|
||||||
>(
|
>(
|
||||||
option: OptionType,
|
option: OptionType,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import { localizationObject } from './localizationObject';
|
import { localizationObject } from './localizationObject';
|
||||||
|
|
||||||
export default function addRegionChoices(option: SlashCommandStringOption) {
|
export function addRegionChoices(option: SlashCommandStringOption) {
|
||||||
const { t, translate } = translator(Locale.EnglishUS);
|
const { t, translate } = translator(Locale.EnglishUS);
|
||||||
|
|
||||||
return option
|
return option
|
||||||
@@ -26,7 +26,7 @@ export default function addRegionChoices(option: SlashCommandStringOption) {
|
|||||||
name_localizations: localizationObject(
|
name_localizations: localizationObject(
|
||||||
`common.regions.normal.${region}`,
|
`common.regions.normal.${region}`,
|
||||||
),
|
),
|
||||||
} satisfies APIApplicationCommandOptionChoice),
|
}) satisfies APIApplicationCommandOptionChoice,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.setRequired(true);
|
.setRequired(true);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Locale, SlashCommandStringOption } from 'discord.js';
|
|||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import { localizationObject } from './localizationObject';
|
import { localizationObject } from './localizationObject';
|
||||||
|
|
||||||
export default function addTankChoices(option: SlashCommandStringOption) {
|
export function addTankChoices(option: SlashCommandStringOption) {
|
||||||
const { translate } = translator(Locale.EnglishUS);
|
const { translate } = translator(Locale.EnglishUS);
|
||||||
|
|
||||||
return option
|
return option
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import numberToRomanNumeral from '@blitzkit/core/src/math/numberToRomanNumeral';
|
import { numberToRomanNumeral } from '@blitzkit/core';
|
||||||
import {
|
import {
|
||||||
APIApplicationCommandOptionChoice,
|
APIApplicationCommandOptionChoice,
|
||||||
Locale,
|
Locale,
|
||||||
@@ -8,7 +8,7 @@ import { range } from 'lodash';
|
|||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import { localizationObject } from './localizationObject';
|
import { localizationObject } from './localizationObject';
|
||||||
|
|
||||||
export default function addTierChoices(option: SlashCommandStringOption) {
|
export function addTierChoices(option: SlashCommandStringOption) {
|
||||||
const { t, translate } = translator(Locale.EnglishUS);
|
const { t, translate } = translator(Locale.EnglishUS);
|
||||||
|
|
||||||
return option
|
return option
|
||||||
@@ -31,7 +31,7 @@ export default function addTierChoices(option: SlashCommandStringOption) {
|
|||||||
'bot.common.options.tier.choices.tier',
|
'bot.common.options.tier.choices.tier',
|
||||||
[`${tier}`, numberToRomanNumeral(tier)],
|
[`${tier}`, numberToRomanNumeral(tier)],
|
||||||
),
|
),
|
||||||
} satisfies APIApplicationCommandOptionChoice),
|
}) satisfies APIApplicationCommandOptionChoice,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.setRequired(true);
|
.setRequired(true);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { Locale, SlashCommandStringOption } from 'discord.js';
|
|||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import { localizationObject } from './localizationObject';
|
import { localizationObject } from './localizationObject';
|
||||||
|
|
||||||
export default function addUsernameChoices(option: SlashCommandStringOption) {
|
export function addUsernameChoices(option: SlashCommandStringOption) {
|
||||||
const { t } = translator(Locale.EnglishUS);
|
const { t } = translator(Locale.EnglishUS);
|
||||||
|
|
||||||
return option
|
return option
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import searchClansAcrossRegions from '@blitzkit/core/src/blitz/searchClansAcrossRegions';
|
import { searchClansAcrossRegions } from '@blitzkit/core';
|
||||||
import {
|
import {
|
||||||
ApplicationCommandOptionChoiceData,
|
ApplicationCommandOptionChoiceData,
|
||||||
AutocompleteInteraction,
|
AutocompleteInteraction,
|
||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
import { translator } from '../../localization/translator';
|
import { translator } from '../../localization/translator';
|
||||||
import { DISCORD_CHOICES_MAX_NAME_SIZE, OVERFLOW_SUFFIX } from './constants';
|
import { DISCORD_CHOICES_MAX_NAME_SIZE, OVERFLOW_SUFFIX } from './constants';
|
||||||
|
|
||||||
export default async function autocompleteClan(
|
export async function autocompleteClan(
|
||||||
interaction: AutocompleteInteraction<CacheType>,
|
interaction: AutocompleteInteraction<CacheType>,
|
||||||
) {
|
) {
|
||||||
const { translate } = translator(interaction.locale);
|
const { translate } = translator(interaction.locale);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { tankNames } from '@blitzkit/core';
|
||||||
import {
|
import {
|
||||||
ApplicationCommandOptionChoiceData,
|
ApplicationCommandOptionChoiceData,
|
||||||
AutocompleteInteraction,
|
AutocompleteInteraction,
|
||||||
@@ -8,13 +9,12 @@ import {
|
|||||||
DISCORD_CHOICES_MAX_NAME_SIZE,
|
DISCORD_CHOICES_MAX_NAME_SIZE,
|
||||||
OVERFLOW_SUFFIX,
|
OVERFLOW_SUFFIX,
|
||||||
} from './autocompleteClan/constants';
|
} from './autocompleteClan/constants';
|
||||||
import { tankNames } from '@blitzkit/core';
|
|
||||||
|
|
||||||
export const tankNamesTechTreeOnly = tankNames.then((names) =>
|
export const tankNamesTechTreeOnly = tankNames.then((names) =>
|
||||||
names.filter((tank) => tank.treeType === 'researchable'),
|
names.filter((tank) => tank.treeType === 'researchable'),
|
||||||
);
|
);
|
||||||
|
|
||||||
export default async function autocompleteTanks(
|
export async function autocompleteTanks(
|
||||||
interaction: AutocompleteInteraction<CacheType>,
|
interaction: AutocompleteInteraction<CacheType>,
|
||||||
techTreeOnly = false,
|
techTreeOnly = false,
|
||||||
fields = ['tank'],
|
fields = ['tank'],
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
|
import { searchPlayersAcrossRegions } from '@blitzkit/core';
|
||||||
import {
|
import {
|
||||||
ApplicationCommandOptionChoiceData,
|
ApplicationCommandOptionChoiceData,
|
||||||
AutocompleteInteraction,
|
AutocompleteInteraction,
|
||||||
CacheType,
|
CacheType,
|
||||||
} from 'discord.js';
|
} from 'discord.js';
|
||||||
import searchPlayersAcrossRegions from '../../../../website/src/core/blitz/searchPlayersAcrossRegions';
|
|
||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import {
|
import {
|
||||||
DISCORD_CHOICES_MAX_NAME_SIZE,
|
DISCORD_CHOICES_MAX_NAME_SIZE,
|
||||||
OVERFLOW_SUFFIX,
|
OVERFLOW_SUFFIX,
|
||||||
} from './autocompleteClan/constants';
|
} from './autocompleteClan/constants';
|
||||||
|
|
||||||
export default async function autocompleteUsername(
|
export async function autocompleteUsername(
|
||||||
interaction: AutocompleteInteraction<CacheType>,
|
interaction: AutocompleteInteraction<CacheType>,
|
||||||
) {
|
) {
|
||||||
const { translate } = translator(interaction.locale);
|
const { translate } = translator(interaction.locale);
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import {
|
|||||||
ComponentEmojiResolvable,
|
ComponentEmojiResolvable,
|
||||||
} from 'discord.js';
|
} from 'discord.js';
|
||||||
|
|
||||||
export default function buttonLink(
|
export function buttonLink(
|
||||||
url: string,
|
url: string,
|
||||||
label: string,
|
label: string,
|
||||||
emoji?: ComponentEmojiResolvable,
|
emoji?: ComponentEmojiResolvable,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import {
|
|||||||
ComponentEmojiResolvable,
|
ComponentEmojiResolvable,
|
||||||
} from 'discord.js';
|
} from 'discord.js';
|
||||||
|
|
||||||
export default function buttonPrimary(
|
export function buttonPrimary(
|
||||||
id: string,
|
id: string,
|
||||||
label: string,
|
label: string,
|
||||||
emoji?: ComponentEmojiResolvable,
|
emoji?: ComponentEmojiResolvable,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ChatInputCommandInteraction } from 'discord.js';
|
import { ChatInputCommandInteraction } from 'discord.js';
|
||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import buttonPrimary from './buttonPrimary';
|
import { buttonPrimary } from './buttonPrimary';
|
||||||
|
|
||||||
export function buttonRefresh(
|
export function buttonRefresh(
|
||||||
interaction: ChatInputCommandInteraction,
|
interaction: ChatInputCommandInteraction,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Client, GatewayIntentBits } from 'discord.js';
|
import { Client, GatewayIntentBits } from 'discord.js';
|
||||||
import interactionCreate from '../../events/interactionCreate';
|
import { interactionCreate } from '../../events/interactionCreate';
|
||||||
import ready from '../../events/ready';
|
import { ready } from '../../events/ready';
|
||||||
|
|
||||||
export const client = new Client({
|
export const client = new Client({
|
||||||
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers],
|
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers],
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ export interface Parameters {
|
|||||||
// TODO: automatically infer command options???
|
// TODO: automatically infer command options???
|
||||||
// but how would that work with the region and id options?
|
// but how would that work with the region and id options?
|
||||||
|
|
||||||
export default function commandToURL(
|
export function commandToURL(
|
||||||
interaction: ChatInputCommandInteraction<CacheType>,
|
interaction: ChatInputCommandInteraction<CacheType>,
|
||||||
parameters?: Parameters,
|
parameters?: Parameters,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { EmbedBuilder } from 'discord.js';
|
import { EmbedBuilder } from 'discord.js';
|
||||||
import { ACCENT_COLOR } from './colors';
|
import { ACCENT_COLOR } from './colors';
|
||||||
|
|
||||||
export default function embedInfo(title: string, description: string) {
|
export function embedInfo(title: string, description: string) {
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setColor(ACCENT_COLOR)
|
.setColor(ACCENT_COLOR)
|
||||||
.setDescription(description);
|
.setDescription(description);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { EmbedBuilder } from 'discord.js';
|
import { EmbedBuilder } from 'discord.js';
|
||||||
import { NEGATIVE_COLOR } from './colors';
|
import { NEGATIVE_COLOR } from './colors';
|
||||||
|
|
||||||
export default function embedNegative(title: string, description: string) {
|
export function embedNegative(title: string, description: string) {
|
||||||
return new EmbedBuilder()
|
return new EmbedBuilder()
|
||||||
.setColor(NEGATIVE_COLOR)
|
.setColor(NEGATIVE_COLOR)
|
||||||
.setTitle(title)
|
.setTitle(title)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { EmbedBuilder } from 'discord.js';
|
import { EmbedBuilder } from 'discord.js';
|
||||||
import { POSITIVE_COLOR } from './colors';
|
import { POSITIVE_COLOR } from './colors';
|
||||||
|
|
||||||
export default function embedPositive(title: string, description: string) {
|
export function embedPositive(title: string, description: string) {
|
||||||
return new EmbedBuilder()
|
return new EmbedBuilder()
|
||||||
.setColor(POSITIVE_COLOR)
|
.setColor(POSITIVE_COLOR)
|
||||||
.setTitle(title)
|
.setTitle(title)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { EmbedBuilder } from 'discord.js';
|
import { EmbedBuilder } from 'discord.js';
|
||||||
import { WARNING_COLOR } from './colors';
|
import { WARNING_COLOR } from './colors';
|
||||||
|
|
||||||
export default function embedWarning(title: string, description: string) {
|
export function embedWarning(title: string, description: string) {
|
||||||
return new EmbedBuilder()
|
return new EmbedBuilder()
|
||||||
.setColor(WARNING_COLOR)
|
.setColor(WARNING_COLOR)
|
||||||
.setTitle(title)
|
.setTitle(title)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { StatFilters, TreeType } from '@blitzkit/core';
|
import { StatFilters, TreeType } from '@blitzkit/core';
|
||||||
import { ChatInputCommandInteraction } from 'discord.js';
|
import { ChatInputCommandInteraction } from 'discord.js';
|
||||||
import resolveTankId from '../blitz/resolveTankId';
|
import { resolveTankId } from '../blitz/resolveTankId';
|
||||||
|
|
||||||
export async function getFiltersFromCommand(
|
export async function getFiltersFromCommand(
|
||||||
interaction: ChatInputCommandInteraction,
|
interaction: ChatInputCommandInteraction,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
export type TableInputEntry = [string, string | number] | [];
|
export type TableInputEntry = [string, string | number] | [];
|
||||||
export type TableInput = TableInputEntry[];
|
export type TableInput = TableInputEntry[];
|
||||||
|
|
||||||
export default function markdownTable(input: TableInput) {
|
export function markdownTable(input: TableInput) {
|
||||||
return input
|
return input
|
||||||
.filter((array) => array[1] !== undefined)
|
.filter((array) => array[1] !== undefined)
|
||||||
.map((array) => (array.length === 0 ? '' : `**${array[0]}**: ${array[1]}`))
|
.map((array) => (array.length === 0 ? '' : `**${array[0]}**: ${array[1]}`))
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import {
|
|||||||
import { RenderConfiguration } from '../../../../website/src/core/blitzkit/renderConfiguration';
|
import { RenderConfiguration } from '../../../../website/src/core/blitzkit/renderConfiguration';
|
||||||
import { InteractionReturnable } from '../../events/interactionCreate';
|
import { InteractionReturnable } from '../../events/interactionCreate';
|
||||||
import { Writeable } from '../../types/writable';
|
import { Writeable } from '../../types/writable';
|
||||||
import jsxToPngThreaded from '../blitzkit/jsxToPngThreaded';
|
import { jsxToPngThreaded } from '../blitzkit/jsxToPngThreaded';
|
||||||
|
|
||||||
export default async function normalizeInteractionReturnable(
|
export async function normalizeInteractionReturnable(
|
||||||
returnable: InteractionReturnable,
|
returnable: InteractionReturnable,
|
||||||
) {
|
) {
|
||||||
const images: [number, Buffer][] = [];
|
const images: [number, Buffer][] = [];
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { Region, searchClansAcrossRegions } from '@blitzkit/core';
|
||||||
import searchClansAcrossRegions from '@blitzkit/core/src/blitz/searchClansAcrossRegions';
|
|
||||||
import { ChatInputCommandInteraction } from 'discord.js';
|
import { ChatInputCommandInteraction } from 'discord.js';
|
||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import { UserError } from '../../../../website/src/hooks/userError';
|
import { UserError } from '../../../../website/src/hooks/userError';
|
||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import { serverAndIdPattern } from './resolvePlayerFromCommand/constants';
|
import { serverAndIdPattern } from './resolvePlayerFromCommand/constants';
|
||||||
|
|
||||||
export default async function resolveClanFromCommand(
|
export async function resolveClanFromCommand(
|
||||||
interaction: ChatInputCommandInteraction,
|
interaction: ChatInputCommandInteraction,
|
||||||
) {
|
) {
|
||||||
const { translate } = translator(interaction.locale);
|
const { translate } = translator(interaction.locale);
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { Region } from '@blitzkit/core';
|
||||||
import { ButtonInteraction } from 'discord.js';
|
import { ButtonInteraction } from 'discord.js';
|
||||||
import getTimeDaysAgo from '../../../../website/src/core/blitzkit/getTimeDaysAgo';
|
import { getTimeDaysAgo } from '../../../../website/src/core/blitzkit/getTimeDaysAgo';
|
||||||
import getPeriodNow from '../blitzkit/getPeriodNow';
|
import { getPeriodNow } from '../blitzkit/getPeriodNow';
|
||||||
import getPeriodStart from '../blitzkit/getPeriodStart';
|
import { getPeriodStart } from '../blitzkit/getPeriodStart';
|
||||||
import { PeriodType } from './addPeriodSubCommands';
|
import { PeriodType } from './addPeriodSubCommands';
|
||||||
import { getPeriodOptionName } from './getPeriodOptionName';
|
import { getPeriodOptionName } from './getPeriodOptionName';
|
||||||
import { ResolvedPeriod } from './resolvePeriodFromCommand';
|
import { ResolvedPeriod } from './resolvePeriodFromCommand';
|
||||||
|
|
||||||
export default function resolvePeriodFromButton(
|
export function resolvePeriodFromButton(
|
||||||
region: Region,
|
region: Region,
|
||||||
interaction: ButtonInteraction,
|
interaction: ButtonInteraction,
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { Region } from '@blitzkit/core';
|
||||||
import { CacheType, ChatInputCommandInteraction } from 'discord.js';
|
import { CacheType, ChatInputCommandInteraction } from 'discord.js';
|
||||||
import getTimeDaysAgo from '../../../../website/src/core/blitzkit/getTimeDaysAgo';
|
import { getTimeDaysAgo } from '../../../../website/src/core/blitzkit/getTimeDaysAgo';
|
||||||
import getPeriodNow from '../blitzkit/getPeriodNow';
|
import { getPeriodNow } from '../blitzkit/getPeriodNow';
|
||||||
import getPeriodStart from '../blitzkit/getPeriodStart';
|
import { getPeriodStart } from '../blitzkit/getPeriodStart';
|
||||||
import { translator } from '../localization/translator';
|
import { translator } from '../localization/translator';
|
||||||
import { PeriodType } from './addPeriodSubCommands';
|
import { PeriodType } from './addPeriodSubCommands';
|
||||||
import { getPeriodOptionName } from './getPeriodOptionName';
|
import { getPeriodOptionName } from './getPeriodOptionName';
|
||||||
@@ -13,7 +13,7 @@ export interface ResolvedPeriod {
|
|||||||
end: number;
|
end: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function resolvePeriodFromCommand(
|
export function resolvePeriodFromCommand(
|
||||||
region: Region,
|
region: Region,
|
||||||
interaction: ChatInputCommandInteraction<CacheType>,
|
interaction: ChatInputCommandInteraction<CacheType>,
|
||||||
forcedPeriod?: PeriodType,
|
forcedPeriod?: PeriodType,
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ import { Region } from '@blitzkit/core';
|
|||||||
import { ButtonInteraction } from 'discord.js';
|
import { ButtonInteraction } from 'discord.js';
|
||||||
import { ResolvedPlayer } from './resolvePlayerFromCommand';
|
import { ResolvedPlayer } from './resolvePlayerFromCommand';
|
||||||
|
|
||||||
export default async function resolvePlayerFromButton(
|
export async function resolvePlayerFromButton(interaction: ButtonInteraction) {
|
||||||
interaction: ButtonInteraction,
|
|
||||||
) {
|
|
||||||
const url = new URL(`https://exmaple.com/${interaction.customId}`);
|
const url = new URL(`https://exmaple.com/${interaction.customId}`);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { Region, searchPlayersAcrossRegions } from '@blitzkit/core';
|
||||||
import { CacheType, ChatInputCommandInteraction } from 'discord.js';
|
import { CacheType, ChatInputCommandInteraction } from 'discord.js';
|
||||||
import markdownEscape from 'markdown-escape';
|
import markdownEscape from 'markdown-escape';
|
||||||
import searchPlayersAcrossRegions from '../../../../../website/src/core/blitz/searchPlayersAcrossRegions';
|
|
||||||
import { UserError } from '../../../../../website/src/hooks/userError';
|
import { UserError } from '../../../../../website/src/hooks/userError';
|
||||||
import { getBlitzFromDiscord } from '../../blitzkit/getBlitzFromDiscord';
|
import { getBlitzFromDiscord } from '../../blitzkit/getBlitzFromDiscord';
|
||||||
import { translator } from '../../localization/translator';
|
import { translator } from '../../localization/translator';
|
||||||
@@ -12,7 +11,7 @@ export interface ResolvedPlayer {
|
|||||||
id: number;
|
id: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default async function resolvePlayerFromCommand(
|
export async function resolvePlayerFromCommand(
|
||||||
interaction: ChatInputCommandInteraction<CacheType>,
|
interaction: ChatInputCommandInteraction<CacheType>,
|
||||||
) {
|
) {
|
||||||
const { t, translate } = translator(interaction.locale);
|
const { t, translate } = translator(interaction.locale);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|
import { ReadStream } from '@blitzkit/core';
|
||||||
import AdmZip from 'adm-zip';
|
import AdmZip from 'adm-zip';
|
||||||
import { readFile, writeFile } from 'fs/promises';
|
import { readFile, writeFile } from 'fs/promises';
|
||||||
import { Parser } from 'pickleparser';
|
import { Parser } from 'pickleparser';
|
||||||
import protobuf from 'protobufjs';
|
import protobuf from 'protobufjs';
|
||||||
import { ReadStream } from '../../../../core/src/streams/buffer';
|
|
||||||
|
|
||||||
interface WotbReplayMetaJson {
|
interface WotbReplayMetaJson {
|
||||||
version: string;
|
version: string;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { AutocompleteInteraction, CacheType } from 'discord.js';
|
import { AutocompleteInteraction, CacheType } from 'discord.js';
|
||||||
import { commands } from '..';
|
import { commands } from '..';
|
||||||
|
|
||||||
export default async function handleAutocomplete(
|
export async function handleAutocomplete(
|
||||||
interaction: AutocompleteInteraction<CacheType>,
|
interaction: AutocompleteInteraction<CacheType>,
|
||||||
) {
|
) {
|
||||||
const command = (await commands)[interaction.commandName];
|
const command = (await commands)[interaction.commandName];
|
||||||
|
|||||||
@@ -2,9 +2,7 @@ import { ButtonInteraction, CacheType } from 'discord.js';
|
|||||||
import { commands } from '..';
|
import { commands } from '..';
|
||||||
import normalizeInteractionReturnable from '../../../core/discord/normalizeInteractionReturnable';
|
import normalizeInteractionReturnable from '../../../core/discord/normalizeInteractionReturnable';
|
||||||
|
|
||||||
export default async function handleButton(
|
export async function handleButton(interaction: ButtonInteraction<CacheType>) {
|
||||||
interaction: ButtonInteraction<CacheType>,
|
|
||||||
) {
|
|
||||||
await interaction.deferUpdate();
|
await interaction.deferUpdate();
|
||||||
|
|
||||||
const url = new URL(`https://example.com/${interaction.customId}`);
|
const url = new URL(`https://example.com/${interaction.customId}`);
|
||||||
|
|||||||
@@ -9,14 +9,14 @@ import {
|
|||||||
} from 'discord.js';
|
} from 'discord.js';
|
||||||
import { InteractionRawReturnable, commands } from '..';
|
import { InteractionRawReturnable, commands } from '..';
|
||||||
import { UserError } from '../../../../../website/src/hooks/userError';
|
import { UserError } from '../../../../../website/src/hooks/userError';
|
||||||
import buttonLink from '../../../core/discord/buttonLink';
|
import { buttonLink } from '../../../core/discord/buttonLink';
|
||||||
import embedWarning from '../../../core/discord/embedWarning';
|
import { embedWarning } from '../../../core/discord/embedWarning';
|
||||||
import normalizeInteractionReturnable from '../../../core/discord/normalizeInteractionReturnable';
|
import { normalizeInteractionReturnable } from '../../../core/discord/normalizeInteractionReturnable';
|
||||||
import { psa } from '../../../core/discord/psa';
|
import { psa } from '../../../core/discord/psa';
|
||||||
import { translator } from '../../../core/localization/translator';
|
import { translator } from '../../../core/localization/translator';
|
||||||
import { Writeable } from '../../../types/writable';
|
import { Writeable } from '../../../types/writable';
|
||||||
|
|
||||||
export default async function handleChatInputCommand(
|
export async function handleChatInputCommand(
|
||||||
interaction: ChatInputCommandInteraction<CacheType>,
|
interaction: ChatInputCommandInteraction<CacheType>,
|
||||||
) {
|
) {
|
||||||
const awaitedCommands = await commands;
|
const awaitedCommands = await commands;
|
||||||
|
|||||||
@@ -34,9 +34,9 @@ import { searchClansCommand } from '../../commands/searchClans';
|
|||||||
import { searchPlayersCommand } from '../../commands/searchPlayers';
|
import { searchPlayersCommand } from '../../commands/searchPlayers';
|
||||||
import { statsCommand } from '../../commands/stats';
|
import { statsCommand } from '../../commands/stats';
|
||||||
import { todayCommand } from '../../commands/today';
|
import { todayCommand } from '../../commands/today';
|
||||||
import handleAutocomplete from './handlers/autocomplete';
|
import { handleAutocomplete } from './handlers/autocomplete';
|
||||||
import handleButton from './handlers/button';
|
import { handleButton } from './handlers/button';
|
||||||
import handleChatInputCommand from './handlers/chatInputCommand';
|
import { handleChatInputCommand } from './handlers/chatInputCommand';
|
||||||
|
|
||||||
export type InteractionRawReturnable =
|
export type InteractionRawReturnable =
|
||||||
| string
|
| string
|
||||||
@@ -130,9 +130,7 @@ commands.then((awaitedCommands) => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
export default async function interactionCreate(
|
export async function interactionCreate(interaction: Interaction<CacheType>) {
|
||||||
interaction: Interaction<CacheType>,
|
|
||||||
) {
|
|
||||||
if (interaction.isAutocomplete()) {
|
if (interaction.isAutocomplete()) {
|
||||||
handleAutocomplete(interaction);
|
handleAutocomplete(interaction);
|
||||||
} else if (interaction.isChatInputCommand()) {
|
} else if (interaction.isChatInputCommand()) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ActivityType, Client } from 'discord.js';
|
import { ActivityType, Client } from 'discord.js';
|
||||||
|
|
||||||
export default function ready(client: Client<true>) {
|
export function ready(client: Client<true>) {
|
||||||
console.log(`🟢 Launched bot ${client.shard?.ids[0] ?? 'default'}`);
|
console.log(`🟢 Launched bot ${client.shard?.ids[0] ?? 'default'}`);
|
||||||
|
|
||||||
const activities: (() => string)[] = [
|
const activities: (() => string)[] = [
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { parentPort, threadId } from 'worker_threads';
|
import { parentPort, threadId } from 'worker_threads';
|
||||||
import svgToPng from '../core/blitzkit/svgToPng';
|
import { svgToPng } from '../core/blitzkit/svgToPng';
|
||||||
|
|
||||||
console.log(`🟢 Launched render worker ${threadId}`);
|
console.log(`🟢 Launched render worker ${threadId}`);
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"extends": "../../tsconfig.json",
|
"extends": "../../tsconfig.json",
|
||||||
"include": ["src/**/*"]
|
"include": ["src/**/*", "../core/src/blitz/getRatingInfo.ts"]
|
||||||
}
|
}
|
||||||
+3
-4
@@ -1,6 +1,5 @@
|
|||||||
import { assertSecret, Region } from '@blitzkit/core';
|
import { assertSecret, EventManager, Region } from '@blitzkit/core';
|
||||||
import { EventManager } from '@blitzkit/core/src/blitzkit/eventManager';
|
import { patientFetch } from '../../../website/src/core/blitzkit/patientFetch';
|
||||||
import { patientFetch } from '../blitzkit/patientFetch';
|
|
||||||
|
|
||||||
const RETRY_ERRORS = ['REQUEST_LIMIT_EXCEEDED', 'SOURCE_NOT_AVAILABLE'];
|
const RETRY_ERRORS = ['REQUEST_LIMIT_EXCEEDED', 'SOURCE_NOT_AVAILABLE'];
|
||||||
|
|
||||||
@@ -64,7 +63,7 @@ async function manageQueue() {
|
|||||||
|
|
||||||
export type FetchBlitzParams = Record<string, string | number | undefined>;
|
export type FetchBlitzParams = Record<string, string | number | undefined>;
|
||||||
|
|
||||||
export default function fetchBlitz<Data extends object>(
|
export function fetchBlitz<Data extends object>(
|
||||||
region: Region,
|
region: Region,
|
||||||
path: string,
|
path: string,
|
||||||
params: FetchBlitzParams = {},
|
params: FetchBlitzParams = {},
|
||||||
File renamed without changes.
+4
-4
@@ -1,11 +1,11 @@
|
|||||||
import { RatingInfo, Region } from '@blitzkit/core';
|
import { RatingInfo, Region } from '@blitzkit/core';
|
||||||
import { context } from '../blitzkit/context';
|
import { regionToRegionSubdomain } from '../../../website/src/core/blitz/regionToRegionSubdomain';
|
||||||
import { patientFetch } from '../blitzkit/patientFetch';
|
import { context } from '../../../website/src/core/blitzkit/context';
|
||||||
import regionToRegionSubdomain from './regionToRegionSubdomain';
|
import { patientFetch } from '../../../website/src/core/blitzkit/patientFetch';
|
||||||
|
|
||||||
const cache: Partial<Record<Region, RatingInfo>> = {};
|
const cache: Partial<Record<Region, RatingInfo>> = {};
|
||||||
|
|
||||||
export default async function getRatingInfo(region: Region) {
|
export async function getRatingInfo(region: Region) {
|
||||||
if (cache[region]) return cache[region]!;
|
if (cache[region]) return cache[region]!;
|
||||||
|
|
||||||
const response = await patientFetch(
|
const response = await patientFetch(
|
||||||
@@ -1,10 +1,15 @@
|
|||||||
export * from './clans';
|
export * from './clans';
|
||||||
export * from './constants';
|
export * from './constants';
|
||||||
export * from './equipmentPrice';
|
export * from './equipmentPrice';
|
||||||
|
export * from './fetchBlitz';
|
||||||
|
export * from './getLeagueFromScore';
|
||||||
|
export * from './getRatingInfo';
|
||||||
export * from './idToRegion';
|
export * from './idToRegion';
|
||||||
export * from './nations';
|
export * from './nations';
|
||||||
export * from './permanentSkills';
|
export * from './permanentSkills';
|
||||||
export * from './rating';
|
export * from './rating';
|
||||||
export * from './regions';
|
export * from './regions';
|
||||||
|
export * from './regionSubdomainToRegion';
|
||||||
export * from './resolveNearPenetration';
|
export * from './resolveNearPenetration';
|
||||||
export * from './searchClansAcrossRegions';
|
export * from './searchClansAcrossRegions';
|
||||||
|
export * from './searchPlayersAcrossRegions';
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import { Region, RegionSubdomain } from '@blitzkit/core';
|
||||||
|
|
||||||
|
export function regionSubdomainToRegion(regionDomain: RegionSubdomain): Region {
|
||||||
|
return regionDomain === 'na' ? 'com' : regionDomain;
|
||||||
|
}
|
||||||
@@ -1,11 +1,7 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { fetchBlitz, Region } from '@blitzkit/core';
|
||||||
import fetchBlitz from '../../../website/src/core/blitz/fetchBlitz';
|
|
||||||
import { ClanList } from './clans';
|
import { ClanList } from './clans';
|
||||||
|
|
||||||
export default async function searchClansAcrossRegions(
|
export async function searchClansAcrossRegions(search: string, limit = 25) {
|
||||||
search: string,
|
|
||||||
limit = 25,
|
|
||||||
) {
|
|
||||||
const trimmed = search.trim();
|
const trimmed = search.trim();
|
||||||
if (trimmed.length < 3 && trimmed.length > 100) return [];
|
if (trimmed.length < 3 && trimmed.length > 100) return [];
|
||||||
const normalizedLimit = Math.floor(limit / 3);
|
const normalizedLimit = Math.floor(limit / 3);
|
||||||
|
|||||||
File renamed without changes.
+2
-5
@@ -1,5 +1,5 @@
|
|||||||
import { Region } from '@blitzkit/core';
|
import { Region } from '@blitzkit/core';
|
||||||
import fetchBlitz from '../fetchBlitz';
|
import { fetchBlitz } from '@blitzkit/core/src/blitz/fetchBlitz';
|
||||||
import { usernamePattern } from './constants';
|
import { usernamePattern } from './constants';
|
||||||
|
|
||||||
export interface AccountListItem {
|
export interface AccountListItem {
|
||||||
@@ -11,10 +11,7 @@ export type AccountListWithServer = (AccountListItem & {
|
|||||||
region: Region;
|
region: Region;
|
||||||
})[];
|
})[];
|
||||||
|
|
||||||
export default async function searchPlayersAcrossRegions(
|
export async function searchPlayersAcrossRegions(search: string, limit = 25) {
|
||||||
search: string,
|
|
||||||
limit = 25,
|
|
||||||
) {
|
|
||||||
const trimmedSearch = search.trim();
|
const trimmedSearch = search.trim();
|
||||||
const normalizedLimit = Math.floor(limit / 3);
|
const normalizedLimit = Math.floor(limit / 3);
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { ProvisionDefinitions } from '@blitzkit/core/src/blitzkit/provisionDefinitions';
|
import { ProvisionDefinitions } from '@blitzkit/core';
|
||||||
import { checkConsumableProvisionInclusivity } from './checkConsumableProvisionInclusivity';
|
import { checkConsumableProvisionInclusivity } from './checkConsumableProvisionInclusivity';
|
||||||
import { GunDefinition, TankDefinition } from './tankDefinitions';
|
import { GunDefinition, TankDefinition } from './tankDefinitions';
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { asset } from '@blitzkit/core/src/blitzkit/asset';
|
import { asset, fetchCdonLz4 } from '@blitzkit/core';
|
||||||
import { fetchCdonLz4 } from '@blitzkit/core/src/blitzkit/fetchCdonLz4';
|
|
||||||
|
|
||||||
export type CamouflageDefinitions = Record<
|
export type CamouflageDefinitions = Record<
|
||||||
number,
|
number,
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { ConsumableEntry } from '@blitzkit/core/src/blitzkit/consumableDefinitions';
|
import { ConsumableEntry, ProvisionEntry } from '@blitzkit/core';
|
||||||
import { ProvisionEntry } from '@blitzkit/core/src/blitzkit/provisionDefinitions';
|
|
||||||
import { GunDefinition, TankDefinition } from './tankDefinitions';
|
import { GunDefinition, TankDefinition } from './tankDefinitions';
|
||||||
|
|
||||||
export function checkConsumableProvisionInclusivity(
|
export function checkConsumableProvisionInclusivity(
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { SkillDefinitions } from '@blitzkit/core/src/blitzkit/skillDefinitions';
|
import { SkillDefinitions } from '@blitzkit/core';
|
||||||
import { permanentSkills } from '../blitz/permanentSkills';
|
import { permanentSkills } from '../blitz/permanentSkills';
|
||||||
|
|
||||||
export function createDefaultSkills(skillDefinitions: SkillDefinitions) {
|
export function createDefaultSkills(skillDefinitions: SkillDefinitions) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { superDecompress } from '@blitzkit/core/src/blitzkit/superDecompress';
|
import { superDecompress } from '@blitzkit/core';
|
||||||
|
|
||||||
export async function fetchCdonLz4<Type>(url: string) {
|
export async function fetchCdonLz4<Type>(url: string) {
|
||||||
return await fetch(url, { cache: 'no-store' })
|
return await fetch(url, { cache: 'no-store' })
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
import { assertSecret } from '@blitzkit/core';
|
import { assertSecret } from '@blitzkit/core';
|
||||||
import getRatingInfo from '../blitz/getRatingInfo';
|
import { getRatingInfo } from '@blitzkit/core/src/blitz/getRatingInfo';
|
||||||
|
|
||||||
interface GitHubTrees {
|
interface GitHubTrees {
|
||||||
tree: { path: string; url: string }[];
|
tree: { path: string; url: string }[];
|
||||||
+2
-6
@@ -1,5 +1,4 @@
|
|||||||
import { RatingInfo, Region, asset } from '@blitzkit/core';
|
import { RatingInfo, Region, asset, superDecompress } from '@blitzkit/core';
|
||||||
import { superDecompress } from '@blitzkit/core/src/blitzkit/superDecompress';
|
|
||||||
|
|
||||||
const cache: Record<
|
const cache: Record<
|
||||||
Region,
|
Region,
|
||||||
@@ -15,10 +14,7 @@ const cache: Record<
|
|||||||
asia: {},
|
asia: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default async function getArchivedRatingInfo(
|
export async function getArchivedRatingInfo(region: Region, season: number) {
|
||||||
region: Region,
|
|
||||||
season: number,
|
|
||||||
) {
|
|
||||||
if (!cache[region][season]) {
|
if (!cache[region][season]) {
|
||||||
const info = await fetch(
|
const info = await fetch(
|
||||||
asset(`regions/${region}/rating/${season}/info.cdon.lz4`),
|
asset(`regions/${region}/rating/${season}/info.cdon.lz4`),
|
||||||
File renamed without changes.
+1
-1
@@ -11,7 +11,7 @@ const cache: Record<Region, Record<number, BkrlDiscriminatedEntries | null>> = {
|
|||||||
asia: {},
|
asia: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default async function getArchivedRatingMidnightLeaderboard(
|
export async function getArchivedRatingMidnightLeaderboard(
|
||||||
region: Region,
|
region: Region,
|
||||||
season: number,
|
season: number,
|
||||||
) {
|
) {
|
||||||
@@ -13,6 +13,10 @@ export * from './eventManager';
|
|||||||
export * from './fetchCdonLz4';
|
export * from './fetchCdonLz4';
|
||||||
export * from './filterTank';
|
export * from './filterTank';
|
||||||
export * from './gameDefinitions';
|
export * from './gameDefinitions';
|
||||||
|
export * from './getArchivedLatestSeasonNumber';
|
||||||
|
export * from './getArchivedRatingInfo';
|
||||||
|
export * from './getArchivedRatingLeaderboard';
|
||||||
|
export * from './getArchivedRatingMidnightLeaderboard';
|
||||||
export * from './isExplosive';
|
export * from './isExplosive';
|
||||||
export * from './modelDefinitions';
|
export * from './modelDefinitions';
|
||||||
export * from './normalizeBoundingBox';
|
export * from './normalizeBoundingBox';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { TankFilterDefinition } from '@blitzkit/core/src/blitzkit/consumableDefinitions';
|
import { TankFilterDefinition } from '@blitzkit/core';
|
||||||
import { asset } from './asset';
|
import { asset } from './asset';
|
||||||
import { fetchCdonLz4 } from './fetchCdonLz4';
|
import { fetchCdonLz4 } from './fetchCdonLz4';
|
||||||
|
|
||||||
|
|||||||
Loaded 100 of 182 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user