fix: no cross-bot imports

This commit is contained in:
TrèsAbhi committed 2024-09-07 23:00:56 -05:00
1 parent 6c0b46725d
commit 7c6f381bbe
58 files changed
+233 -252

No files matched your search

+2 -1
View File
@@ -4,6 +4,7 @@
"version": "1.22.6", "version": "1.22.6",
"description": "🎉 Tools for everything World of Tanks Blitz", "description": "🎉 Tools for everything World of Tanks Blitz",
"type": "module", "type": "module",
"types": "./types.d.ts",
"workspaces": [ "workspaces": [
"packages/*" "packages/*"
], ],
@@ -11,7 +12,7 @@
"build:assets": "bun --filter=@blitzkit/scripts run build:assets", "build:assets": "bun --filter=@blitzkit/scripts run build:assets",
"build:averages": "bun --filter=@blitzkit/scripts run build:averages", "build:averages": "bun --filter=@blitzkit/scripts run build:averages",
"build:bot": "rm -rf dist/bot && mkdir -p dist/bot/prisma && bun build src/index.ts src/workers/bot.ts src/workers/render.ts --outdir dist/bot --target=bun --splitting --sourcemap=inline --external sharp && cp -R src/lang dist/bot/lang && prisma generate && cp prisma/schema.prisma dist/bot/prisma/schema.prisma && cp -R node_modules/prisma/*.node dist/bot/prisma && cd dist/bot && bun init -y && bun add sharp", "build:bot": "rm -rf dist/bot && mkdir -p dist/bot/prisma && bun build src/index.ts src/workers/bot.ts src/workers/render.ts --outdir dist/bot --target=bun --splitting --sourcemap=inline --external sharp && cp -R src/lang dist/bot/lang && prisma generate && cp prisma/schema.prisma dist/bot/prisma/schema.prisma && cp -R node_modules/prisma/*.node dist/bot/prisma && cd dist/bot && bun init -y && bun add sharp",
"build:website": "prisma generate & bun build:sitemap && next build", "build:website": "prisma generate && bun --filter=@blitzkit/website run build",
"build:sitemap": "bun scripts/sitemap.ts", "build:sitemap": "bun scripts/sitemap.ts",
"build:docs": "vitepress build docs", "build:docs": "vitepress build docs",
"build:ratingleaderboard": "bun --script scripts/buildRatingLeaderboard.ts", "build:ratingleaderboard": "bun --script scripts/buildRatingLeaderboard.ts",
+1
View File
@@ -2,6 +2,7 @@
"name": "@blitzkit/bot", "name": "@blitzkit/bot",
"private": true, "private": true,
"type": "module", "type": "module",
"types": "src/types.d.ts",
"dependencies": { "dependencies": {
"@blitzkit/core": "workspace:*", "@blitzkit/core": "workspace:*",
"satori": "^0.10.14", "satori": "^0.10.14",
@@ -1,4 +1,4 @@
import { getBlitzStarsLinkButton } from '../../../../website/src/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';
@@ -5,6 +5,7 @@ import {
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 calculateWN8 from '@blitzkit/core/src/statistics/calculateWN8';
import getWN8Percentile from '@blitzkit/core/src/statistics/getWN8Percentile'; import getWN8Percentile from '@blitzkit/core/src/statistics/getWN8Percentile';
import { Locale } from 'discord.js'; import { Locale } from 'discord.js';
@@ -12,13 +13,12 @@ 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 { filtersToDescription } from '../../../../website/src/core/blitzkit/filtersToDescription';
import { tankAverages } from '../../../../website/src/core/blitzstars/tankAverages';
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 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';
@@ -35,7 +35,7 @@ export async function renderBreakdown(
) { ) {
const { t, translate } = translator(locale); const { t, translate } = translator(locale);
const awaitedTankDefinitions = await tankDefinitions; const awaitedTankDefinitions = await tankDefinitions;
const awaitedTankAverages = await tankAverages; const awaitedTankAverages = await blitzStarsTankAverages;
const statsInPeriod = await getStatsInPeriod(region, id, start, end, locale); const statsInPeriod = await getStatsInPeriod(region, id, start, end, locale);
const { filteredOrder } = await filterStats(statsInPeriod, filters); const { filteredOrder } = await filterStats(statsInPeriod, filters);
const accountInfo = await getAccountInfo(region, id); const accountInfo = await getAccountInfo(region, id);
+3 -3
View File
@@ -1,15 +1,15 @@
import { Locale, SlashCommandSubcommandGroupBuilder } from 'discord.js'; 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 resolveTankId from '../../../website/src/core/blitz/resolveTankId';
import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL'; import { emblemURL } from '../../../website/src/core/blitzkit/emblemURL';
import { getBlitzStarsLinkButton } from '../../../website/src/core/blitzstars/getBlitzStarsLinkButton';
import getPlayerHistories from '../../../website/src/core/blitzstars/getPlayerHistories';
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 { getBlitzStarsLinkButton } from '../core/blitzstars/getBlitzStarsLinkButton';
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';
+2 -2
View File
@@ -3,13 +3,13 @@ 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 { filtersToDescription } from '../../../website/src/core/blitzkit/filtersToDescription';
import { getBlitzStarsLinkButton } from '../../../website/src/core/blitzstars/getBlitzStarsLinkButton';
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 { 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';
@@ -2,6 +2,7 @@ import {
BkrlDiscriminatedEntries, BkrlDiscriminatedEntries,
FIRST_MINIMAL_ARCHIVED_RATING_SEASON, FIRST_MINIMAL_ARCHIVED_RATING_SEASON,
LEAGUES, LEAGUES,
RatingInfo,
Region, Region,
} from '@blitzkit/core'; } from '@blitzkit/core';
import { import {
@@ -34,93 +35,6 @@ 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';
export interface RatingPlayer {
spa_id: number;
mmr: number;
season_number: number;
calibrationBattlesLeft: number;
number: number;
percentile: number;
skip: boolean;
updated_at: string;
score: number;
nickname: string;
clan_tag: string;
}
export interface LeagueTop {
result: RatingPlayer[];
}
export type RatingReward = {
from_position: number;
to_position: number;
count: number;
} & (
| {
type: 'vehicle';
vehicle: {
id: number;
name: string;
nation: string;
subnation: string;
use_subnation_flag: boolean;
type_slug: string;
level: number;
roman_level: string;
user_string: string;
image_url: string;
preview_image_url: string;
is_premium: boolean;
is_collectible: boolean;
};
}
| {
type: 'stuff';
stuff: {
name: string;
count: number;
title: string;
image_url: string;
type: string;
sizes: {};
};
}
);
export interface RatingLeague {
title: string;
small_icon: string;
big_icon: string;
background: string;
index: number;
percentile: number;
}
export type RatingInfo =
| {
detail: undefined;
title: string;
icon: string | null;
start_at: string;
finish_at: string;
current_season: number;
updated_at: string;
count: number;
rewards: RatingReward[];
leagues: RatingLeague[];
}
| { detail: { error: string } };
export interface RatingNeighbors {
neighbors: RatingPlayer[];
}
interface SimplifiedPlayer { interface SimplifiedPlayer {
id: number; id: number;
score: number; score: number;
@@ -256,7 +170,7 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
name_localizations: localizationObject( name_localizations: localizationObject(
`common.leagues.${name}`, `common.leagues.${name}`,
), ),
} satisfies APIApplicationCommandOptionChoice<string>), }) satisfies APIApplicationCommandOptionChoice<string>,
), ),
) )
.setRequired(true); .setRequired(true);
@@ -279,8 +193,8 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
const season = seasonOption const season = seasonOption
? parseInt(seasonOption) ? parseInt(seasonOption)
: onGoingSeason : onGoingSeason
? latestArchivedSeasonNumber + 1 ? latestArchivedSeasonNumber + 1
: latestArchivedSeasonNumber; : latestArchivedSeasonNumber;
const isCurrentSeason = season === latestArchivedSeasonNumber + 1; const isCurrentSeason = season === latestArchivedSeasonNumber + 1;
let titleName: string; let titleName: string;
let titleImage: string | undefined; let titleImage: string | undefined;
@@ -313,7 +227,7 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
position: player.number, position: player.number,
clan: player.clan_tag, clan: player.clan_tag,
nickname: player.nickname, nickname: player.nickname,
} satisfies SimplifiedPlayer), }) satisfies SimplifiedPlayer,
), ),
) )
: await getArchivedRatingLeaderboard(region, season!).then( : await getArchivedRatingLeaderboard(region, season!).then(
@@ -349,7 +263,7 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
'bot.commands.rating_leaderboard.body.deleted_player', 'bot.commands.rating_leaderboard.body.deleted_player',
[`${player.id}`], [`${player.id}`],
), ),
} satisfies SimplifiedPlayer), }) satisfies SimplifiedPlayer,
); );
}, },
); );
@@ -398,7 +312,7 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
score: player.score, score: player.score,
clan: player.clan_tag, clan: player.clan_tag,
nickname: player.nickname, nickname: player.nickname,
} satisfies SimplifiedPlayer), }) satisfies SimplifiedPlayer,
), ),
) )
: await getArchivedRatingLeaderboard(region, season!).then( : await getArchivedRatingLeaderboard(region, season!).then(
+2 -2
View File
@@ -4,6 +4,7 @@ import {
TIER_ROMAN_NUMERALS, TIER_ROMAN_NUMERALS,
} from '@blitzkit/core'; } from '@blitzkit/core';
import { tankIcon } from '@blitzkit/core/src/blitzkit/tankIcon'; 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 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';
@@ -11,7 +12,6 @@ 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 { tankAverages } from '../../../website/src/core/blitzstars/tankAverages';
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';
@@ -221,7 +221,7 @@ async function playerListing(
winningTeam: number, winningTeam: number,
recordingPlayer = false, recordingPlayer = false,
) { ) {
const awaitedTankAverages = await tankAverages; const awaitedTankAverages = await blitzStarsTankAverages;
const awaitedTankDefinitions = await tankDefinitions; const awaitedTankDefinitions = await tankDefinitions;
const tank = awaitedTankDefinitions[player.vehicle_descr]; const tank = awaitedTankDefinitions[player.vehicle_descr];
const blockAccent = recordingPlayer ? '_amber' : ''; const blockAccent = recordingPlayer ? '_amber' : '';
+1 -1
View File
@@ -9,7 +9,6 @@ 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 resolveTankId from '../../../website/src/core/blitz/resolveTankId';
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';
@@ -17,6 +16,7 @@ import { resolveAncestry } from '../../../website/src/core/blitzkit/resolveAnces
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 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';
+1 -1
View File
@@ -1,4 +1,5 @@
import { Region } from '@blitzkit/core'; import { Region } from '@blitzkit/core';
import { ClanList } from '@blitzkit/core/src/blitz/clanList';
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 fetchBlitz from '../../../website/src/core/blitz/fetchBlitz';
@@ -9,7 +10,6 @@ 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';
import { ClanList } from '../types/clanList';
const DEFAULT_LIMIT = 25; const DEFAULT_LIMIT = 25;
+2 -2
View File
@@ -3,12 +3,12 @@ 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 { filtersToDescription } from '../../../website/src/core/blitzkit/filtersToDescription';
import { getBlitzStarsLinkButton } from '../../../website/src/core/blitzstars/getBlitzStarsLinkButton';
import AllStatsOverview from '../components/AllStatsOverview'; import AllStatsOverview from '../components/AllStatsOverview';
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 { 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';
+1 -1
View File
@@ -1,5 +1,5 @@
import { gameDefinitions } from '@blitzkit/core/src/blitzkit/gameDefinitions'; import { gameDefinitions } from '@blitzkit/core/src/blitzkit/gameDefinitions';
import { getBlitzStarsLinkButton } from '../../../website/src/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';
import autocompleteTanks from '../core/discord/autocompleteTanks'; import autocompleteTanks from '../core/discord/autocompleteTanks';
@@ -1,4 +1,5 @@
import { TankClass, TreeType } from '@blitzkit/core'; import { TankClass, TreeType } from '@blitzkit/core';
import { TREE_TYPE_ICONS } from '@blitzkit/core/src/blitzkit/tankDefinitions/constants';
import { Percentile } from '@blitzkit/core/src/statistics/percentiles'; import { Percentile } from '@blitzkit/core/src/statistics/percentiles';
import { createColors } from 'bepaint'; import { createColors } from 'bepaint';
import { import {
@@ -6,7 +7,6 @@ import {
GrayColor, GrayColor,
PALETTES, PALETTES,
} from '../../../core/radix/radixColors'; } from '../../../core/radix/radixColors';
import { TREE_TYPE_ICONS } from '../../Tanks/components/Item/constants';
import { RowStat } from './RowStat'; import { RowStat } from './RowStat';
export interface RowStatItem { export interface RowStatItem {
@@ -82,8 +82,8 @@ export function Row({
? treeType === 'collector' ? treeType === 'collector'
? theme.textLowContrast_blue ? theme.textLowContrast_blue
: treeType === 'premium' : treeType === 'premium'
? theme.textLowContrast_amber ? theme.textLowContrast_amber
: theme.textHighContrast : theme.textHighContrast
: theme.textLowContrast, : theme.textLowContrast,
fontWeight: 900, fontWeight: 900,
fontSize: 16, fontSize: 16,
@@ -1,23 +0,0 @@
import {
TANK_ICONS,
TANK_ICONS_COLLECTOR,
TANK_ICONS_PREMIUM,
TankClass,
TreeType,
} from '@blitzkit/core';
export const TREE_TYPE_NAMES: Record<TreeType, string> = {
researchable: 'Tech tree',
premium: 'Premium',
collector: 'Collector',
};
export const TREE_TYPE_IMAGES: Record<TreeType, string> = {
researchable: 'https://i.imgur.com/pJxO2XY.png',
premium: 'https://i.imgur.com/mZzSwOU.png',
collector: 'https://i.imgur.com/7A0RsG5.png',
};
export const TREE_TYPE_ICONS: Record<TreeType, Record<TankClass, string>> = {
researchable: TANK_ICONS,
premium: TANK_ICONS_PREMIUM,
collector: TANK_ICONS_COLLECTOR,
};
@@ -1,6 +1,6 @@
import { TankClass, TreeType } from '@blitzkit/core'; import { TankClass, 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';
import { TREE_TYPE_ICONS } from './constants';
export interface ItemProps { export interface ItemProps {
tankType?: TankClass; tankType?: TankClass;
+1 -3
View File
@@ -1,8 +1,6 @@
import { Tier } from '@blitzkit/core'; import { TierWeightsRecord } from '@blitzkit/core/src/statistics/getTierWeights';
import { theme } from '../stitches.config'; import { theme } from '../stitches.config';
export type TierWeightsRecord = Partial<Record<Tier, number>>;
interface TierWeightsProps { interface TierWeightsProps {
weights: TierWeightsRecord; weights: TierWeightsRecord;
} }
@@ -2,9 +2,9 @@ import { tankDefinitions, tankNames } from '@blitzkit/core';
import { Locale } from 'discord.js'; import { Locale } from 'discord.js';
import { go } from 'fuzzysort'; import { go } from 'fuzzysort';
import markdownEscape from 'markdown-escape'; import markdownEscape from 'markdown-escape';
import { tankNamesTechTreeOnly } from '../../../../bot/src/core/discord/autocompleteTanks'; import { UserError } from '../../../../website/src/hooks/userError';
import { translator } from '../../../../bot/src/core/localization/translator'; import { tankNamesTechTreeOnly } from '../discord/autocompleteTanks';
import { UserError } from '../../hooks/userError'; import { translator } from '../localization/translator';
export default async function resolveTankId( export default async function resolveTankId(
tank: string | number, tank: string | number,
@@ -5,7 +5,7 @@ import {
TIER_ROMAN_NUMERALS, TIER_ROMAN_NUMERALS,
} from '@blitzkit/core'; } from '@blitzkit/core';
import { Locale } from 'discord.js'; import { Locale } from 'discord.js';
import { translator } from '../../../../bot/src/core/localization/translator'; import { translator } from '../localization/translator';
export async function filtersToDescription( export async function filtersToDescription(
{ nation, tier, tankType, treeType, tank }: StatFilters, { nation, tier, tankType, treeType, tank }: StatFilters,
@@ -1,5 +1,5 @@
import { usersDatabase } from '@blitzkit/core'; import { usersDatabase } from '@blitzkit/core';
import { client } from '../../../../bot/src/core/discord/client'; import { client } from '../discord/client';
const EXIT_EVENTS = [ const EXIT_EVENTS = [
'beforeExit', 'beforeExit',
@@ -1,6 +1,6 @@
import { Region } from '@blitzkit/core'; import { Region } from '@blitzkit/core';
import buttonLink from '../../../../bot/src/core/discord/buttonLink'; import { getAccountInfo } from '../../../../website/src/core/blitz/getAccountInfo';
import { getAccountInfo } from '../blitz/getAccountInfo'; import buttonLink from '../discord/buttonLink';
export async function getBlitzStarsLinkButton( export async function getBlitzStarsLinkButton(
region: Region, region: Region,
@@ -1,11 +1,11 @@
import { Region, emptyAllStats } from '@blitzkit/core'; import { Region, emptyAllStats } from '@blitzkit/core';
import { getAccountInfo } from '../../../../website/src/core/blitz/getAccountInfo';
import { import {
GetHistoriesOptions, GetHistoriesOptions,
Histories, Histories,
History, History,
getHistoriesDefaultOptions, getHistoriesDefaultOptions,
} from '../../../../bot/src/types/histories'; } from '../../types/histories';
import { getAccountInfo } from '../blitz/getAccountInfo';
import { PlayerStats } from './getPlayerStats'; import { PlayerStats } from './getPlayerStats';
export default async function getPlayerHistories( export default async function getPlayerHistories(
@@ -22,7 +22,7 @@ export default async function getPlayerHistories(
({ ({
all: history.statistics.all, all: history.statistics.all,
last_battle_time: history.last_battle_time, last_battle_time: history.last_battle_time,
} satisfies History), }) satisfies History,
); );
let lastNonCompliantIndex = -1; let lastNonCompliantIndex = -1;
let hasCompliedOnce = false; let hasCompliedOnce = false;
@@ -1,4 +1,5 @@
import { BlitzStats, emptyAllStats, Region } from '@blitzkit/core'; import { BlitzStats, emptyAllStats, Region } from '@blitzkit/core';
import { DiffedTankStats } from '@blitzkit/core/src/statistics/filterStats';
import { Locale } from 'discord.js'; import { Locale } from 'discord.js';
import getTankHistories, { import getTankHistories, {
TankHistories, TankHistories,
@@ -14,11 +15,6 @@ const emptyTankHistoryNode: TankHistoryRaw = {
all: emptyAllStats, all: emptyAllStats,
}; };
export interface DiffedTankStats {
diff: Record<number, BlitzStats>;
order: number[];
}
// BIG TODO: merge this neatly with diffNormalizedTankStats // BIG TODO: merge this neatly with diffNormalizedTankStats
export default async function getStatsInPeriod( export default async function getStatsInPeriod(
server: Region, server: Region,
@@ -1,9 +1,9 @@
import searchClansAcrossRegions from '@blitzkit/core/src/blitz/searchClansAcrossRegions';
import { import {
ApplicationCommandOptionChoiceData, ApplicationCommandOptionChoiceData,
AutocompleteInteraction, AutocompleteInteraction,
CacheType, CacheType,
} from 'discord.js'; } from 'discord.js';
import searchClansAcrossRegions from '../../../../../website/src/core/blitz/searchClansAcrossRegions';
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';
@@ -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 '../../../../website/src/core/blitz/resolveTankId'; import resolveTankId from '../blitz/resolveTankId';
export async function getFiltersFromCommand( export async function getFiltersFromCommand(
interaction: ChatInputCommandInteraction, interaction: ChatInputCommandInteraction,
@@ -1,7 +1,7 @@
import { Region } from '@blitzkit/core'; import { Region } 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 searchClansAcrossRegions from '../../../../website/src/core/blitz/searchClansAcrossRegions';
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';
File renamed without changes.
+1 -1
View File
@@ -1,5 +1,5 @@
import { assertSecret } from '@blitzkit/core'; import { assertSecret } from '@blitzkit/core';
import { registerProcesses } from '../../../website/src/core/blitzkit/processes'; import { registerProcesses } from '../core/blitzkit/processes';
import { client } from '../core/discord/client'; import { client } from '../core/discord/client';
console.log(`🟡 Launching bot ${client.shard?.ids[0]}`); console.log(`🟡 Launching bot ${client.shard?.ids[0]}`);
+4
View File
@@ -1,3 +1,7 @@
{ {
"compilerOptions": {
"noEmit": true,
"declaration": true
},
"extends": "../../tsconfig.json" "extends": "../../tsconfig.json"
} }
File renamed without changes.
+2 -1
View File
@@ -1,9 +1,10 @@
export * from './clans';
export * from './constants'; export * from './constants';
export * from './equipmentPrice'; export * from './equipmentPrice';
export * from './idToRegion'; export * from './idToRegion';
export * from './leagues';
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 './resolveNearPenetration'; export * from './resolveNearPenetration';
export * from './searchClansAcrossRegions';
-7
View File
@@ -1,7 +0,0 @@
export const LEAGUES = [
{ name: 'diamond', minScore: 5000, index: 0 },
{ name: 'platinum', minScore: 4000, index: 1 },
{ name: 'gold', minScore: 3000, index: 2 },
{ name: 'silver', minScore: 2000, index: 3 },
{ name: 'bronze', minScore: -Infinity, index: 4 },
];
+78 -1
View File
@@ -1,2 +1,79 @@
export const FIRST_MINIMAL_ARCHIVED_RATING_SEASON = 49; import { RatingPlayer } from '../statistics';
export const LEAGUES = [
{ name: 'diamond', minScore: 5000, index: 0 },
{ name: 'platinum', minScore: 4000, index: 1 },
{ name: 'gold', minScore: 3000, index: 2 },
{ name: 'silver', minScore: 2000, index: 3 },
{ name: 'bronze', minScore: -Infinity, index: 4 },
];
export type RatingInfo =
| {
detail: undefined;
title: string;
icon: string | null;
start_at: string;
finish_at: string;
current_season: number;
updated_at: string;
count: number;
rewards: RatingReward[];
leagues: RatingLeague[];
}
| { detail: { error: string } };
export interface RatingNeighbors {
neighbors: RatingPlayer[];
}
export const FIRST_COMPREHENSIVE1_ARCHIVED_RATING_SEASON = 53; export const FIRST_COMPREHENSIVE1_ARCHIVED_RATING_SEASON = 53;
export const FIRST_MINIMAL_ARCHIVED_RATING_SEASON = 49;
export interface LeagueTop {
result: RatingPlayer[];
}
export interface RatingLeague {
title: string;
small_icon: string;
big_icon: string;
background: string;
index: number;
percentile: number;
}
export type RatingReward = {
from_position: number;
to_position: number;
count: number;
} & (
| {
type: 'vehicle';
vehicle: {
id: number;
name: string;
nation: string;
subnation: string;
use_subnation_flag: boolean;
type_slug: string;
level: number;
roman_level: string;
user_string: string;
image_url: string;
preview_image_url: string;
is_premium: boolean;
is_collectible: boolean;
};
}
| {
type: 'stuff';
stuff: {
name: string;
count: number;
title: string;
image_url: string;
type: string;
sizes: {};
};
}
);
@@ -1,6 +1,6 @@
import { Region } from '@blitzkit/core'; import { Region } from '@blitzkit/core';
import { ClanList } from '../../../../bot/src/types/clanList'; import fetchBlitz from '../../../website/src/core/blitz/fetchBlitz';
import fetchBlitz from './fetchBlitz'; import { ClanList } from './clans';
export default async function searchClansAcrossRegions( export default async function searchClansAcrossRegions(
search: string, search: string,
@@ -1,4 +1,11 @@
import { CrewMember, GunDefinition, ShellType, TankClass, Tier } from '.'; import {
CrewMember,
GunDefinition,
ShellType,
TankClass,
Tier,
TreeType,
} from '.';
export const SHELL_NAMES: Record<ShellType, string> = { export const SHELL_NAMES: Record<ShellType, string> = {
ap: 'AP', ap: 'AP',
@@ -70,3 +77,8 @@ export const flags: Record<string, string> = {
european: '🇪🇺', european: '🇪🇺',
other: '<:other:1218421572243558482>', other: '<:other:1218421572243558482>',
}; };
export const TREE_TYPE_ICONS: Record<TreeType, Record<TankClass, string>> = {
researchable: TANK_ICONS,
premium: TANK_ICONS_PREMIUM,
collector: TANK_ICONS_COLLECTOR,
};
+1
View File
@@ -0,0 +1 @@
export * from './tankAverages';
@@ -1,5 +1,5 @@
import { BlitzStats, tankDefinitions } from '@blitzkit/core'; import { BlitzStats, tankDefinitions } from '@blitzkit/core';
import { context } from '../blitzkit/context'; import { context } from '../../../website/src/core/blitzkit/context';
interface SpecialStats { interface SpecialStats {
winrate: number; winrate: number;
@@ -81,9 +81,9 @@ export interface IndividualTankAverage {
tankDefinitions; tankDefinitions;
export type TankAverages = Record<number, IndividualTankAverage>; export type BlitzStarsTankAverages = Record<number, IndividualTankAverage>;
export const tankAverages = fetch( export const blitzStarsTankAverages = fetch(
context === 'website' context === 'website'
? '/api/tank-averages' ? '/api/tank-averages'
: 'https://www.blitzstars.com/api/tankaverages.json', : 'https://www.blitzstars.com/api/tankaverages.json',
@@ -91,7 +91,7 @@ export const tankAverages = fetch(
.then((response) => response.json()) .then((response) => response.json())
.then((json) => { .then((json) => {
if (context === 'server') { if (context === 'server') {
const partialTankAverages: TankAverages = {}; const partialTankAverages: BlitzStarsTankAverages = {};
(json as IndividualTankAverage[]).forEach((individualTankAverage) => { (json as IndividualTankAverage[]).forEach((individualTankAverage) => {
partialTankAverages[individualTankAverage.tank_id] = partialTankAverages[individualTankAverage.tank_id] =
@@ -100,6 +100,6 @@ export const tankAverages = fetch(
return partialTankAverages; return partialTankAverages;
} else { } else {
return json as TankAverages; return json as BlitzStarsTankAverages;
} }
}); });
+1
View File
@@ -1,5 +1,6 @@
export * from './blitz'; export * from './blitz';
export * from './blitzkit'; export * from './blitzkit';
export * from './blitzstars';
export * from './databases'; export * from './databases';
export * from './imgur'; export * from './imgur';
export * from './math'; export * from './math';
+2 -1
View File
@@ -1,7 +1,8 @@
type Name = type Name =
| `color-${'background' | `panel-${'solid' | 'translucent'}` | 'surface' | 'overlay'}` | `color-${'background' | `panel-${'solid' | 'translucent'}` | 'surface' | 'overlay'}`
| `radius-${1 | 2 | 3 | 4 | 5 | 6 | 'full'}` | `radius-${1 | 2 | 3 | 4 | 5 | 6 | 'full'}`
| `space-${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}`; | `space-${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}`
| string;
export function Var(name: Name) { export function Var(name: Name) {
return `var(--${name})`; return `var(--${name})`;
@@ -1,4 +1,3 @@
import { RatingPlayer } from '../../../bot/src/commands/ratingLeaderboard';
import { RatingStats } from '../../../website/src/core/blitz/getAccountInfo'; import { RatingStats } from '../../../website/src/core/blitz/getAccountInfo';
import { BkrlSuperset1Entry } from '../streams/bkrl'; import { BkrlSuperset1Entry } from '../streams/bkrl';
@@ -16,3 +15,16 @@ export function deltaBkrlBlitzStats(
score: b2.score - a.score, score: b2.score - a.score,
} satisfies Omit<BkrlSuperset1Entry, 'id'>; } satisfies Omit<BkrlSuperset1Entry, 'id'>;
} }
export interface RatingPlayer {
spa_id: number;
mmr: number;
season_number: number;
calibrationBattlesLeft: number;
number: number;
percentile: number;
skip: boolean;
updated_at: string;
score: number;
nickname: string;
clan_tag: string;
}
+8 -3
View File
@@ -1,8 +1,8 @@
import { DiffedTankStats } from '../../../bot/src/core/blitzstars/getStatsInPeriod';
import { SupplementaryStats } from '../../../website/src/core/blitz/getAccountInfo'; import { SupplementaryStats } from '../../../website/src/core/blitz/getAccountInfo';
import { tankAverages } from '../../../website/src/core/blitzstars/tankAverages';
import { tankDefinitions, TreeType } from '../blitzkit/tankDefinitions'; import { tankDefinitions, TreeType } from '../blitzkit/tankDefinitions';
import { blitzStarsTankAverages } from '../blitzstars/tankAverages';
import calculateWN8 from './calculateWN8'; import calculateWN8 from './calculateWN8';
import { BlitzStats } from './compositeStats';
import sumStats from './sumStats'; import sumStats from './sumStats';
export interface StatFilters { export interface StatFilters {
@@ -21,7 +21,7 @@ export async function filterStats(
if (filters.tank) filters = { tank: filters.tank }; if (filters.tank) filters = { tank: filters.tank };
const awaitedTankDefinitions = await tankDefinitions; const awaitedTankDefinitions = await tankDefinitions;
const awaitedTankAverages = await tankAverages; const awaitedTankAverages = await blitzStarsTankAverages;
const filteredOrder = order.filter((id) => { const filteredOrder = order.filter((id) => {
const entry = awaitedTankDefinitions[id]; const entry = awaitedTankDefinitions[id];
@@ -72,3 +72,8 @@ export async function filterStats(
return { stats, supplementary, filteredOrder }; return { stats, supplementary, filteredOrder };
} }
export interface DiffedTankStats {
diff: Record<number, BlitzStats>;
order: number[];
}
@@ -1,5 +1,4 @@
import { TierWeightsRecord } from '../../../bot/src/components/TierWeights'; import { tankDefinitions, Tier } from '../blitzkit/tankDefinitions';
import { tankDefinitions } from '../blitzkit/tankDefinitions';
import { BlitzStats } from './compositeStats/constants'; import { BlitzStats } from './compositeStats/constants';
export async function getTierWeights( export async function getTierWeights(
@@ -20,3 +19,4 @@ export async function getTierWeights(
return tierWeights; return tierWeights;
} }
export type TierWeightsRecord = Partial<Record<Tier, number>>;
-4
View File
@@ -1,4 +0,0 @@
declare module '*.proto' {
const value: string;
export default value;
}
@@ -8,13 +8,10 @@ import {
RegionSubdomain, RegionSubdomain,
superCompress, superCompress,
} from '@blitzkit/core'; } from '@blitzkit/core';
import { RatingInfo, RatingNeighbors } from '@blitzkit/core/src/blitz/leagues';
import { RatingPlayer } from '@blitzkit/core/src/statistics/deltaBkrlBlitzStats';
import { chunk } from 'lodash'; import { chunk } from 'lodash';
import { argv } from 'process'; import { argv } from 'process';
import {
RatingInfo,
RatingNeighbors,
RatingPlayer,
} from '../../bot/src/commands/ratingLeaderboard';
import { getAccountInfo } from '../../website/src/core/blitz/getAccountInfo'; import { getAccountInfo } from '../../website/src/core/blitz/getAccountInfo';
import regionSubdomainToRegion from '../../website/src/core/blitz/regionSubdomainToRegion'; import regionSubdomainToRegion from '../../website/src/core/blitz/regionSubdomainToRegion';
import { patientFetchJSON } from '../../website/src/core/blitzkit/patientFetchJSON'; import { patientFetchJSON } from '../../website/src/core/blitzkit/patientFetchJSON';
@@ -1,6 +1,6 @@
import { blitzStarsTankAverages } from '@blitzkit/core/src/blitzstars/tankAverages';
import { NextResponse } from 'next/server'; import { NextResponse } from 'next/server';
import { tankAverages } from '../../../core/blitzstars/tankAverages';
export async function GET() { export async function GET() {
return NextResponse.json(await tankAverages); return NextResponse.json(await blitzStarsTankAverages);
} }
@@ -1,11 +1,10 @@
import { TankCharacteristics } from '@blitzkit/core'; import { TankCharacteristics, Var } from '@blitzkit/core';
import { import {
CaretLeftIcon, CaretLeftIcon,
CaretRightIcon, CaretRightIcon,
CaretSortIcon, CaretSortIcon,
} from '@radix-ui/react-icons'; } from '@radix-ui/react-icons';
import { Flex, IconButton, Table, Text } from '@radix-ui/themes'; import { Flex, IconButton, Table, Text } from '@radix-ui/themes';
import { theme } from '../../../../../../bot/src/stitches.config';
import { StickyRowHeaderCell } from '../../../../components/StickyRowHeaderCell'; import { StickyRowHeaderCell } from '../../../../components/StickyRowHeaderCell';
import * as CompareEphemeral from '../../../../stores/compareEphemeral'; import * as CompareEphemeral from '../../../../stores/compareEphemeral';
import * as ComparePersistent from '../../../../stores/comparePersistent'; import * as ComparePersistent from '../../../../stores/comparePersistent';
@@ -103,8 +102,8 @@ export function CompareRow({
const resolvedDisplayValue = display const resolvedDisplayValue = display
? display(stats[index]) ? display(stats[index])
: decimals === undefined : decimals === undefined
? value ? value
: value?.toFixed(decimals); : value?.toFixed(decimals);
return ( return (
<Table.Cell <Table.Cell
@@ -117,12 +116,12 @@ export function CompareRow({
value === values[0] value === values[0]
? undefined ? undefined
: ( : (
deltaType === 'higherIsBetter' deltaType === 'higherIsBetter'
? value > values[0] ? value > values[0]
: value < values[0] : value < values[0]
) )
? `color-mix(in srgb, ${theme.colors.componentCallToActionInteractive_green} ${normalizedDeltaPercentage}%, ${theme.colors.componentCallToActionInteractive_green}00)` ? `color-mix(in srgb, ${Var('green-7')} ${normalizedDeltaPercentage}%, ${Var('green-3')})`
: `color-mix(in srgb, ${theme.colors.componentCallToActionInteractive_red} ${normalizedDeltaPercentage}%, ${theme.colors.componentCallToActionInteractive_red}00)`, : `color-mix(in srgb, ${Var('red-7')} ${normalizedDeltaPercentage}%, ${Var('red-3')})`,
}} }}
> >
<Flex <Flex
@@ -149,8 +148,8 @@ export function CompareRow({
deltaNominalDisplay deltaNominalDisplay
? deltaNominalDisplay(delta) ? deltaNominalDisplay(delta)
: decimals === undefined : decimals === undefined
? delta ? delta
: delta.toFixed(decimals) : delta.toFixed(decimals)
}`} }`}
) )
</Text> </Text>
@@ -1,5 +1,6 @@
import { import {
TankCharacteristics, TankCharacteristics,
Var,
asset, asset,
availableProvisions, availableProvisions,
checkConsumableProvisionInclusivity, checkConsumableProvisionInclusivity,
@@ -13,7 +14,6 @@ import { ComponentPlaceholderIcon } from '@radix-ui/react-icons';
import { Button, Flex, Popover, Slider, Table, Text } from '@radix-ui/themes'; import { Button, Flex, Popover, Slider, Table, Text } from '@radix-ui/themes';
import { debounce, times } from 'lodash'; import { debounce, times } from 'lodash';
import { use } from 'react'; import { use } from 'react';
import { theme } from '../../../../../../bot/src/stitches.config';
import { BlitzkitButtonGrayIcon } from '../../../../components/BlitzkitButtonGrayIcon'; import { BlitzkitButtonGrayIcon } from '../../../../components/BlitzkitButtonGrayIcon';
import { ConsumablesManager } from '../../../../components/ConsumablesManager'; import { ConsumablesManager } from '../../../../components/ConsumablesManager';
import { CrewSkillManager } from '../../../../components/CrewSkillManager'; import { CrewSkillManager } from '../../../../components/CrewSkillManager';
@@ -83,12 +83,7 @@ export function CompareTable({ stats }: CompareTableProps) {
<Popover.Root> <Popover.Root>
<Popover.Trigger> <Popover.Trigger>
<Button variant="ghost" radius="large"> <Button variant="ghost" radius="large">
<Flex <Flex direction="column" style={{ gap: 2 }}>
direction="column"
style={{
gap: 2,
}}
>
{Object.entries(awaitedSkillDefinitions.classes).map( {Object.entries(awaitedSkillDefinitions.classes).map(
([tankClass, skills]) => ( ([tankClass, skills]) => (
<Flex key={tankClass} style={{ gap: 2 }}> <Flex key={tankClass} style={{ gap: 2 }}>
@@ -101,10 +96,10 @@ export function CompareTable({ stats }: CompareTableProps) {
borderRadius: 2, borderRadius: 2,
backgroundColor: backgroundColor:
crewSkills[skill] === 0 crewSkills[skill] === 0
? theme.colors.textLowContrast ? Var('gray-11')
: permanentSkills.includes(skill) : permanentSkills.includes(skill)
? theme.colors.textLowContrast_crimson ? Var('crimson-11')
: theme.colors.textLowContrast_amber, : Var('amber-11'),
}} }}
/> />
))} ))}
@@ -381,9 +376,8 @@ export function CompareTable({ stats }: CompareTableProps) {
height: 8, height: 8,
backgroundColor: backgroundColor:
equipment === -1 equipment === -1
? theme.colors ? Var('crimson-11')
.textLowContrast_crimson : Var('gray-11'),
: theme.colors.textLowContrast,
borderRadius: 2, borderRadius: 2,
}} }}
/> />
@@ -393,9 +387,8 @@ export function CompareTable({ stats }: CompareTableProps) {
height: 8, height: 8,
backgroundColor: backgroundColor:
equipment === 1 equipment === 1
? theme.colors ? Var('crimson-11')
.textLowContrast_crimson : Var('gray-11'),
: theme.colors.textLowContrast,
borderRadius: 2, borderRadius: 2,
}} }}
/> />
@@ -1,5 +1,5 @@
import { Var } from '@blitzkit/core';
import { useEffect, useRef } from 'react'; import { useEffect, useRef } from 'react';
import { theme } from '../../../../../../../bot/src/stitches.config';
import { insertionMarkers } from './constants'; import { insertionMarkers } from './constants';
export function InsertionMarker({ index }: { index: number }) { export function InsertionMarker({ index }: { index: number }) {
@@ -28,7 +28,7 @@ export function InsertionMarker({ index }: { index: number }) {
height: '75%', height: '75%',
width: 2, width: 2,
borderRadius: 1, borderRadius: 1,
backgroundColor: theme.colors.textLowContrast_crimson, backgroundColor: Var('crimson-11'),
position: 'absolute', position: 'absolute',
right: 0, right: 0,
top: '50%', top: '50%',
+6 -10
View File
@@ -6,7 +6,10 @@ import {
Region, Region,
REGIONS, REGIONS,
UNLOCALIZED_REGION_NAMES, UNLOCALIZED_REGION_NAMES,
Var,
} from '@blitzkit/core'; } from '@blitzkit/core';
import { RatingInfo } from '@blitzkit/core/src/blitz/leagues';
import { RatingPlayer } from '@blitzkit/core/src/statistics/deltaBkrlBlitzStats';
import { blackA, orangeDark } from '@radix-ui/colors'; import { blackA, orangeDark } from '@radix-ui/colors';
import { MagnifyingGlassIcon } from '@radix-ui/react-icons'; import { MagnifyingGlassIcon } from '@radix-ui/react-icons';
import { import {
@@ -22,11 +25,6 @@ import { produce } from 'immer';
import { debounce, range } from 'lodash'; import { debounce, range } from 'lodash';
import { ChangeEvent, useEffect, useRef, useState } from 'react'; import { ChangeEvent, useEffect, useRef, useState } from 'react';
import { create } from 'zustand'; import { create } from 'zustand';
import {
RatingInfo,
RatingPlayer,
} from '../../../../../bot/src/commands/ratingLeaderboard';
import { theme } from '../../../../../bot/src/stitches.config';
import PageWrapper from '../../../components/PageWrapper'; import PageWrapper from '../../../components/PageWrapper';
import { Skeleton } from '../../../components/Skeleton'; import { Skeleton } from '../../../components/Skeleton';
import fetchBlitz from '../../../core/blitz/fetchBlitz'; import fetchBlitz from '../../../core/blitz/fetchBlitz';
@@ -1008,9 +1006,7 @@ export default function Page() {
return ( return (
<Table.Row <Table.Row
style={{ style={{
backgroundColor: highlight backgroundColor: highlight ? Var('orange-9') : 'unset',
? theme.colors.componentInteractiveActive_orange
: 'unset',
cursor: 'pointer', cursor: 'pointer',
}} }}
key={`${region}${season}${index}`} key={`${region}${season}${index}`}
@@ -1023,14 +1019,14 @@ export default function Page() {
<Flex gap="2"> <Flex gap="2">
{names[region][id] === null {names[region][id] === null
? `Deleted player ${id}` ? `Deleted player ${id}`
: names[region][id]?.nickname ?? ( : (names[region][id]?.nickname ?? (
<Skeleton <Skeleton
style={{ style={{
height: 16, height: 16,
width: Math.random() * 128 + 128, width: Math.random() * 128 + 128,
}} }}
/> />
)} ))}
{clan ? ( {clan ? (
<Text color="gray">{`[${clan}]`}</Text> <Text color="gray">{`[${clan}]`}</Text>
) : ( ) : (
@@ -7,6 +7,7 @@ import {
idToRegion, idToRegion,
tankDefinitions, tankDefinitions,
} from '@blitzkit/core'; } from '@blitzkit/core';
import { blitzStarsTankAverages } from '@blitzkit/core/src/blitzstars/tankAverages';
import { import {
ArrowDownIcon, ArrowDownIcon,
MagnifyingGlassIcon, MagnifyingGlassIcon,
@@ -45,7 +46,6 @@ import getTankStats from '../../../core/blitz/getTankStats';
import searchPlayersAcrossRegions, { import searchPlayersAcrossRegions, {
AccountListWithServer, AccountListWithServer,
} from '../../../core/blitz/searchPlayersAcrossRegions'; } from '../../../core/blitz/searchPlayersAcrossRegions';
import { tankAverages } from '../../../core/blitzstars/tankAverages';
import * as Session from '../../../stores/session'; import * as Session from '../../../stores/session';
export default function Page({ export default function Page({
@@ -55,7 +55,7 @@ export default function Page({
}) { }) {
const [loaded, setLoaded] = useState(false); const [loaded, setLoaded] = useState(false);
const awaitedTankDefinitions = use(tankDefinitions); const awaitedTankDefinitions = use(tankDefinitions);
const awaitedTankAvearges = use(tankAverages); const awaitedTankAvearges = use(blitzStarsTankAverages);
const [showSearch, setShowSearch] = useState(false); const [showSearch, setShowSearch] = useState(false);
const [searching, setSearching] = useState(false); const [searching, setSearching] = useState(false);
const [searchResults, setSearchResults] = useState<AccountListWithServer>([]); const [searchResults, setSearchResults] = useState<AccountListWithServer>([]);
@@ -1,3 +1,5 @@
import { provisionDefinitions } from '@blitzkit/core';
import { TREE_TYPE_ICONS } from '@blitzkit/core/src/blitzkit/tankDefinitions/constants';
import { CaretRightIcon, UpdateIcon } from '@radix-ui/react-icons'; import { CaretRightIcon, UpdateIcon } from '@radix-ui/react-icons';
import { Button, Dialog, Flex, Heading } from '@radix-ui/themes'; import { Button, Dialog, Flex, Heading } from '@radix-ui/themes';
import Link from 'next/link'; import Link from 'next/link';
@@ -6,8 +8,6 @@ import { pushTankopediaPath } from '../../../../../core/blitzkit/pushTankopediaP
import { tankToDuelMember } from '../../../../../core/blitzkit/tankToDuelMember'; import { tankToDuelMember } from '../../../../../core/blitzkit/tankToDuelMember';
import * as Duel from '../../../../../stores/duel'; import * as Duel from '../../../../../stores/duel';
import { TankSearch } from '../../components/TankSearch'; import { TankSearch } from '../../components/TankSearch';
import { provisionDefinitions } from '@blitzkit/core';
import { TREE_TYPE_ICONS } from '../../../../../../../bot/src/components/Tanks/components/Item/constants';
export function Title() { export function Title() {
const awaitedProvisionDefinitions = use(provisionDefinitions); const awaitedProvisionDefinitions = use(provisionDefinitions);
@@ -1,5 +1,4 @@
import { Region } from '@blitzkit/core'; import { RatingInfo, Region } from '@blitzkit/core';
import { RatingInfo } from '../../../../bot/src/commands/ratingLeaderboard';
import { context } from '../blitzkit/context'; import { context } from '../blitzkit/context';
import { patientFetch } from '../blitzkit/patientFetch'; import { patientFetch } from '../blitzkit/patientFetch';
import regionToRegionSubdomain from './regionToRegionSubdomain'; import regionToRegionSubdomain from './regionToRegionSubdomain';
@@ -1,8 +1,6 @@
import { Region } from '@blitzkit/core'; import { Region } from '@blitzkit/core';
import { import { LeagueTop } from '@blitzkit/core/src/blitz/rating';
LeagueTop, import { RatingPlayer } from '@blitzkit/core/src/statistics/deltaBkrlBlitzStats';
RatingPlayer,
} from '../../../../bot/src/commands/ratingLeaderboard';
import { context } from '../blitzkit/context'; import { context } from '../blitzkit/context';
import { patientFetch } from '../blitzkit/patientFetch'; import { patientFetch } from '../blitzkit/patientFetch';
import regionToRegionSubdomain from './regionToRegionSubdomain'; import regionToRegionSubdomain from './regionToRegionSubdomain';
@@ -1,5 +1,4 @@
import { Region } from '@blitzkit/core'; import { RatingNeighbors, Region } from '@blitzkit/core';
import { RatingNeighbors } from '../../../../bot/src/commands/ratingLeaderboard';
import { patientFetch } from '../blitzkit/patientFetch'; import { patientFetch } from '../blitzkit/patientFetch';
import { withCORSProxy } from '../blitzkit/withCORSProxy'; import { withCORSProxy } from '../blitzkit/withCORSProxy';
import regionToRegionSubdomain from './regionToRegionSubdomain'; import regionToRegionSubdomain from './regionToRegionSubdomain';
@@ -1,6 +1,6 @@
import { Region, asset } from '@blitzkit/core'; import { Region, asset } from '@blitzkit/core';
import { RatingInfo } from '@blitzkit/core/src/blitz/leagues';
import { superDecompress } from '@blitzkit/core/src/blitzkit/superDecompress'; import { superDecompress } from '@blitzkit/core/src/blitzkit/superDecompress';
import { RatingInfo } from '../../../../bot/src/commands/ratingLeaderboard';
const cache: Record< const cache: Record<
Region, Region,
-4
View File
@@ -1,4 +0,0 @@
declare module '*.glsl' {
const value: string;
export default value;
}
+1 -1
View File
@@ -20,6 +20,6 @@
} }
] ]
}, },
"include": ["packages/**/*"], "include": ["packages/**/*", "types.d.ts"],
"exclude": ["node_modules/**/*", "dist"] "exclude": ["node_modules/**/*", "dist"]
} }
Vendored
+14
View File
@@ -0,0 +1,14 @@
declare module '*.glsl' {
const value: string;
export default value;
}
declare module '*.proto' {
const value: string;
export default value;
}
declare module '*.ttf' {
const path: string;
export default path;
}