diff --git a/packages/bot/src/core/blitzstars/filterStats.ts b/packages/bot/src/core/blitzstars/filterStats.ts index 13827832b..b2c770a2b 100644 --- a/packages/bot/src/core/blitzstars/filterStats.ts +++ b/packages/bot/src/core/blitzstars/filterStats.ts @@ -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; diff --git a/packages/bot/src/core/discord/getFiltersFromCommand.ts b/packages/bot/src/core/discord/getFiltersFromCommand.ts index 27bd33ba7..9c8ff471f 100644 --- a/packages/bot/src/core/discord/getFiltersFromCommand.ts +++ b/packages/bot/src/core/discord/getFiltersFromCommand.ts @@ -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 diff --git a/packages/core/src/protos/consumable_definitions.proto b/packages/core/src/protos/consumable_definitions.proto index c045e65b7..7d877d942 100644 --- a/packages/core/src/protos/consumable_definitions.proto +++ b/packages/core/src/protos/consumable_definitions.proto @@ -2,8 +2,6 @@ syntax = "proto2"; package blitzkit; -import "packages/core/src/protos/tank_definitions.proto"; - message ConsumableDefinitions { map 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 { diff --git a/packages/core/src/protos/consumable_definitions.ts b/packages/core/src/protos/consumable_definitions.ts index d3e50dd9c..b1b0256ae 100644 --- a/packages/core/src/protos/consumable_definitions.ts +++ b/packages/core/src/protos/consumable_definitions.ts @@ -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 = { 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 = { break; } - message.min = reader.int32() as any; + message.min = reader.uint32(); continue; } case 2: { @@ -589,7 +588,7 @@ export const ConsumableTankTierFilter: MessageFns = { break; } - message.max = reader.int32() as any; + message.max = reader.uint32(); continue; } } @@ -603,18 +602,18 @@ export const ConsumableTankTierFilter: MessageFns = { 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; }, diff --git a/packages/core/src/protos/tank_definitions.proto b/packages/core/src/protos/tank_definitions.proto index 533495f57..af7784163 100644 --- a/packages/core/src/protos/tank_definitions.proto +++ b/packages/core/src/protos/tank_definitions.proto @@ -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; diff --git a/packages/core/src/protos/tank_definitions.ts b/packages/core/src/protos/tank_definitions.ts index 735f95a56..38eb5cac6 100644 --- a/packages/core/src/protos/tank_definitions.ts +++ b/packages/core/src/protos/tank_definitions.ts @@ -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 = { 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 = { break; } - message.tier = reader.int32() as any; + message.tier = reader.uint32(); continue; } case 17: { @@ -1150,7 +1073,7 @@ export const TankDefinition: MessageFns = { 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 = { 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 = { 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 = { break; } - message.tier = reader.int32() as any; + message.tier = reader.uint32(); continue; } case 3: { @@ -1828,7 +1751,7 @@ export const TrackDefinition: MessageFns = { 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 = { 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 = { 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 = { break; } - message.tier = reader.int32() as any; + message.tier = reader.uint32(); continue; } case 5: { @@ -2026,7 +1949,7 @@ export const EngineDefinition: MessageFns = { 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 = { 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 = { 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 = { break; } - message.tier = reader.int32() as any; + message.tier = reader.uint32(); continue; } case 8: { @@ -2236,7 +2159,7 @@ export const TurretDefinition: MessageFns = { 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 = { 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 = { 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 = { break; } - message.tier = reader.int32() as any; + message.tier = reader.uint32(); continue; } case 7: { @@ -3142,7 +3065,7 @@ export const GunDefinitionBase: MessageFns = { 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 = { 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));