fix: filters

This commit is contained in:
tresabhi committed 2024-11-20 10:21:17 -06:00
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;
+25 -102
View File
@@ -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));