mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 12:09:51 +02:00
feat: subtitle
This commit is contained in:
1 parent
2a2a7a067c
commit
6b175238b2
2 files changed
+27
-6
No files matched your search
+23
-6
@@ -1,7 +1,11 @@
|
|||||||
import { clamp } from 'lodash';
|
import { clamp } from 'lodash';
|
||||||
import CommandWrapper from '../components/CommandWrapper';
|
import CommandWrapper from '../components/CommandWrapper';
|
||||||
import TitleBar from '../components/TitleBar';
|
import TitleBar from '../components/TitleBar';
|
||||||
|
import { getClanAccountInfo } from '../core/blitz/getClanAccountInfo';
|
||||||
|
import { idToRegion } from '../core/blitz/idToRegion';
|
||||||
|
import { emblemURL } from '../core/blitzkit/emblemURL';
|
||||||
import { iconPng } from '../core/blitzkit/iconPng';
|
import { iconPng } from '../core/blitzkit/iconPng';
|
||||||
|
import { mapDefinitions } from '../core/blitzkit/mapDefinitions';
|
||||||
import { RenderConfiguration } from '../core/blitzkit/renderConfiguration';
|
import { RenderConfiguration } from '../core/blitzkit/renderConfiguration';
|
||||||
import { tankDefinitions } from '../core/blitzkit/tankDefinitions';
|
import { tankDefinitions } from '../core/blitzkit/tankDefinitions';
|
||||||
import { TIER_ROMAN_NUMERALS } from '../core/blitzkit/tankDefinitions/constants';
|
import { TIER_ROMAN_NUMERALS } from '../core/blitzkit/tankDefinitions/constants';
|
||||||
@@ -461,6 +465,7 @@ export const replayCommand = new Promise<CommandRegistry>((resolve) => {
|
|||||||
),
|
),
|
||||||
|
|
||||||
async handler(interaction) {
|
async handler(interaction) {
|
||||||
|
const awaitedMapDefinitions = await mapDefinitions;
|
||||||
const file = interaction.options.getAttachment('file')!;
|
const file = interaction.options.getAttachment('file')!;
|
||||||
// const file = {
|
// const file = {
|
||||||
// url: 'https://cdn.discordapp.com/ephemeral-attachments/1232434891652861972/1232781496016834581/20240328_1530__TresAbhi_M60_1157057448155406708.wotbreplay?ex=662ab4bc&is=6629633c&hm=c784cd10e80232350ddaf291fa987b879c4d0a8083b78298c9eee4fa0d507f6c&',
|
// url: 'https://cdn.discordapp.com/ephemeral-attachments/1232434891652861972/1232781496016834581/20240328_1530__TresAbhi_M60_1157057448155406708.wotbreplay?ex=662ab4bc&is=6629633c&hm=c784cd10e80232350ddaf291fa987b879c4d0a8083b78298c9eee4fa0d507f6c&',
|
||||||
@@ -479,20 +484,30 @@ export const replayCommand = new Promise<CommandRegistry>((resolve) => {
|
|||||||
const replayData = (await fetch(
|
const replayData = (await fetch(
|
||||||
`https://api.wotinspector.com/v2/blitz/replays/${replayId}/`,
|
`https://api.wotinspector.com/v2/blitz/replays/${replayId}/`,
|
||||||
).then((response) => response.json())) as WotInspectorReplay;
|
).then((response) => response.json())) as WotInspectorReplay;
|
||||||
const protagonistTeamId = replayData.players_data.find(
|
const antagonistTeamId = 3 - replayData.protagonist_team;
|
||||||
(player) => player.dbid === replayData.protagonist,
|
|
||||||
)!.team;
|
|
||||||
const antagonistTeamId = 3 - protagonistTeamId;
|
|
||||||
const players = replayData.players_data.sort(
|
const players = replayData.players_data.sort(
|
||||||
(a, b) => b.damage_made - a.damage_made,
|
(a, b) => b.damage_made - a.damage_made,
|
||||||
);
|
);
|
||||||
|
const clan = (
|
||||||
|
await getClanAccountInfo(
|
||||||
|
idToRegion(replayData.protagonist),
|
||||||
|
replayData.protagonist,
|
||||||
|
['clan'],
|
||||||
|
)
|
||||||
|
)?.clan;
|
||||||
|
const clanImage = clan ? emblemURL(clan.emblem_set_id) : undefined;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
new RenderConfiguration({ width: 960 }),
|
new RenderConfiguration({ width: 960 }),
|
||||||
<CommandWrapper>
|
<CommandWrapper>
|
||||||
<TitleBar
|
<TitleBar
|
||||||
title={replayData.player_name}
|
title={replayData.player_name}
|
||||||
description={`uwu <3 xoxo hugs and kicks`}
|
image={clanImage}
|
||||||
|
description={`${
|
||||||
|
replayData.protagonist_team === replayData.winner_team
|
||||||
|
? 'Victory'
|
||||||
|
: 'Defeat'
|
||||||
|
} • ${awaitedMapDefinitions[replayData.map_id].name}`}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -513,7 +528,9 @@ export const replayCommand = new Promise<CommandRegistry>((resolve) => {
|
|||||||
|
|
||||||
{await Promise.all(
|
{await Promise.all(
|
||||||
players
|
players
|
||||||
.filter((player) => player.team === protagonistTeamId)
|
.filter(
|
||||||
|
(player) => player.team === replayData.protagonist_team,
|
||||||
|
)
|
||||||
.map((player) =>
|
.map((player) =>
|
||||||
playerListing(
|
playerListing(
|
||||||
player,
|
player,
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
import { config } from 'dotenv';
|
||||||
|
|
||||||
|
config();
|
||||||
|
|
||||||
const devHostStartNames = [
|
const devHostStartNames = [
|
||||||
'blitzkrieg-',
|
'blitzkrieg-',
|
||||||
'localhost',
|
'localhost',
|
||||||
|
|||||||
Reference in new issue
Block a user