mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 02:37:05 +02:00
fix: filters
This commit is contained in:
1 parent
4a7927b300
commit
8089a5eaa6
6 files changed
+52
-147
No files matched your search
@@ -1,4 +1,4 @@
|
||||
import { TankClass, TankType, Tier } from '@blitzkit/core';
|
||||
import { TankClass, TankType } from '@blitzkit/core';
|
||||
import { SupplementaryStats } from '@blitzkit/core/src/blitz/getAccountInfo';
|
||||
import { calculateWN8 } from '@blitzkit/core/src/statistics/calculateWN8';
|
||||
import { BlitzStats } from '@blitzkit/core/src/statistics/compositeStats';
|
||||
@@ -8,7 +8,7 @@ import { blitzStarsTankAverages } from './tankAverages';
|
||||
|
||||
export interface StatFilters {
|
||||
nation?: string;
|
||||
tier?: Tier;
|
||||
tier?: number;
|
||||
class?: TankClass;
|
||||
type?: TankType;
|
||||
tank?: number;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import { TankClass, TankType } from '@blitzkit/core';
|
||||
import { ChatInputCommandInteraction } from 'discord.js';
|
||||
import { resolveTankId } from '../blitz/resolveTankId';
|
||||
import { StatFilters } from '../blitzstars/filterStats';
|
||||
@@ -6,18 +5,17 @@ import { StatFilters } from '../blitzstars/filterStats';
|
||||
export async function getFiltersFromCommand(
|
||||
interaction: ChatInputCommandInteraction,
|
||||
) {
|
||||
const nationRaw = interaction.options.getString('nation');
|
||||
const tierRaw = interaction.options.getString('tier');
|
||||
const classRaw = interaction.options.getString('class');
|
||||
const typeRaw = interaction.options.getString('type');
|
||||
const tankRaw = interaction.options.getString('tank');
|
||||
|
||||
return {
|
||||
nation: interaction.options.getString('nation') ?? undefined,
|
||||
tier: Number(interaction.options.getString('tier')),
|
||||
class:
|
||||
(Number(interaction.options.getString('class')) as
|
||||
| TankClass
|
||||
| undefined) ?? undefined,
|
||||
type:
|
||||
(Number(interaction.options.getString('type')) as TankType | undefined) ??
|
||||
undefined,
|
||||
nation: nationRaw ?? undefined,
|
||||
tier: tierRaw === null ? undefined : Number(tierRaw),
|
||||
class: classRaw === null ? undefined : Number(classRaw),
|
||||
type: typeRaw === null ? undefined : Number(typeRaw),
|
||||
tank:
|
||||
tankRaw === null
|
||||
? undefined
|
||||
|
||||
@@ -2,8 +2,6 @@ syntax = "proto2";
|
||||
|
||||
package blitzkit;
|
||||
|
||||
import "packages/core/src/protos/tank_definitions.proto";
|
||||
|
||||
message ConsumableDefinitions {
|
||||
map<uint32, Consumable> consumables = 1;
|
||||
}
|
||||
@@ -28,8 +26,8 @@ message ConsumableTankFilter {
|
||||
}
|
||||
|
||||
message ConsumableTankTierFilter {
|
||||
required Tier min = 1;
|
||||
required Tier max = 2;
|
||||
required uint32 min = 1;
|
||||
required uint32 max = 2;
|
||||
}
|
||||
|
||||
message ConsumableTankIdsFilter {
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
/* eslint-disable */
|
||||
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||
import { Tier, tierFromJSON, tierToJSON } from "./tank_definitions";
|
||||
|
||||
export const protobufPackage = "blitzkit";
|
||||
|
||||
@@ -66,8 +65,8 @@ export interface ConsumableTankFilter {
|
||||
}
|
||||
|
||||
export interface ConsumableTankTierFilter {
|
||||
min: Tier;
|
||||
max: Tier;
|
||||
min: number;
|
||||
max: number;
|
||||
}
|
||||
|
||||
export interface ConsumableTankIdsFilter {
|
||||
@@ -561,10 +560,10 @@ function createBaseConsumableTankTierFilter(): ConsumableTankTierFilter {
|
||||
export const ConsumableTankTierFilter: MessageFns<ConsumableTankTierFilter> = {
|
||||
encode(message: ConsumableTankTierFilter, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||
if (message.min !== 0) {
|
||||
writer.uint32(8).int32(message.min);
|
||||
writer.uint32(8).uint32(message.min);
|
||||
}
|
||||
if (message.max !== 0) {
|
||||
writer.uint32(16).int32(message.max);
|
||||
writer.uint32(16).uint32(message.max);
|
||||
}
|
||||
return writer;
|
||||
},
|
||||
@@ -581,7 +580,7 @@ export const ConsumableTankTierFilter: MessageFns<ConsumableTankTierFilter> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.min = reader.int32() as any;
|
||||
message.min = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
case 2: {
|
||||
@@ -589,7 +588,7 @@ export const ConsumableTankTierFilter: MessageFns<ConsumableTankTierFilter> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.max = reader.int32() as any;
|
||||
message.max = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -603,18 +602,18 @@ export const ConsumableTankTierFilter: MessageFns<ConsumableTankTierFilter> = {
|
||||
|
||||
fromJSON(object: any): ConsumableTankTierFilter {
|
||||
return {
|
||||
min: tierFromJSON(assertSet("ConsumableTankTierFilter.min", object.min)),
|
||||
max: tierFromJSON(assertSet("ConsumableTankTierFilter.max", object.max)),
|
||||
min: globalThis.Number(assertSet("ConsumableTankTierFilter.min", object.min)),
|
||||
max: globalThis.Number(assertSet("ConsumableTankTierFilter.max", object.max)),
|
||||
};
|
||||
},
|
||||
|
||||
toJSON(message: ConsumableTankTierFilter): unknown {
|
||||
const obj: any = {};
|
||||
if (message.min !== 0) {
|
||||
obj.min = tierToJSON(message.min);
|
||||
obj.min = Math.round(message.min);
|
||||
}
|
||||
if (message.max !== 0) {
|
||||
obj.max = tierToJSON(message.max);
|
||||
obj.max = Math.round(message.max);
|
||||
}
|
||||
return obj;
|
||||
},
|
||||
|
||||
@@ -22,7 +22,7 @@ message TankDefinition {
|
||||
required TankType type = 13;
|
||||
required uint32 max_consumables = 14;
|
||||
required uint32 max_provisions = 15;
|
||||
required Tier tier = 16;
|
||||
required uint32 tier = 16;
|
||||
required TankClass class = 17;
|
||||
required bool testing = 18;
|
||||
required bool deprecated = 19;
|
||||
@@ -64,7 +64,7 @@ message TankPrice {
|
||||
|
||||
message TrackDefinition {
|
||||
required uint32 id = 1;
|
||||
required Tier tier = 2;
|
||||
required uint32 tier = 2;
|
||||
required string name = 3;
|
||||
required uint32 weight = 4;
|
||||
required float traverse_speed = 5;
|
||||
@@ -81,7 +81,7 @@ message EngineDefinition {
|
||||
required uint32 id = 1;
|
||||
required string name = 2;
|
||||
optional ResearchCost research_cost = 3;
|
||||
required Tier tier = 4;
|
||||
required uint32 tier = 4;
|
||||
required float fire_chance = 5;
|
||||
required uint32 power = 6;
|
||||
required uint32 weight = 7;
|
||||
@@ -95,7 +95,7 @@ message TurretDefinition {
|
||||
required float traverse_speed = 4;
|
||||
optional ResearchCost research_cost = 5;
|
||||
required string name = 6;
|
||||
required Tier tier = 7;
|
||||
required uint32 tier = 7;
|
||||
required uint32 weight = 8;
|
||||
repeated GunDefinition guns = 9;
|
||||
repeated Unlock unlocks = 10;
|
||||
@@ -146,7 +146,7 @@ message GunDefinitionBase {
|
||||
optional ResearchCost research_cost = 3;
|
||||
required uint32 weight = 4;
|
||||
required string name = 5;
|
||||
required Tier tier = 6;
|
||||
required uint32 tier = 6;
|
||||
repeated ShellDefinition shells = 7;
|
||||
required float camouflage_loss = 8;
|
||||
required float aim_time = 9;
|
||||
@@ -212,19 +212,6 @@ enum TankClass {
|
||||
TANK_CLASS_TANK_DESTROYER = 3;
|
||||
}
|
||||
|
||||
enum Tier {
|
||||
TIER_I = 0;
|
||||
TIER_II = 1;
|
||||
TIER_III = 2;
|
||||
TIER_IV = 3;
|
||||
TIER_V = 4;
|
||||
TIER_VI = 5;
|
||||
TIER_VII = 6;
|
||||
TIER_VIII = 7;
|
||||
TIER_IX = 8;
|
||||
TIER_X = 9;
|
||||
}
|
||||
|
||||
enum TankType {
|
||||
TANK_TYPE_RESEARCHABLE = 0;
|
||||
TANK_TYPE_PREMIUM = 1;
|
||||
|
||||
@@ -167,83 +167,6 @@ export function tankClassToJSON(object: TankClass): string {
|
||||
}
|
||||
}
|
||||
|
||||
export enum Tier {
|
||||
I = 0,
|
||||
II = 1,
|
||||
III = 2,
|
||||
IV = 3,
|
||||
V = 4,
|
||||
VI = 5,
|
||||
VII = 6,
|
||||
VIII = 7,
|
||||
IX = 8,
|
||||
X = 9,
|
||||
}
|
||||
|
||||
export function tierFromJSON(object: any): Tier {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "TIER_I":
|
||||
return Tier.I;
|
||||
case 1:
|
||||
case "TIER_II":
|
||||
return Tier.II;
|
||||
case 2:
|
||||
case "TIER_III":
|
||||
return Tier.III;
|
||||
case 3:
|
||||
case "TIER_IV":
|
||||
return Tier.IV;
|
||||
case 4:
|
||||
case "TIER_V":
|
||||
return Tier.V;
|
||||
case 5:
|
||||
case "TIER_VI":
|
||||
return Tier.VI;
|
||||
case 6:
|
||||
case "TIER_VII":
|
||||
return Tier.VII;
|
||||
case 7:
|
||||
case "TIER_VIII":
|
||||
return Tier.VIII;
|
||||
case 8:
|
||||
case "TIER_IX":
|
||||
return Tier.IX;
|
||||
case 9:
|
||||
case "TIER_X":
|
||||
return Tier.X;
|
||||
default:
|
||||
throw new globalThis.Error("Unrecognized enum value " + object + " for enum Tier");
|
||||
}
|
||||
}
|
||||
|
||||
export function tierToJSON(object: Tier): string {
|
||||
switch (object) {
|
||||
case Tier.I:
|
||||
return "TIER_I";
|
||||
case Tier.II:
|
||||
return "TIER_II";
|
||||
case Tier.III:
|
||||
return "TIER_III";
|
||||
case Tier.IV:
|
||||
return "TIER_IV";
|
||||
case Tier.V:
|
||||
return "TIER_V";
|
||||
case Tier.VI:
|
||||
return "TIER_VI";
|
||||
case Tier.VII:
|
||||
return "TIER_VII";
|
||||
case Tier.VIII:
|
||||
return "TIER_VIII";
|
||||
case Tier.IX:
|
||||
return "TIER_IX";
|
||||
case Tier.X:
|
||||
return "TIER_X";
|
||||
default:
|
||||
throw new globalThis.Error("Unrecognized enum value " + object + " for enum Tier");
|
||||
}
|
||||
}
|
||||
|
||||
export enum TankType {
|
||||
RESEARCHABLE = 0,
|
||||
PREMIUM = 1,
|
||||
@@ -351,7 +274,7 @@ export interface TankDefinition {
|
||||
type: TankType;
|
||||
max_consumables: number;
|
||||
max_provisions: number;
|
||||
tier: Tier;
|
||||
tier: number;
|
||||
class: TankClass;
|
||||
testing: boolean;
|
||||
deprecated: boolean;
|
||||
@@ -393,7 +316,7 @@ export interface TankPrice {
|
||||
|
||||
export interface TrackDefinition {
|
||||
id: number;
|
||||
tier: Tier;
|
||||
tier: number;
|
||||
name: string;
|
||||
weight: number;
|
||||
traverse_speed: number;
|
||||
@@ -410,7 +333,7 @@ export interface EngineDefinition {
|
||||
id: number;
|
||||
name: string;
|
||||
research_cost?: ResearchCost | undefined;
|
||||
tier: Tier;
|
||||
tier: number;
|
||||
fire_chance: number;
|
||||
power: number;
|
||||
weight: number;
|
||||
@@ -424,7 +347,7 @@ export interface TurretDefinition {
|
||||
traverse_speed: number;
|
||||
research_cost?: ResearchCost | undefined;
|
||||
name: string;
|
||||
tier: Tier;
|
||||
tier: number;
|
||||
weight: number;
|
||||
guns: GunDefinition[];
|
||||
unlocks: Unlock[];
|
||||
@@ -475,7 +398,7 @@ export interface GunDefinitionBase {
|
||||
research_cost?: ResearchCost | undefined;
|
||||
weight: number;
|
||||
name: string;
|
||||
tier: Tier;
|
||||
tier: number;
|
||||
shells: ShellDefinition[];
|
||||
camouflage_loss: number;
|
||||
aim_time: number;
|
||||
@@ -775,7 +698,7 @@ export const TankDefinition: MessageFns<TankDefinition> = {
|
||||
writer.uint32(120).uint32(message.max_provisions);
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
writer.uint32(128).int32(message.tier);
|
||||
writer.uint32(128).uint32(message.tier);
|
||||
}
|
||||
if (message.class !== 0) {
|
||||
writer.uint32(136).int32(message.class);
|
||||
@@ -990,7 +913,7 @@ export const TankDefinition: MessageFns<TankDefinition> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.tier = reader.int32() as any;
|
||||
message.tier = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
case 17: {
|
||||
@@ -1150,7 +1073,7 @@ export const TankDefinition: MessageFns<TankDefinition> = {
|
||||
type: tankTypeFromJSON(assertSet("TankDefinition.type", object.type)),
|
||||
max_consumables: globalThis.Number(assertSet("TankDefinition.max_consumables", object.max_consumables)),
|
||||
max_provisions: globalThis.Number(assertSet("TankDefinition.max_provisions", object.max_provisions)),
|
||||
tier: tierFromJSON(assertSet("TankDefinition.tier", object.tier)),
|
||||
tier: globalThis.Number(assertSet("TankDefinition.tier", object.tier)),
|
||||
class: tankClassFromJSON(assertSet("TankDefinition.class", object.class)),
|
||||
testing: globalThis.Boolean(assertSet("TankDefinition.testing", object.testing)),
|
||||
deprecated: globalThis.Boolean(assertSet("TankDefinition.deprecated", object.deprecated)),
|
||||
@@ -1229,7 +1152,7 @@ export const TankDefinition: MessageFns<TankDefinition> = {
|
||||
obj.max_provisions = Math.round(message.max_provisions);
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
obj.tier = tierToJSON(message.tier);
|
||||
obj.tier = Math.round(message.tier);
|
||||
}
|
||||
if (message.class !== 0) {
|
||||
obj.class = tankClassToJSON(message.class);
|
||||
@@ -1678,7 +1601,7 @@ export const TrackDefinition: MessageFns<TrackDefinition> = {
|
||||
writer.uint32(8).uint32(message.id);
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
writer.uint32(16).int32(message.tier);
|
||||
writer.uint32(16).uint32(message.tier);
|
||||
}
|
||||
if (message.name !== "") {
|
||||
writer.uint32(26).string(message.name);
|
||||
@@ -1733,7 +1656,7 @@ export const TrackDefinition: MessageFns<TrackDefinition> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.tier = reader.int32() as any;
|
||||
message.tier = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
case 3: {
|
||||
@@ -1828,7 +1751,7 @@ export const TrackDefinition: MessageFns<TrackDefinition> = {
|
||||
fromJSON(object: any): TrackDefinition {
|
||||
return {
|
||||
id: globalThis.Number(assertSet("TrackDefinition.id", object.id)),
|
||||
tier: tierFromJSON(assertSet("TrackDefinition.tier", object.tier)),
|
||||
tier: globalThis.Number(assertSet("TrackDefinition.tier", object.tier)),
|
||||
name: globalThis.String(assertSet("TrackDefinition.name", object.name)),
|
||||
weight: globalThis.Number(assertSet("TrackDefinition.weight", object.weight)),
|
||||
traverse_speed: globalThis.Number(assertSet("TrackDefinition.traverse_speed", object.traverse_speed)),
|
||||
@@ -1850,7 +1773,7 @@ export const TrackDefinition: MessageFns<TrackDefinition> = {
|
||||
obj.id = Math.round(message.id);
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
obj.tier = tierToJSON(message.tier);
|
||||
obj.tier = Math.round(message.tier);
|
||||
}
|
||||
if (message.name !== "") {
|
||||
obj.name = message.name;
|
||||
@@ -1924,7 +1847,7 @@ export const EngineDefinition: MessageFns<EngineDefinition> = {
|
||||
ResearchCost.encode(message.research_cost, writer.uint32(26).fork()).join();
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
writer.uint32(32).int32(message.tier);
|
||||
writer.uint32(32).uint32(message.tier);
|
||||
}
|
||||
if (message.fire_chance !== 0) {
|
||||
writer.uint32(45).float(message.fire_chance);
|
||||
@@ -1977,7 +1900,7 @@ export const EngineDefinition: MessageFns<EngineDefinition> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.tier = reader.int32() as any;
|
||||
message.tier = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
case 5: {
|
||||
@@ -2026,7 +1949,7 @@ export const EngineDefinition: MessageFns<EngineDefinition> = {
|
||||
id: globalThis.Number(assertSet("EngineDefinition.id", object.id)),
|
||||
name: globalThis.String(assertSet("EngineDefinition.name", object.name)),
|
||||
research_cost: isSet(object.research_cost) ? ResearchCost.fromJSON(object.research_cost) : undefined,
|
||||
tier: tierFromJSON(assertSet("EngineDefinition.tier", object.tier)),
|
||||
tier: globalThis.Number(assertSet("EngineDefinition.tier", object.tier)),
|
||||
fire_chance: globalThis.Number(assertSet("EngineDefinition.fire_chance", object.fire_chance)),
|
||||
power: globalThis.Number(assertSet("EngineDefinition.power", object.power)),
|
||||
weight: globalThis.Number(assertSet("EngineDefinition.weight", object.weight)),
|
||||
@@ -2046,7 +1969,7 @@ export const EngineDefinition: MessageFns<EngineDefinition> = {
|
||||
obj.research_cost = ResearchCost.toJSON(message.research_cost);
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
obj.tier = tierToJSON(message.tier);
|
||||
obj.tier = Math.round(message.tier);
|
||||
}
|
||||
if (message.fire_chance !== 0) {
|
||||
obj.fire_chance = message.fire_chance;
|
||||
@@ -2118,7 +2041,7 @@ export const TurretDefinition: MessageFns<TurretDefinition> = {
|
||||
writer.uint32(50).string(message.name);
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
writer.uint32(56).int32(message.tier);
|
||||
writer.uint32(56).uint32(message.tier);
|
||||
}
|
||||
if (message.weight !== 0) {
|
||||
writer.uint32(64).uint32(message.weight);
|
||||
@@ -2192,7 +2115,7 @@ export const TurretDefinition: MessageFns<TurretDefinition> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.tier = reader.int32() as any;
|
||||
message.tier = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
case 8: {
|
||||
@@ -2236,7 +2159,7 @@ export const TurretDefinition: MessageFns<TurretDefinition> = {
|
||||
traverse_speed: globalThis.Number(assertSet("TurretDefinition.traverse_speed", object.traverse_speed)),
|
||||
research_cost: isSet(object.research_cost) ? ResearchCost.fromJSON(object.research_cost) : undefined,
|
||||
name: globalThis.String(assertSet("TurretDefinition.name", object.name)),
|
||||
tier: tierFromJSON(assertSet("TurretDefinition.tier", object.tier)),
|
||||
tier: globalThis.Number(assertSet("TurretDefinition.tier", object.tier)),
|
||||
weight: globalThis.Number(assertSet("TurretDefinition.weight", object.weight)),
|
||||
guns: globalThis.Array.isArray(object?.guns) ? object.guns.map((e: any) => GunDefinition.fromJSON(e)) : [],
|
||||
unlocks: globalThis.Array.isArray(object?.unlocks) ? object.unlocks.map((e: any) => Unlock.fromJSON(e)) : [],
|
||||
@@ -2264,7 +2187,7 @@ export const TurretDefinition: MessageFns<TurretDefinition> = {
|
||||
obj.name = message.name;
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
obj.tier = tierToJSON(message.tier);
|
||||
obj.tier = Math.round(message.tier);
|
||||
}
|
||||
if (message.weight !== 0) {
|
||||
obj.weight = Math.round(message.weight);
|
||||
@@ -2967,7 +2890,7 @@ export const GunDefinitionBase: MessageFns<GunDefinitionBase> = {
|
||||
writer.uint32(42).string(message.name);
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
writer.uint32(48).int32(message.tier);
|
||||
writer.uint32(48).uint32(message.tier);
|
||||
}
|
||||
for (const v of message.shells) {
|
||||
ShellDefinition.encode(v!, writer.uint32(58).fork()).join();
|
||||
@@ -3051,7 +2974,7 @@ export const GunDefinitionBase: MessageFns<GunDefinitionBase> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.tier = reader.int32() as any;
|
||||
message.tier = reader.uint32();
|
||||
continue;
|
||||
}
|
||||
case 7: {
|
||||
@@ -3142,7 +3065,7 @@ export const GunDefinitionBase: MessageFns<GunDefinitionBase> = {
|
||||
research_cost: isSet(object.research_cost) ? ResearchCost.fromJSON(object.research_cost) : undefined,
|
||||
weight: globalThis.Number(assertSet("GunDefinitionBase.weight", object.weight)),
|
||||
name: globalThis.String(assertSet("GunDefinitionBase.name", object.name)),
|
||||
tier: tierFromJSON(assertSet("GunDefinitionBase.tier", object.tier)),
|
||||
tier: globalThis.Number(assertSet("GunDefinitionBase.tier", object.tier)),
|
||||
shells: globalThis.Array.isArray(object?.shells)
|
||||
? object.shells.map((e: any) => ShellDefinition.fromJSON(e))
|
||||
: [],
|
||||
@@ -3179,7 +3102,7 @@ export const GunDefinitionBase: MessageFns<GunDefinitionBase> = {
|
||||
obj.name = message.name;
|
||||
}
|
||||
if (message.tier !== 0) {
|
||||
obj.tier = tierToJSON(message.tier);
|
||||
obj.tier = Math.round(message.tier);
|
||||
}
|
||||
if (message.shells?.length) {
|
||||
obj.shells = message.shells.map((e) => ShellDefinition.toJSON(e));
|
||||
|
||||
Reference in new issue
Block a user