mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 10:47:04 +02:00
feat: replace $
This commit is contained in:
1 parent
98724df711
commit
f9f7468544
17 files changed
+182
-175
No files matched your search
@@ -10,11 +10,11 @@ import { createLocalizedCommand } from '../core/discord/createLocalizedCommand';
|
||||
import { translator } from '../core/localization/translator';
|
||||
import { CommandRegistry } from '../events/interactionCreate';
|
||||
|
||||
interface Auction {
|
||||
type Auction = null | {
|
||||
count: number;
|
||||
has_next: boolean;
|
||||
results: Result[];
|
||||
}
|
||||
};
|
||||
|
||||
type Result =
|
||||
| {
|
||||
@@ -88,12 +88,12 @@ export const auctionCommand = new Promise<CommandRegistry>((resolve) => {
|
||||
pageSize
|
||||
}&type[]=vehicle&saleable=${saleable}`,
|
||||
).then((response) => response.json() as Promise<Auction>);
|
||||
const saleableTanks = data.results.filter((result) => result.available);
|
||||
|
||||
if (saleableTanks.length === 0) {
|
||||
if (data === null) {
|
||||
return strings.bot.commands.auction.errors.no_auction;
|
||||
}
|
||||
|
||||
const saleableTanks = data.results.filter((result) => result.available);
|
||||
const nextPricesTimestamp = saleableTanks[0].next_price_timestamp;
|
||||
|
||||
const title = `# ${strings.bot.commands.auction.body.title}`;
|
||||
|
||||
@@ -26,7 +26,7 @@ export const inactiveCommand = new Promise<CommandRegistry>((resolve) => {
|
||||
.setName('threshold')
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.commands.inactive.options.threshold.$,
|
||||
(strings) => strings.bot.commands.inactive.options.threshold.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -60,11 +60,11 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
|
||||
return option
|
||||
.addIntegerOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.commands.rating_leaderboard.options.limit.$)
|
||||
.setName(strings.bot.commands.rating_leaderboard.options.limit.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) =>
|
||||
strings.bot.commands.rating_leaderboard.options.limit.$,
|
||||
strings.bot.commands.rating_leaderboard.options.limit.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
@@ -90,11 +90,13 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
|
||||
)
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.commands.rating_leaderboard.options.season.$)
|
||||
.setName(
|
||||
strings.bot.commands.rating_leaderboard.options.season.name,
|
||||
)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) =>
|
||||
strings.bot.commands.rating_leaderboard.options.season.$,
|
||||
strings.bot.commands.rating_leaderboard.options.season.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
@@ -159,13 +161,13 @@ export const ratingLeaderboardCommand = new Promise<CommandRegistry>(
|
||||
|
||||
return option
|
||||
.setName(
|
||||
strings.bot.commands.rating_leaderboard.options.league.$,
|
||||
strings.bot.commands.rating_leaderboard.options.league.name,
|
||||
)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) =>
|
||||
strings.bot.commands.rating_leaderboard.options.league
|
||||
.$,
|
||||
.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -35,10 +35,11 @@ export const researchCommand = new Promise<CommandRegistry>((resolve) => {
|
||||
command: createLocalizedCommand('research')
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.commands.research.options.target_tank.$)
|
||||
.setName(strings.bot.commands.research.options.target_tank.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.commands.research.options.target_tank.$,
|
||||
(strings) =>
|
||||
strings.bot.commands.research.options.target_tank.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
@@ -57,11 +58,11 @@ export const researchCommand = new Promise<CommandRegistry>((resolve) => {
|
||||
)
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.commands.research.options.starting_tank.$)
|
||||
.setName(strings.bot.commands.research.options.starting_tank.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) =>
|
||||
strings.bot.commands.research.options.starting_tank.$,
|
||||
strings.bot.commands.research.options.starting_tank.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -23,10 +23,10 @@ export const searchClansCommand = new Promise<CommandRegistry>((resolve) => {
|
||||
const { strings } = translator(Locale.EnglishUS);
|
||||
|
||||
return option
|
||||
.setName(strings.bot.commands.search_clans.options.limit.$)
|
||||
.setName(strings.bot.commands.search_clans.options.limit.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.commands.search_clans.options.limit.$,
|
||||
(strings) => strings.bot.commands.search_clans.options.limit.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -28,10 +28,11 @@ export const searchPlayersCommand = new Promise<CommandRegistry>((resolve) => {
|
||||
)
|
||||
.addIntegerOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.commands.search_players.options.limit.$)
|
||||
.setName(strings.bot.commands.search_players.options.limit.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.commands.search_players.options.limit.$,
|
||||
(strings) =>
|
||||
strings.bot.commands.search_players.options.limit.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -30,7 +30,7 @@ export function GenericAllStats({
|
||||
<Root>
|
||||
<Row>
|
||||
<Card
|
||||
title={strings.bot.commands.full_stats.body.cards.games.$}
|
||||
title={strings.bot.commands.full_stats.body.cards.games.title}
|
||||
items={[
|
||||
{
|
||||
label: strings.bot.commands.full_stats.body.cards.games.winrate,
|
||||
@@ -48,7 +48,7 @@ export function GenericAllStats({
|
||||
]}
|
||||
/>
|
||||
<Card
|
||||
title={strings.bot.commands.full_stats.body.cards.efficiency.$}
|
||||
title={strings.bot.commands.full_stats.body.cards.efficiency.title}
|
||||
items={[
|
||||
{
|
||||
label: strings.bot.commands.full_stats.body.cards.efficiency.wn8,
|
||||
@@ -78,7 +78,7 @@ export function GenericAllStats({
|
||||
</Row>
|
||||
<Row>
|
||||
<Card
|
||||
title={strings.bot.commands.full_stats.body.cards.lethality.$}
|
||||
title={strings.bot.commands.full_stats.body.cards.lethality.title}
|
||||
items={[
|
||||
{
|
||||
label:
|
||||
@@ -113,7 +113,7 @@ export function GenericAllStats({
|
||||
]}
|
||||
/>
|
||||
<Card
|
||||
title={strings.bot.commands.full_stats.body.cards.miscellaneous.$}
|
||||
title={strings.bot.commands.full_stats.body.cards.miscellaneous.title}
|
||||
items={[
|
||||
{
|
||||
label:
|
||||
|
||||
@@ -9,7 +9,7 @@ export function addClanChoices(option: SlashCommandStringOption) {
|
||||
.setName('clan')
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.clan.$,
|
||||
(strings) => strings.bot.common.options.clan.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -23,10 +23,10 @@ export function addFilterOptions<
|
||||
option
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.common.options.filters.nation.$)
|
||||
.setName(strings.bot.common.options.filters.nation.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.filters.nation.$,
|
||||
(strings) => strings.bot.common.options.filters.nation.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
@@ -60,10 +60,10 @@ export function addFilterOptions<
|
||||
.addStringOption((option) => addTierChoices(option).setRequired(false))
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.common.options.filters.class.$)
|
||||
.setName(strings.bot.common.options.filters.class.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.filters.class.$,
|
||||
(strings) => strings.bot.common.options.filters.class.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
@@ -90,10 +90,10 @@ export function addFilterOptions<
|
||||
)
|
||||
.addStringOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.common.options.filters.type.$)
|
||||
.setName(strings.bot.common.options.filters.type.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.filters.type.$,
|
||||
(strings) => strings.bot.common.options.filters.type.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -19,32 +19,32 @@ export function addPeriodSubCommands(
|
||||
const { strings } = translator(Locale.EnglishUS);
|
||||
const subcommandNameLocalizations = {
|
||||
today: localizationObject(
|
||||
(strings) => strings.bot.common.subcommands.today.$,
|
||||
(strings) => strings.bot.common.subcommands.today.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
30: localizationObject(
|
||||
(strings) => strings.bot.common.subcommands[30].$,
|
||||
(strings) => strings.bot.common.subcommands[30].name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
60: localizationObject(
|
||||
(strings) => strings.bot.common.subcommands[60].$,
|
||||
(strings) => strings.bot.common.subcommands[60].name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
90: localizationObject(
|
||||
(strings) => strings.bot.common.subcommands[90].$,
|
||||
(strings) => strings.bot.common.subcommands[90].name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
career: localizationObject(
|
||||
(strings) => strings.bot.common.subcommands.career.$,
|
||||
(strings) => strings.bot.common.subcommands.career.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
custom: localizationObject(
|
||||
(strings) => strings.bot.common.subcommands.custom.$,
|
||||
(strings) => strings.bot.common.subcommands.custom.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
@@ -74,7 +74,7 @@ export function addPeriodSubCommands(
|
||||
.addSubcommand((option) =>
|
||||
extra(
|
||||
option
|
||||
.setName(strings.bot.common.subcommands.today.$)
|
||||
.setName(strings.bot.common.subcommands.today.name)
|
||||
.setNameLocalizations(subcommandNameLocalizations.today)
|
||||
.setDescription(strings.bot.common.subcommands.today.description)
|
||||
.setDescriptionLocalizations(
|
||||
@@ -85,7 +85,7 @@ export function addPeriodSubCommands(
|
||||
.addSubcommand((option) =>
|
||||
extra(
|
||||
option
|
||||
.setName(strings.bot.common.subcommands[30].$)
|
||||
.setName(strings.bot.common.subcommands[30].name)
|
||||
.setNameLocalizations(subcommandNameLocalizations[30])
|
||||
.setDescription(strings.bot.common.subcommands[30].description)
|
||||
.setDescriptionLocalizations(subcommandDescriptionLocalizations[30]),
|
||||
@@ -94,7 +94,7 @@ export function addPeriodSubCommands(
|
||||
.addSubcommand((option) =>
|
||||
extra(
|
||||
option
|
||||
.setName(strings.bot.common.subcommands[60].$)
|
||||
.setName(strings.bot.common.subcommands[60].name)
|
||||
.setNameLocalizations(subcommandNameLocalizations[60])
|
||||
.setDescription(strings.bot.common.subcommands[60].description)
|
||||
.setDescriptionLocalizations(subcommandDescriptionLocalizations[60]),
|
||||
@@ -103,7 +103,7 @@ export function addPeriodSubCommands(
|
||||
.addSubcommand((option) =>
|
||||
extra(
|
||||
option
|
||||
.setName(strings.bot.common.subcommands[90].$)
|
||||
.setName(strings.bot.common.subcommands[90].name)
|
||||
.setNameLocalizations(subcommandNameLocalizations[90])
|
||||
.setDescription(strings.bot.common.subcommands[90].description)
|
||||
.setDescriptionLocalizations(subcommandDescriptionLocalizations[90]),
|
||||
@@ -112,7 +112,7 @@ export function addPeriodSubCommands(
|
||||
.addSubcommand((option) =>
|
||||
extra(
|
||||
option
|
||||
.setName(strings.bot.common.subcommands.career.$)
|
||||
.setName(strings.bot.common.subcommands.career.name)
|
||||
.setNameLocalizations(subcommandNameLocalizations.career)
|
||||
.setDescription(strings.bot.common.subcommands.career.description)
|
||||
.setDescriptionLocalizations(
|
||||
@@ -123,7 +123,7 @@ export function addPeriodSubCommands(
|
||||
.addSubcommand((option) =>
|
||||
extra(
|
||||
option
|
||||
.setName(strings.bot.common.subcommands.custom.$)
|
||||
.setName(strings.bot.common.subcommands.custom.name)
|
||||
.setNameLocalizations(subcommandNameLocalizations.custom)
|
||||
.setDescription(strings.bot.common.subcommands.custom.description)
|
||||
.setDescriptionLocalizations(
|
||||
@@ -131,7 +131,7 @@ export function addPeriodSubCommands(
|
||||
)
|
||||
.addIntegerOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.common.subcommands.custom.options.start.$)
|
||||
.setName(strings.bot.common.subcommands.custom.options.start.name)
|
||||
.setDescription(
|
||||
strings.bot.common.subcommands.custom.options.start.description,
|
||||
)
|
||||
@@ -139,7 +139,7 @@ export function addPeriodSubCommands(
|
||||
)
|
||||
.addIntegerOption((option) =>
|
||||
option
|
||||
.setName(strings.bot.common.subcommands.custom.options.end.$)
|
||||
.setName(strings.bot.common.subcommands.custom.options.end.name)
|
||||
.setDescription(
|
||||
strings.bot.common.subcommands.custom.options.end.description,
|
||||
)
|
||||
|
||||
@@ -11,10 +11,10 @@ export function addRegionChoices(option: SlashCommandStringOption) {
|
||||
const { strings } = translator(Locale.EnglishUS);
|
||||
|
||||
return option
|
||||
.setName(strings.bot.common.options.region.$)
|
||||
.setName(strings.bot.common.options.region.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.region.$,
|
||||
(strings) => strings.bot.common.options.region.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -6,10 +6,10 @@ export function addTankChoices(option: SlashCommandStringOption) {
|
||||
const { strings } = translator(Locale.EnglishUS);
|
||||
|
||||
return option
|
||||
.setName(strings.bot.common.options.tank.$)
|
||||
.setName(strings.bot.common.options.tank.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.tank.$,
|
||||
(strings) => strings.bot.common.options.tank.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -13,10 +13,10 @@ export function addTierChoices(option: SlashCommandStringOption) {
|
||||
const { strings } = translator(Locale.EnglishUS);
|
||||
|
||||
return option
|
||||
.setName(strings.bot.common.options.tier.$)
|
||||
.setName(strings.bot.common.options.tier.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.tier.$,
|
||||
(strings) => strings.bot.common.options.tier.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -6,10 +6,10 @@ export function addUsernameChoices(option: SlashCommandStringOption) {
|
||||
const { strings } = translator(Locale.EnglishUS);
|
||||
|
||||
return option
|
||||
.setName(strings.bot.common.options.username.$)
|
||||
.setName(strings.bot.common.options.username.name)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.common.options.username.$,
|
||||
(strings) => strings.bot.common.options.username.name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
|
||||
@@ -35,8 +35,8 @@ export async function autocompleteTanks(
|
||||
{
|
||||
keys: [
|
||||
...SUPPORTED_LOCALES.map((locale) => [
|
||||
`searchableName.${locale}`,
|
||||
`searchableNameDeburr.${locale}`,
|
||||
`searchableName.{locale}`,
|
||||
`searchableNameDeburr.{locale}`,
|
||||
]).flat(),
|
||||
'camouflages',
|
||||
],
|
||||
|
||||
@@ -33,7 +33,7 @@ export function createLocalizedCommand(
|
||||
.setName(command)
|
||||
.setNameLocalizations(
|
||||
localizationObject(
|
||||
(strings) => strings.bot.commands[commandPathItem].$,
|
||||
(strings) => strings.bot.commands[commandPathItem].name,
|
||||
undefined,
|
||||
true,
|
||||
),
|
||||
@@ -52,9 +52,9 @@ export function createLocalizedCommand(
|
||||
(strings) =>
|
||||
(
|
||||
strings.bot.commands[commandPathItem] as unknown as {
|
||||
subcommands: Record<string, { $: string }>;
|
||||
subcommands: Record<string, { name: string }>;
|
||||
}
|
||||
).subcommands[subItem.subcommand].$,
|
||||
).subcommands[subItem.subcommand].name,
|
||||
undefined,
|
||||
true,
|
||||
);
|
||||
@@ -87,9 +87,9 @@ export function createLocalizedCommand(
|
||||
(strings) =>
|
||||
(
|
||||
strings.bot.commands[commandPathItem] as unknown as {
|
||||
groups: Record<string, { $: string }>;
|
||||
groups: Record<string, { name: string }>;
|
||||
}
|
||||
).groups[subItem.group].$,
|
||||
).groups[subItem.group].name,
|
||||
undefined,
|
||||
true,
|
||||
);
|
||||
|
||||
+119
-116
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"test": {
|
||||
"$": "test",
|
||||
"default": "test",
|
||||
"long": "This is a long test string. You MUST NEVER see this in the UI. My favorite fruit is %s1 because it has the color of %s2. I like it so much that I will say its name 3 times! %s1! %s1! %s1! Once again, it's %s2, not %s3.",
|
||||
"fox": "The quick brown fox jumps over the lazy dog."
|
||||
},
|
||||
@@ -202,11 +202,11 @@
|
||||
"bot": {
|
||||
"common": {
|
||||
"errors": {
|
||||
"clan_not_found": "# Could not find clan\nCouldn't find \"%s\". Try selecting a clan from the search result.",
|
||||
"player_not_found": "# Could not find user\nI couldn't find user \"%s\". Try picking an user from the search result, typing in a valid username, or using the `/link` command.",
|
||||
"clan_not_found": "# Could not find clan\nCouldn't find \"%s1\". Try selecting a clan from the search result.",
|
||||
"player_not_found": "# Could not find user\nI couldn't find user \"%s1\". Try picking an user from the search result, typing in a valid username, or using the `/link` command.",
|
||||
"player_not_linked": "# Use `/link` to get started\nI don't know who you are but you can tell me today!",
|
||||
"tank_name_not_found": "# Tank not found\nCould not find tank by the name \"%s\".",
|
||||
"tank_id_not_found": "# Tank not found\nCould not find tank by the ID \"%s\". Try typing the name of the tank instead of a number.",
|
||||
"tank_name_not_found": "# Tank not found\nCould not find tank by the name \"%s1\".",
|
||||
"tank_id_not_found": "# Tank not found\nCould not find tank by the ID \"%s1\". Try typing the name of the tank instead of a number.",
|
||||
"no_tank_stats": "# No tank stats available\nThis player doesn't have any stats available. This may not be the player you are looking for.",
|
||||
"get_help": "Help Discord server",
|
||||
"uncaught_error": "# BlitzKit ran into an error!\nWe're so sorry about this. Feel free to [join the official Discord server](https://discord.gg/nDt7AjGJQH) to get help.",
|
||||
@@ -216,51 +216,54 @@
|
||||
},
|
||||
|
||||
"wn8": {
|
||||
"$": "WN8",
|
||||
"very_bad": "Very bad",
|
||||
"bad": "Bad",
|
||||
"below_average": "Below average",
|
||||
"average": "Average",
|
||||
"above_average": "Above average",
|
||||
"good": "Good",
|
||||
"very_good": "Very good",
|
||||
"great": "Great",
|
||||
"unicum": "Unicum",
|
||||
"super_unicum": "Super unicum"
|
||||
"name": "WN8",
|
||||
|
||||
"types": {
|
||||
"very_bad": "Very bad",
|
||||
"bad": "Bad",
|
||||
"below_average": "Below average",
|
||||
"average": "Average",
|
||||
"above_average": "Above average",
|
||||
"good": "Good",
|
||||
"very_good": "Very good",
|
||||
"great": "Great",
|
||||
"unicum": "Unicum",
|
||||
"super_unicum": "Super unicum"
|
||||
}
|
||||
},
|
||||
|
||||
"subcommands": {
|
||||
"today": {
|
||||
"$": "today",
|
||||
"name": "today",
|
||||
"description": "Today"
|
||||
},
|
||||
"30": {
|
||||
"$": "30",
|
||||
"name": "30",
|
||||
"description": "30 days"
|
||||
},
|
||||
"60": {
|
||||
"$": "60",
|
||||
"name": "60",
|
||||
"description": "60 days"
|
||||
},
|
||||
"90": {
|
||||
"$": "90",
|
||||
"name": "90",
|
||||
"description": "90 days"
|
||||
},
|
||||
"career": {
|
||||
"$": "career",
|
||||
"name": "career",
|
||||
"description": "Career"
|
||||
},
|
||||
"custom": {
|
||||
"$": "custom",
|
||||
"name": "custom",
|
||||
"description": "Custom range",
|
||||
|
||||
"options": {
|
||||
"start": {
|
||||
"$": "start",
|
||||
"name": "start",
|
||||
"description": "Start in number of days ago from today"
|
||||
},
|
||||
"end": {
|
||||
"$": "end",
|
||||
"name": "end",
|
||||
"description": "End in number of days ago from today"
|
||||
}
|
||||
}
|
||||
@@ -269,46 +272,46 @@
|
||||
|
||||
"options": {
|
||||
"clan": {
|
||||
"$": "clan",
|
||||
"name": "clan",
|
||||
"description": "The clan name or tag"
|
||||
},
|
||||
|
||||
"tank": {
|
||||
"$": "tank",
|
||||
"name": "tank",
|
||||
"description": "The tank to get stats for"
|
||||
},
|
||||
|
||||
"username": {
|
||||
"$": "username",
|
||||
"name": "username",
|
||||
"description": "The Blitz username of the player"
|
||||
},
|
||||
|
||||
"filters": {
|
||||
"nation": {
|
||||
"$": "nation",
|
||||
"name": "nation",
|
||||
"description": "Nation"
|
||||
},
|
||||
"class": {
|
||||
"$": "class",
|
||||
"name": "class",
|
||||
"description": "Class"
|
||||
},
|
||||
"type": {
|
||||
"$": "type",
|
||||
"name": "type",
|
||||
"description": "Type"
|
||||
}
|
||||
},
|
||||
|
||||
"region": {
|
||||
"$": "region",
|
||||
"name": "region",
|
||||
"description": "Region"
|
||||
},
|
||||
|
||||
"tier": {
|
||||
"$": "tier",
|
||||
"name": "tier",
|
||||
"description": "Tier",
|
||||
|
||||
"choices": {
|
||||
"tier": "Tier %s - %s"
|
||||
"tier": "Tier %s1 - %s2"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -316,13 +319,13 @@
|
||||
"periods": {
|
||||
"career": "Career",
|
||||
"today": "Today",
|
||||
"days": "%s days",
|
||||
"custom": "%s - %s days"
|
||||
"days": "%s1 days",
|
||||
"custom": "%s1 - %s2 days"
|
||||
},
|
||||
|
||||
"filters": {
|
||||
"none": "No filters",
|
||||
"tier": "Tier %s"
|
||||
"tier": "Tier %s1"
|
||||
},
|
||||
|
||||
"no_data": {
|
||||
@@ -350,14 +353,14 @@
|
||||
|
||||
"commands": {
|
||||
"auction": {
|
||||
"$": "auction",
|
||||
"name": "auction",
|
||||
"description": "Tanks available right now in the auction",
|
||||
|
||||
"body": {
|
||||
"title": "Blitz Auction",
|
||||
"subtitle": "%s available • next prices %s\nBid now: %s",
|
||||
"next": "Next price: %s",
|
||||
"available": "Available: %s / %s"
|
||||
"subtitle": "%s1 available • next prices %s2\nBid now: %s3",
|
||||
"next": "Next price: %s1",
|
||||
"available": "Available: %s1 / %s2"
|
||||
},
|
||||
"errors": {
|
||||
"no_auction": "# No ongoing auction\n\nCurrently, there are no tanks available for purchase in the auction. If you think this is an error, please report this discrepancy in [the official Discord Server](https://discord.gg/nDt7AjGJQH)."
|
||||
@@ -368,21 +371,21 @@
|
||||
},
|
||||
|
||||
"replay": {
|
||||
"$": "replay",
|
||||
"name": "replay",
|
||||
"description": "Display replay results"
|
||||
},
|
||||
|
||||
"research": {
|
||||
"$": "research",
|
||||
"name": "research",
|
||||
"description": "Lists the expenses in researching a line",
|
||||
|
||||
"options": {
|
||||
"target_tank": {
|
||||
"$": "target-tank",
|
||||
"name": "target-tank",
|
||||
"description": "The final tank to research in the line"
|
||||
},
|
||||
"starting_tank": {
|
||||
"$": "starting-tank",
|
||||
"name": "starting-tank",
|
||||
"description": "The starting tank in the line (inferred automatically if not provided)"
|
||||
}
|
||||
},
|
||||
@@ -390,57 +393,57 @@
|
||||
"body": {
|
||||
"subtitle": "Research",
|
||||
"total": "Total",
|
||||
"research": "Research: %s",
|
||||
"upgrades": "Upgrades: %s",
|
||||
"purchase": "Purchase: %s",
|
||||
"equipment": "Equipment: %s",
|
||||
"research": "Research: %s1",
|
||||
"upgrades": "Upgrades: %s1",
|
||||
"purchase": "Purchase: %s1",
|
||||
"equipment": "Equipment: %s1",
|
||||
"estimation": "# This is an estimation!\n\nThis list may include already researched tanks because of the inaccurate information Wargaming provides. Try providing a `starting-tank` from the line when using the command if you can."
|
||||
},
|
||||
|
||||
"errors": {
|
||||
"non_tech_tree": "# %s is not on the tech tree\n\nYou cannot research a premium/collector tank.",
|
||||
"tier_1": "# %s is a tier I\n\nTier I tanks are always unlocked for free for all players.",
|
||||
"already_researched": "# %s is already researched\n\nTry providing a `starting-tank` when using the command to view the totals for a line you have already researched.",
|
||||
"start_end_equal": "# %s was provided twice\n\nMake sure `starting-tank` and `target-tank` are different.",
|
||||
"tanks_not_on_line": "# %s and %s are not on the same line\n\nMake sure `starting-tank` and `target-tank` are on the same tech-tree line.",
|
||||
"unordered": "# %s higher tiered to %s\n\nMake sure to provide %s as the `starting-tank` instead as it is the lower tiered tank."
|
||||
"non_tech_tree": "# %s1 is not on the tech tree\n\nYou cannot research a premium/collector tank.",
|
||||
"tier_1": "# %s1 is a tier I\n\nTier I tanks are always unlocked for free for all players.",
|
||||
"already_researched": "# %s1 is already researched\n\nTry providing a `starting-tank` when using the command to view the totals for a line you have already researched.",
|
||||
"start_end_equal": "# %s1 was provided twice\n\nMake sure `starting-tank` and `target-tank` are different.",
|
||||
"tanks_not_on_line": "# %s1 and %s2 are not on the same line\n\nMake sure `starting-tank` and `target-tank` are on the same tech-tree line.",
|
||||
"unordered": "# %s1 higher tiered to %s2\n\nMake sure to provide %s3 as the `starting-tank` instead as it is the lower tiered tank."
|
||||
}
|
||||
},
|
||||
|
||||
"about": {
|
||||
"$": "about",
|
||||
"name": "about",
|
||||
"description": "All the info you need about the bot",
|
||||
"subcommands": {
|
||||
"commands": {
|
||||
"$": "commands",
|
||||
"name": "commands",
|
||||
"description": "List of all commands and their descriptions",
|
||||
"body": "# Commands\n\nBlitzKit offers the following commands:\n\n"
|
||||
},
|
||||
"embeds": {
|
||||
"$": "embeds",
|
||||
"name": "embeds",
|
||||
"description": "How embeds work"
|
||||
},
|
||||
"introduction": {
|
||||
"$": "introduction",
|
||||
"name": "introduction",
|
||||
"description": "About the bot"
|
||||
},
|
||||
"invite": {
|
||||
"$": "invite",
|
||||
"name": "invite",
|
||||
"description": "How to invite the bot"
|
||||
},
|
||||
"timezones": {
|
||||
"$": "timezones",
|
||||
"name": "timezones",
|
||||
"description": "How BlitzKit infers and uses your timezone"
|
||||
},
|
||||
"credits": {
|
||||
"$": "credits",
|
||||
"name": "credits",
|
||||
"description": "People who have helped BlitzKit"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"breakdown": {
|
||||
"$": "breakdown",
|
||||
"name": "breakdown",
|
||||
"description": "A period's breakdown by tanks played",
|
||||
|
||||
"body": {
|
||||
@@ -449,19 +452,19 @@
|
||||
"wn8": "WN8",
|
||||
"winrate": "Winrate",
|
||||
"damage": "Damage",
|
||||
"unknown_tank": "Unknown tank %s"
|
||||
"unknown_tank": "Unknown tank %s1"
|
||||
}
|
||||
},
|
||||
|
||||
"debug": {
|
||||
"$": "debug",
|
||||
"name": "debug",
|
||||
"description": "Debug information about the bot",
|
||||
|
||||
"body": {
|
||||
"title": "# Debug\n\n",
|
||||
"version": "Version",
|
||||
"shard": {
|
||||
"$": "Shard",
|
||||
"label": "Shard",
|
||||
"default": "default"
|
||||
},
|
||||
"uptime": "Uptime"
|
||||
@@ -469,66 +472,66 @@
|
||||
},
|
||||
|
||||
"evolution": {
|
||||
"$": "evolution",
|
||||
"name": "evolution",
|
||||
"description": "Evolution of statistics",
|
||||
|
||||
"groups": {
|
||||
"player": {
|
||||
"$": "player",
|
||||
"name": "player",
|
||||
"description": "Player statistics"
|
||||
},
|
||||
|
||||
"tank": {
|
||||
"$": "tank",
|
||||
"name": "tank",
|
||||
"description": "Tank statistics"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"inactive": {
|
||||
"$": "inactive",
|
||||
"name": "inactive",
|
||||
"description": "Lists all inactive players in a clan above a threshold",
|
||||
|
||||
"options": {
|
||||
"threshold": {
|
||||
"$": "threshold",
|
||||
"description": "The number of days inactive (default: %s days)"
|
||||
"name": "threshold",
|
||||
"description": "The number of days inactive (default: %s1 days)"
|
||||
}
|
||||
},
|
||||
|
||||
"body": {
|
||||
"subtitle": "Inactive for %s+ days",
|
||||
"listing": "%s days"
|
||||
"subtitle": "Inactive for %s1+ days",
|
||||
"listing": "%s1 days"
|
||||
}
|
||||
},
|
||||
|
||||
"full_stats": {
|
||||
"$": "full-stats",
|
||||
"name": "full-stats",
|
||||
"description": "Full in-game statistics",
|
||||
|
||||
"body": {
|
||||
"cards": {
|
||||
"games": {
|
||||
"$": "Games",
|
||||
"title": "Games",
|
||||
"winrate": "Winrate",
|
||||
"battles": "Battles",
|
||||
"wins_losses": "Wins / losses"
|
||||
},
|
||||
"efficiency": {
|
||||
"$": "Efficiency",
|
||||
"title": "Efficiency",
|
||||
"wn8": "WN8",
|
||||
"survival": "Survival",
|
||||
"accuracy": "Accuracy"
|
||||
},
|
||||
"lethality": {
|
||||
"$": "Lethality",
|
||||
"title": "Lethality",
|
||||
"average_damage": "Average damage",
|
||||
"damage_per_tier": "Damage per tier",
|
||||
"damage_ratio": "Damage ratio",
|
||||
"average_kills": "Average kills"
|
||||
},
|
||||
"miscellaneous": {
|
||||
"$": "Miscellaneous",
|
||||
"title": "Miscellaneous",
|
||||
"average_tier": "Average tier",
|
||||
"average_spots": "Average spots",
|
||||
"average_xp": "Average XP",
|
||||
@@ -539,13 +542,13 @@
|
||||
},
|
||||
|
||||
"link": {
|
||||
"$": "link",
|
||||
"name": "link",
|
||||
"description": "Links your Blitz and Discord account",
|
||||
|
||||
"body": {
|
||||
"accounts_linked": "Accounts linked",
|
||||
"no_role_permissions": {
|
||||
"$": "%s failed to verify",
|
||||
"title": "%s1 failed to verify",
|
||||
"description": "I don't have the permission to manage roles."
|
||||
}
|
||||
},
|
||||
@@ -557,111 +560,111 @@
|
||||
},
|
||||
|
||||
"search_clans": {
|
||||
"$": "search-clans",
|
||||
"name": "search-clans",
|
||||
"description": "Search clans",
|
||||
|
||||
"options": {
|
||||
"limit": {
|
||||
"$": "limit",
|
||||
"description": "The max number of clan results (default: %s)"
|
||||
"name": "limit",
|
||||
"description": "The max number of clan results (default: %s1)"
|
||||
}
|
||||
},
|
||||
|
||||
"body": {
|
||||
"title": "Clan search for %s in region %s",
|
||||
"title": "Clan search for %s1 in region %s2",
|
||||
"no_results": "No clans found"
|
||||
}
|
||||
},
|
||||
|
||||
"search_players": {
|
||||
"$": "search-players",
|
||||
"name": "search-players",
|
||||
"description": "Search players",
|
||||
|
||||
"options": {
|
||||
"limit": {
|
||||
"$": "limit",
|
||||
"description": "The max number of player results (default: %s)"
|
||||
"name": "limit",
|
||||
"description": "The max number of player results (default: %s1)"
|
||||
}
|
||||
},
|
||||
|
||||
"body": {
|
||||
"title": "Player search for %s in region %s",
|
||||
"title": "Player search for %s1 in region %s2",
|
||||
"no_results": "No players found"
|
||||
}
|
||||
},
|
||||
|
||||
"rating_leaderboard": {
|
||||
"$": "rating-leaderboard",
|
||||
"name": "rating-leaderboard",
|
||||
"description": "Rating battles statistics",
|
||||
|
||||
"subcommands": {
|
||||
"neighbors": {
|
||||
"$": "neighbors",
|
||||
"name": "neighbors",
|
||||
"description": "Neighboring players on the leaderboard"
|
||||
},
|
||||
|
||||
"league": {
|
||||
"$": "league",
|
||||
"name": "league",
|
||||
"description": "Top players of a league"
|
||||
}
|
||||
},
|
||||
|
||||
"options": {
|
||||
"limit": {
|
||||
"$": "limit",
|
||||
"description": "How many neighbors to display (default: %s)"
|
||||
"name": "limit",
|
||||
"description": "How many neighbors to display (default: %s1)"
|
||||
},
|
||||
|
||||
"season": {
|
||||
"$": "season",
|
||||
"name": "season",
|
||||
"description": "Season number (default: current)",
|
||||
|
||||
"choices": {
|
||||
"current": "%s (current)"
|
||||
"current": "%s1 (current)"
|
||||
}
|
||||
},
|
||||
|
||||
"league": {
|
||||
"$": "league",
|
||||
"name": "league",
|
||||
"description": "The league to display"
|
||||
}
|
||||
},
|
||||
|
||||
"body": {
|
||||
"top_players": "Top %s players",
|
||||
"no_participation": "# %s didn't play rating in season %s\n\nThis player did not participate in this season or did not get past calibration.",
|
||||
"top_players": "Top %s1 players",
|
||||
"no_participation": "# %s1 didn't play rating in season %s2\n\nThis player did not participate in this season or did not get past calibration.",
|
||||
"no_ongoing_season": "# No ongoing season\n\nThere isn't a currently running rating season.",
|
||||
"deleted_player": "Deleted %s",
|
||||
"deleted_player": "Deleted %s1",
|
||||
"neighbors": "Rating neighbors",
|
||||
"more": "+ %s more"
|
||||
"more": "+ %s1 more"
|
||||
}
|
||||
},
|
||||
|
||||
"today": {
|
||||
"$": "today",
|
||||
"name": "today",
|
||||
"description": "Today's played tanks and statistics"
|
||||
},
|
||||
|
||||
"stats": {
|
||||
"$": "stats",
|
||||
"name": "stats",
|
||||
"description": "Quick statistics for a period"
|
||||
},
|
||||
|
||||
"owned_tanks": {
|
||||
"$": "owned-tanks",
|
||||
"name": "owned-tanks",
|
||||
"description": "Shows all own tanks in a tier",
|
||||
|
||||
"body": {
|
||||
"title": "# %s's owned tier %s tanks\n\n"
|
||||
"title": "# %s1's owned tier %s2 tanks\n\n"
|
||||
}
|
||||
},
|
||||
|
||||
"permissions": {
|
||||
"$": "permissions",
|
||||
"name": "permissions",
|
||||
"description": "Checks wether the bot has the required permissions to function",
|
||||
|
||||
"body": {
|
||||
"title": "# Permissions\n\n%s",
|
||||
"title": "# Permissions\n\n%s1",
|
||||
"view_channels": "View channels: needed to find the message the refresh button was used on",
|
||||
"read_message_history": "Read message history: needed to find the message to refresh",
|
||||
"attach_files": "Attach files: needed to add images to image-based commands",
|
||||
@@ -670,32 +673,32 @@
|
||||
},
|
||||
|
||||
"ping": {
|
||||
"$": "ping",
|
||||
"name": "ping",
|
||||
"description": "Check wether the bot is alive.",
|
||||
|
||||
"body": {
|
||||
"pong": "Pong 🏓",
|
||||
"pong_with_time": "Pong 🏓 - %sms"
|
||||
"pong_with_time": "Pong 🏓 - %s1ms"
|
||||
},
|
||||
|
||||
"subcommands": {
|
||||
"blitzkit": {
|
||||
"$": "blitzkit",
|
||||
"name": "blitzkit",
|
||||
"description": "Ping BlitzKit"
|
||||
},
|
||||
"wotb": {
|
||||
"$": "wotb",
|
||||
"name": "wotb",
|
||||
"description": "Ping World of Tanks Blitz"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"player_info": {
|
||||
"$": "player-info",
|
||||
"name": "player-info",
|
||||
"description": "Basic information about a player",
|
||||
|
||||
"body": {
|
||||
"title": "%s's information",
|
||||
"title": "%s1's information",
|
||||
"nickname": "Nickname",
|
||||
"battles": "Battles",
|
||||
"winrate": "Winrate",
|
||||
@@ -706,16 +709,16 @@
|
||||
},
|
||||
|
||||
"rating": {
|
||||
"$": "rating",
|
||||
"name": "rating",
|
||||
"description": "Rating player's statistics",
|
||||
|
||||
"subcommands": {
|
||||
"today": {
|
||||
"$": "today",
|
||||
"name": "today",
|
||||
"description": "Today's rating statistics"
|
||||
},
|
||||
"season": {
|
||||
"$": "season",
|
||||
"name": "season",
|
||||
"description": "This season's rating statistics"
|
||||
}
|
||||
},
|
||||
@@ -728,7 +731,7 @@
|
||||
},
|
||||
|
||||
"errors": {
|
||||
"no_participation": "# %s hasn't played rating\n\nThis player hasn't participated in the rating gamemode this season.",
|
||||
"no_participation": "# %s1 hasn't played rating\n\nThis player hasn't participated in the rating gamemode this season.",
|
||||
"unrecorded_stats": "# Statistics currently unavailable\n\nWargaming may be currently be facing server downtime. If there is an on-going season, statistics should be available withing 24 hours."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user