From d16bb77bd0bd34bddcaf00f3a0e77f0b47daa981 Mon Sep 17 00:00:00 2001 From: Nathan S Date: Wed, 6 Dec 2023 15:43:59 +0000 Subject: [PATCH 1/3] Refactor message file structure When this change is applied, * the server message type is moved into a messages folder, and the client messages folder also exists in its own subdirectory instead of a subdirectory of server messages. * adds a NoopMessageParser which will log the received message instead of warning about an unhandled message * adds Noop handlers for NewBattle, CombatUnitsInBattleUpdated, CommunityBuffsUpdated, and MarketItemOrderBooksUpdated. --- src/MooLite/core/MooLite.ts | 56 ++++++++++++------- src/MooLite/core/MooSocket.ts | 8 +-- src/MooLite/core/leaderboard/Leaderboard.ts | 2 - .../{server => messages}/MessageParser.ts | 8 +-- .../core/messages/NoopMessageParser.ts | 8 +++ .../core/messages/client/ClientMessage.ts | 5 ++ .../core/messages/client/ClientMessageType.ts | 4 ++ .../messages/GetMarketItemOrderBooks.ts | 16 ++++++ .../client/messages}/Ping.ts | 6 +- .../core/messages/server/ServerMessage.ts | 5 ++ .../server/ServerMessageType.ts | 6 ++ .../server/messages/AbilitiesUpdated.ts | 8 +-- .../server/messages/ActionCompleted.ts | 8 +-- .../server/messages/ActionsUpdated.ts | 6 +- .../messages/ActivePlayerCountUpdated.ts | 6 +- .../server/messages/CharacterStatsUpdated.ts | 6 +- .../server/messages/ChatMessageReceived.ts | 6 +- .../server/messages/CombatTriggersUpdated.ts | 6 +- .../messages/CombatUnitsInBattleUpdated.ts | 6 ++ .../server/messages/CommunityBuffsUpdated.ts | 6 ++ .../server/messages/ConsumableSlotsUpdated.ts | 6 +- .../server/messages/EquipmentBuffsUpdated.ts | 6 +- .../{ => messages}/server/messages/Info.ts | 6 +- .../server/messages/InitCharacterInfo.ts} | 7 +-- .../server/messages/InitClientInfo.ts | 6 +- .../server/messages/ItemsUpdated.ts | 6 +- .../server/messages/LeaderboardInfoUpdated.ts | 6 +- .../server/messages/LootOpened.ts | 6 +- .../messages/MarketItemOrderBooksUpdated.ts | 6 ++ .../messages/server/messages/NewBattle.ts | 6 ++ .../{ => messages}/server/messages/Pong.ts | 6 +- src/MooLite/core/server/ServerMessage.ts | 5 -- .../server/clientmessages/ClientMessage.ts | 5 -- .../clientmessages/ClientMessageType.ts | 3 - 34 files changed, 164 insertions(+), 98 deletions(-) rename src/MooLite/core/{server => messages}/MessageParser.ts (56%) create mode 100644 src/MooLite/core/messages/NoopMessageParser.ts create mode 100644 src/MooLite/core/messages/client/ClientMessage.ts create mode 100644 src/MooLite/core/messages/client/ClientMessageType.ts create mode 100644 src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts rename src/MooLite/core/{server/clientmessages => messages/client/messages}/Ping.ts (55%) create mode 100644 src/MooLite/core/messages/server/ServerMessage.ts rename src/MooLite/core/{ => messages}/server/ServerMessageType.ts (78%) rename src/MooLite/core/{ => messages}/server/messages/AbilitiesUpdated.ts (71%) rename src/MooLite/core/{ => messages}/server/messages/ActionCompleted.ts (84%) rename src/MooLite/core/{ => messages}/server/messages/ActionsUpdated.ts (70%) rename src/MooLite/core/{ => messages}/server/messages/ActivePlayerCountUpdated.ts (68%) rename src/MooLite/core/{ => messages}/server/messages/CharacterStatsUpdated.ts (75%) rename src/MooLite/core/{ => messages}/server/messages/ChatMessageReceived.ts (87%) rename src/MooLite/core/{ => messages}/server/messages/CombatTriggersUpdated.ts (83%) create mode 100644 src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts create mode 100644 src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts rename src/MooLite/core/{ => messages}/server/messages/ConsumableSlotsUpdated.ts (79%) rename src/MooLite/core/{ => messages}/server/messages/EquipmentBuffsUpdated.ts (76%) rename src/MooLite/core/{ => messages}/server/messages/Info.ts (61%) rename src/MooLite/core/{server/messages/InitCharacterInfoParser.ts => messages/server/messages/InitCharacterInfo.ts} (93%) rename src/MooLite/core/{ => messages}/server/messages/InitClientInfo.ts (95%) rename src/MooLite/core/{ => messages}/server/messages/ItemsUpdated.ts (69%) rename src/MooLite/core/{ => messages}/server/messages/LeaderboardInfoUpdated.ts (71%) rename src/MooLite/core/{ => messages}/server/messages/LootOpened.ts (70%) create mode 100644 src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts create mode 100644 src/MooLite/core/messages/server/messages/NewBattle.ts rename src/MooLite/core/{ => messages}/server/messages/Pong.ts (63%) delete mode 100644 src/MooLite/core/server/ServerMessage.ts delete mode 100644 src/MooLite/core/server/clientmessages/ClientMessage.ts delete mode 100644 src/MooLite/core/server/clientmessages/ClientMessageType.ts diff --git a/src/MooLite/core/MooLite.ts b/src/MooLite/core/MooLite.ts index e88045c..7b51d13 100644 --- a/src/MooLite/core/MooLite.ts +++ b/src/MooLite/core/MooLite.ts @@ -1,28 +1,32 @@ import { PluginManager } from "src/MooLite/core/plugins/PluginManager"; import { MooSocket } from "src/MooLite/core/MooSocket"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; -import { ActionCompletedParser } from "src/MooLite/core/server/messages/ActionCompleted"; import { Game } from "src/MooLite/core/Game"; -import { ChatMessageReceivedParser } from "src/MooLite/core/server/messages/ChatMessageReceived"; -import { ActivePlayerCountUpdatedParser } from "src/MooLite/core/server/messages/ActivePlayerCountUpdated"; -import { ConsumableSlotsUpdatedParser } from "src/MooLite/core/server/messages/ConsumableSlotsUpdated"; -import { ActionsUpdatedParser } from "src/MooLite/core/server/messages/ActionsUpdated"; -import { InitCharacterInfoParser } from "src/MooLite/core/server/messages/InitCharacterInfoParser"; -import { InfoParser } from "src/MooLite/core/server/messages/Info"; -import { LeaderboardInfoUpdatedParser } from "src/MooLite/core/server/messages/LeaderboardInfoUpdated"; -import { PingParser } from "src/MooLite/core/server/clientmessages/Ping"; -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; -import { PongParser } from "src/MooLite/core/server/messages/Pong"; import { LocalStorage } from "src/MooLite/util/LocalStorage"; import { MooLiteSaveData } from "src/MooLite/core/MooLiteSaveData"; -import { CombatTriggersUpdatedParser } from "src/MooLite/core/server/messages/CombatTriggersUpdated"; -import { CharacterStatsUpdatedParser } from "src/MooLite/core/server/messages/CharacterStatsUpdated"; -import { EquipmentBuffsUpdatedParser } from "src/MooLite/core/server/messages/EquipmentBuffsUpdated"; -import { ItemsUpdatedParser } from "src/MooLite/core/server/messages/ItemsUpdated"; -import { LootOpenedParser } from "src/MooLite/core/server/messages/LootOpened"; -import { AbilitiesUpdatedParser } from "src/MooLite/core/server/messages/AbilitiesUpdated"; - +import { InitClientInfoParser } from "./messages/server/messages/InitClientInfo"; +import { MessageParser } from "./messages/MessageParser"; +import { ClientMessage } from "./messages/client/ClientMessage"; +import { GetMarketItemOrderBooksParser } from "./messages/client/messages/GetMarketItemOrderBooks"; +import { PingParser } from "./messages/client/messages/Ping"; +import { ServerMessage } from "./messages/server/ServerMessage"; +import { AbilitiesUpdatedParser } from "./messages/server/messages/AbilitiesUpdated"; +import { ActionCompletedParser } from "./messages/server/messages/ActionCompleted"; +import { ActionsUpdatedParser } from "./messages/server/messages/ActionsUpdated"; +import { ActivePlayerCountUpdatedParser } from "./messages/server/messages/ActivePlayerCountUpdated"; +import { CharacterStatsUpdatedParser } from "./messages/server/messages/CharacterStatsUpdated"; +import { ChatMessageReceivedParser } from "./messages/server/messages/ChatMessageReceived"; +import { CombatTriggersUpdatedParser } from "./messages/server/messages/CombatTriggersUpdated"; +import { CombatUnitsInBattleUpdatedMessageParser } from "./messages/server/messages/CombatUnitsInBattleUpdated"; +import { ConsumableSlotsUpdatedParser } from "./messages/server/messages/ConsumableSlotsUpdated"; +import { EquipmentBuffsUpdatedParser } from "./messages/server/messages/EquipmentBuffsUpdated"; +import { InfoParser } from "./messages/server/messages/Info"; +import { InitCharacterInfoParser } from "./messages/server/messages/InitCharacterInfo"; +import { ItemsUpdatedParser } from "./messages/server/messages/ItemsUpdated"; +import { LeaderboardInfoUpdatedParser } from "./messages/server/messages/LeaderboardInfoUpdated"; +import { LootOpenedParser } from "./messages/server/messages/LootOpened"; +import { MarketItemorderBooksUpdated } from "./messages/server/messages/MarketItemOrderBooksUpdated"; +import { NewBattleMessageParser } from "./messages/server/messages/NewBattle"; +import { PongParser } from "./messages/server/messages/Pong"; export class MooLite { pluginManager: PluginManager; mooSocket: MooSocket; @@ -31,6 +35,7 @@ export class MooLite { messageParsers: MessageParser[] = [ // Server messages + new InitClientInfoParser(), new InitCharacterInfoParser(), new PongParser(), @@ -41,15 +46,19 @@ export class MooLite { new ConsumableSlotsUpdatedParser(), new InfoParser(), new CombatTriggersUpdatedParser(), + new NewBattleMessageParser(), + new CombatUnitsInBattleUpdatedMessageParser(), new LeaderboardInfoUpdatedParser(), new LootOpenedParser(), new CharacterStatsUpdatedParser(), new EquipmentBuffsUpdatedParser(), new ItemsUpdatedParser(), new AbilitiesUpdatedParser(), + new MarketItemorderBooksUpdated(), // Client messages new PingParser(), + new GetMarketItemOrderBooksParser(), ]; private _interval: NodeJS.Timeout; @@ -159,13 +168,18 @@ export class MooLite { const parser = this.messageParsers.find((parser) => { return parser.canParse(message); }); + if (!parser) { if (!isClientMessage) { - console.warn(`Unhandled message type ${message.type}`); + console.warn(`Unhandled server message type: ${message.type}`); console.log(message); + } else { + console.debug(`Unhandled client message type: ${message.type}`); } + return; } + parser.apply(message, this.game); } } diff --git a/src/MooLite/core/MooSocket.ts b/src/MooLite/core/MooSocket.ts index 38a9f8a..18b319f 100644 --- a/src/MooLite/core/MooSocket.ts +++ b/src/MooLite/core/MooSocket.ts @@ -1,9 +1,9 @@ import { SimpleEventDispatcher } from "strongly-typed-events"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { InitClientInfoMessage } from "src/MooLite/core/server/messages/InitClientInfo"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; import { unsafeWindow } from "$"; +import { ServerMessage } from "./messages/server/ServerMessage"; +import { ClientMessage } from "./messages/client/ClientMessage"; +import { InitClientInfoMessage } from "./messages/server/messages/InitClientInfo"; +import { ServerMessageType } from "./messages/server/ServerMessageType"; export class MooSocket extends WebSocket { private _onServerMessage = new SimpleEventDispatcher(); diff --git a/src/MooLite/core/leaderboard/Leaderboard.ts b/src/MooLite/core/leaderboard/Leaderboard.ts index a5d76ed..4006b25 100644 --- a/src/MooLite/core/leaderboard/Leaderboard.ts +++ b/src/MooLite/core/leaderboard/Leaderboard.ts @@ -36,8 +36,6 @@ export class Leaderboard { return null; } - console.log(this.leaderboardList); - const skills: LeaderboardSkill[] = this.getSkillLeaderboards().flatMap((value) => { const playerEntry = value.data.find((entry) => entry.name.toLowerCase() === name.toLowerCase()); if (!playerEntry) { diff --git a/src/MooLite/core/server/MessageParser.ts b/src/MooLite/core/messages/MessageParser.ts similarity index 56% rename from src/MooLite/core/server/MessageParser.ts rename to src/MooLite/core/messages/MessageParser.ts index fb6f68b..3d43ea6 100644 --- a/src/MooLite/core/server/MessageParser.ts +++ b/src/MooLite/core/messages/MessageParser.ts @@ -1,8 +1,8 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; import { Game } from "src/MooLite/core/Game"; -import { ClientMessageType } from "src/MooLite/core/server/clientmessages/ClientMessageType"; -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; +import { ServerMessageType } from "./server/ServerMessageType"; +import { ClientMessage } from "./client/ClientMessage"; +import { ClientMessageType } from "./client/ClientMessageType"; +import { ServerMessage } from "./server/ServerMessage"; export abstract class MessageParser { abstract type: ServerMessageType | ClientMessageType; diff --git a/src/MooLite/core/messages/NoopMessageParser.ts b/src/MooLite/core/messages/NoopMessageParser.ts new file mode 100644 index 0000000..0222e78 --- /dev/null +++ b/src/MooLite/core/messages/NoopMessageParser.ts @@ -0,0 +1,8 @@ +import { MessageParser } from "./MessageParser"; +import { ServerMessage } from "./server/ServerMessage"; + +export abstract class NoopMessageParser extends MessageParser { + apply(message: ServerMessage): void { + console.debug(`Parsing ${this.type} message`, message); + } +} diff --git a/src/MooLite/core/messages/client/ClientMessage.ts b/src/MooLite/core/messages/client/ClientMessage.ts new file mode 100644 index 0000000..e470cc3 --- /dev/null +++ b/src/MooLite/core/messages/client/ClientMessage.ts @@ -0,0 +1,5 @@ +import { ClientMessageType } from "src/MooLite/core/server/ClientMessageType"; + +export interface ClientMessage { + type: ClientMessageType; +} diff --git a/src/MooLite/core/messages/client/ClientMessageType.ts b/src/MooLite/core/messages/client/ClientMessageType.ts new file mode 100644 index 0000000..78ddf42 --- /dev/null +++ b/src/MooLite/core/messages/client/ClientMessageType.ts @@ -0,0 +1,4 @@ +export enum ClientMessageType { + Ping = "/character_tasks/ping", + GetMarketItemOrderBooks = "/character_tasks/get_market_item_order_books", +} diff --git a/src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts b/src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts new file mode 100644 index 0000000..e8d1ea6 --- /dev/null +++ b/src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts @@ -0,0 +1,16 @@ +import { Game } from "src/MooLite/core/Game"; +import { ClientMessageType } from "../ClientMessageType"; +import { ClientMessage } from "../ClientMessage"; +import { MessageParser } from "../../MessageParser"; + +export interface GetMarketItemOrderBooksMessage extends ClientMessage { + type: ClientMessageType.GetMarketItemOrderBooks; +} + +export class GetMarketItemOrderBooksParser extends MessageParser { + type = ClientMessageType.GetMarketItemOrderBooks; + + apply(message: GetMarketItemOrderBooksMessage, game: Game): void { + console.debug(this.type, { message }); + } +} diff --git a/src/MooLite/core/server/clientmessages/Ping.ts b/src/MooLite/core/messages/client/messages/Ping.ts similarity index 55% rename from src/MooLite/core/server/clientmessages/Ping.ts rename to src/MooLite/core/messages/client/messages/Ping.ts index afa50d8..c8a5867 100644 --- a/src/MooLite/core/server/clientmessages/Ping.ts +++ b/src/MooLite/core/messages/client/messages/Ping.ts @@ -1,7 +1,7 @@ -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; -import { ClientMessageType } from "src/MooLite/core/server/clientmessages/ClientMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; +import { ClientMessageType } from "../ClientMessageType"; +import { MessageParser } from "../../MessageParser"; +import { ClientMessage } from "../ClientMessage"; export interface PingMessage extends ClientMessage { type: ClientMessageType.Ping; diff --git a/src/MooLite/core/messages/server/ServerMessage.ts b/src/MooLite/core/messages/server/ServerMessage.ts new file mode 100644 index 0000000..aad5740 --- /dev/null +++ b/src/MooLite/core/messages/server/ServerMessage.ts @@ -0,0 +1,5 @@ +import { ServerMessageType } from "./ServerMessageType"; + +export interface ServerMessage { + type: ServerMessageType; +} diff --git a/src/MooLite/core/server/ServerMessageType.ts b/src/MooLite/core/messages/server/ServerMessageType.ts similarity index 78% rename from src/MooLite/core/server/ServerMessageType.ts rename to src/MooLite/core/messages/server/ServerMessageType.ts index bf3c051..e368df2 100644 --- a/src/MooLite/core/server/ServerMessageType.ts +++ b/src/MooLite/core/messages/server/ServerMessageType.ts @@ -11,6 +11,7 @@ export enum ServerMessageType { CharacterStatsUpdated = "character_stats_updated", EquipmentBuffsUpdated = "equipment_buffs_updated", + CommunityBuffsUpdated = "community_buffs_updated", ItemsUpdated = "items_updated", LootOpened = "loot_opened", @@ -26,7 +27,12 @@ export enum ServerMessageType { // Combat CombatTriggersUpdated = "combat_triggers_updated", AbilitiesUpdated = "abilities_updated", + CombatUnitsInBattleUpdated = "combat_units_in_battle_updated", + NewBattle = "new_battle", // Leaderboard LeaderboardInfoUpdated = "leaderboard_info_updated", + + // Marketplace + MarketItemorderBooksUpdated = "market_item_order_books_updated", } diff --git a/src/MooLite/core/server/messages/AbilitiesUpdated.ts b/src/MooLite/core/messages/server/messages/AbilitiesUpdated.ts similarity index 71% rename from src/MooLite/core/server/messages/AbilitiesUpdated.ts rename to src/MooLite/core/messages/server/messages/AbilitiesUpdated.ts index 44d1642..217b765 100644 --- a/src/MooLite/core/server/messages/AbilitiesUpdated.ts +++ b/src/MooLite/core/messages/server/messages/AbilitiesUpdated.ts @@ -1,8 +1,8 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; -import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; import { CharacterAbility } from "src/MooLite/core/abilities/CharacterAbility"; +import { ServerMessageType } from "../ServerMessageType"; +import { ServerMessage } from "../ServerMessage"; +import { MessageParser } from "../../MessageParser"; +import { Game } from "src/MooLite/core/Game"; export interface AbilitiesUpdatedMessage extends ServerMessage { type: ServerMessageType.AbilitiesUpdated; diff --git a/src/MooLite/core/server/messages/ActionCompleted.ts b/src/MooLite/core/messages/server/messages/ActionCompleted.ts similarity index 84% rename from src/MooLite/core/server/messages/ActionCompleted.ts rename to src/MooLite/core/messages/server/messages/ActionCompleted.ts index 61215dc..2562bdb 100644 --- a/src/MooLite/core/server/messages/ActionCompleted.ts +++ b/src/MooLite/core/messages/server/messages/ActionCompleted.ts @@ -1,11 +1,11 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { CharacterSkill } from "src/MooLite/core/skills/CharacterSkill"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; import { CharacterAction } from "src/MooLite/core/actions/CharacterAction"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; import { CharacterAbility } from "src/MooLite/core/abilities/CharacterAbility"; +import { CharacterSkill } from "src/MooLite/core/skills/CharacterSkill"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface ActionCompletedMessage extends ServerMessage { type: ServerMessageType.ActionCompleted; diff --git a/src/MooLite/core/server/messages/ActionsUpdated.ts b/src/MooLite/core/messages/server/messages/ActionsUpdated.ts similarity index 70% rename from src/MooLite/core/server/messages/ActionsUpdated.ts rename to src/MooLite/core/messages/server/messages/ActionsUpdated.ts index 67b09b0..3b13492 100644 --- a/src/MooLite/core/server/messages/ActionsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ActionsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { CharacterAction } from "src/MooLite/core/actions/CharacterAction"; diff --git a/src/MooLite/core/server/messages/ActivePlayerCountUpdated.ts b/src/MooLite/core/messages/server/messages/ActivePlayerCountUpdated.ts similarity index 68% rename from src/MooLite/core/server/messages/ActivePlayerCountUpdated.ts rename to src/MooLite/core/messages/server/messages/ActivePlayerCountUpdated.ts index 184b606..e8795b1 100644 --- a/src/MooLite/core/server/messages/ActivePlayerCountUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ActivePlayerCountUpdated.ts @@ -1,7 +1,7 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface ActivePlayerCountUpdatedMessage extends ServerMessage { type: ServerMessageType.ActivePlayerCountUpdated; diff --git a/src/MooLite/core/server/messages/CharacterStatsUpdated.ts b/src/MooLite/core/messages/server/messages/CharacterStatsUpdated.ts similarity index 75% rename from src/MooLite/core/server/messages/CharacterStatsUpdated.ts rename to src/MooLite/core/messages/server/messages/CharacterStatsUpdated.ts index c26c789..5b029c4 100644 --- a/src/MooLite/core/server/messages/CharacterStatsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/CharacterStatsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { NonCombatStats } from "src/MooLite/core/equipment/NonCombatStats"; import { CombatUnit } from "src/MooLite/core/combat/CombatUnit"; diff --git a/src/MooLite/core/server/messages/ChatMessageReceived.ts b/src/MooLite/core/messages/server/messages/ChatMessageReceived.ts similarity index 87% rename from src/MooLite/core/server/messages/ChatMessageReceived.ts rename to src/MooLite/core/messages/server/messages/ChatMessageReceived.ts index 80626d8..24f643f 100644 --- a/src/MooLite/core/server/messages/ChatMessageReceived.ts +++ b/src/MooLite/core/messages/server/messages/ChatMessageReceived.ts @@ -1,9 +1,9 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; import { ChatChannelTypeHrid } from "src/MooLite/core/chat/ChatChannelTypeHrid"; import { ChatIconHrid } from "src/MooLite/core/chat/ChatIconHrid"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface ChatMessageReceived extends ServerMessage { type: ServerMessageType.ChatMessageReceived; diff --git a/src/MooLite/core/server/messages/CombatTriggersUpdated.ts b/src/MooLite/core/messages/server/messages/CombatTriggersUpdated.ts similarity index 83% rename from src/MooLite/core/server/messages/CombatTriggersUpdated.ts rename to src/MooLite/core/messages/server/messages/CombatTriggersUpdated.ts index 8380d35..68e1133 100644 --- a/src/MooLite/core/server/messages/CombatTriggersUpdated.ts +++ b/src/MooLite/core/messages/server/messages/CombatTriggersUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { AbilityHrid } from "src/MooLite/core/abilities/AbilityHrid"; import { CombatTrigger } from "src/MooLite/core/combat/triggers/CombatTrigger"; diff --git a/src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts b/src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts new file mode 100644 index 0000000..fee72fd --- /dev/null +++ b/src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class CombatUnitsInBattleUpdatedMessageParser extends NoopMessageParser { + type = ServerMessageType.CombatUnitsInBattleUpdated; +} diff --git a/src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts b/src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts new file mode 100644 index 0000000..3330098 --- /dev/null +++ b/src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class CommunityBuffsUpdatedMessageParser extends NoopMessageParser { + type = ServerMessageType.CommunityBuffsUpdated; +} diff --git a/src/MooLite/core/server/messages/ConsumableSlotsUpdated.ts b/src/MooLite/core/messages/server/messages/ConsumableSlotsUpdated.ts similarity index 79% rename from src/MooLite/core/server/messages/ConsumableSlotsUpdated.ts rename to src/MooLite/core/messages/server/messages/ConsumableSlotsUpdated.ts index dbdf8b6..f7536ed 100644 --- a/src/MooLite/core/server/messages/ConsumableSlotsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ConsumableSlotsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { ActionTypeHrid } from "src/MooLite/core/actions/ActionTypeHrid"; import { CharacterConsumable } from "src/MooLite/core/inventory/items/CharacterConsumable"; diff --git a/src/MooLite/core/server/messages/EquipmentBuffsUpdated.ts b/src/MooLite/core/messages/server/messages/EquipmentBuffsUpdated.ts similarity index 76% rename from src/MooLite/core/server/messages/EquipmentBuffsUpdated.ts rename to src/MooLite/core/messages/server/messages/EquipmentBuffsUpdated.ts index 0beda7e..abae2b9 100644 --- a/src/MooLite/core/server/messages/EquipmentBuffsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/EquipmentBuffsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { ActionTypeHrid } from "src/MooLite/core/actions/ActionTypeHrid"; import { EquipmentActionTypeBuff } from "src/MooLite/core/equipment/EquipmentActionTypeBuff"; diff --git a/src/MooLite/core/server/messages/Info.ts b/src/MooLite/core/messages/server/messages/Info.ts similarity index 61% rename from src/MooLite/core/server/messages/Info.ts rename to src/MooLite/core/messages/server/messages/Info.ts index a367a4c..bce0f76 100644 --- a/src/MooLite/core/server/messages/Info.ts +++ b/src/MooLite/core/messages/server/messages/Info.ts @@ -1,7 +1,7 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; export interface InfoMessage extends ServerMessage { type: ServerMessageType.Info; diff --git a/src/MooLite/core/server/messages/InitCharacterInfoParser.ts b/src/MooLite/core/messages/server/messages/InitCharacterInfo.ts similarity index 93% rename from src/MooLite/core/server/messages/InitCharacterInfoParser.ts rename to src/MooLite/core/messages/server/messages/InitCharacterInfo.ts index 594bbe9..1c13683 100644 --- a/src/MooLite/core/server/messages/InitCharacterInfoParser.ts +++ b/src/MooLite/core/messages/server/messages/InitCharacterInfo.ts @@ -1,7 +1,4 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; import { CharacterAction } from "src/MooLite/core/actions/CharacterAction"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; import { CharacterSkill } from "src/MooLite/core/skills/CharacterSkill"; @@ -17,6 +14,9 @@ import { NonCombatStats } from "src/MooLite/core/equipment/NonCombatStats"; import { Character } from "src/MooLite/core/character/Character"; import { ChatMessage } from "src/MooLite/core/chat/ChatMessage"; import { CharacterDetail } from "src/MooLite/core/character/CharacterDetail"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface InitCharacterInfoMessage extends ServerMessage { type: ServerMessageType.InitCharacterInfo; @@ -39,7 +39,6 @@ export class InitCharacterInfoParser extends MessageParser { type = ServerMessageType.InitCharacterInfo; apply(message: InitCharacterInfoMessage, game: Game): void { - console.log(message); game.abilities.updateCharacterAbilities(message.characterAbilities, false); game.abilities.updateCombatTriggers(message.abilityCombatTriggersMap); game.actionQueue.updateActions(message.characterActions); diff --git a/src/MooLite/core/server/messages/InitClientInfo.ts b/src/MooLite/core/messages/server/messages/InitClientInfo.ts similarity index 95% rename from src/MooLite/core/server/messages/InitClientInfo.ts rename to src/MooLite/core/messages/server/messages/InitClientInfo.ts index 9f08218..86f79bc 100644 --- a/src/MooLite/core/server/messages/InitClientInfo.ts +++ b/src/MooLite/core/messages/server/messages/InitClientInfo.ts @@ -1,6 +1,3 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; import { AbilityHrid } from "src/MooLite/core/abilities/AbilityHrid"; import { AbilityDetail } from "src/MooLite/core/abilities/AbilityDetail"; @@ -30,6 +27,9 @@ import { EquipmentTypeHrid } from "src/MooLite/core/equipment/EquipmentTypeHrid" import { EquipmentTypeDetail } from "src/MooLite/core/equipment/EquipmentTypeDetail"; import { ItemLocationHrid } from "src/MooLite/core/inventory/ItemLocationHrid"; import { ItemLocationDetail } from "src/MooLite/core/inventory/ItemLocationDetail"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface InitClientInfoMessage extends ServerMessage { type: ServerMessageType.InitClientInfo; diff --git a/src/MooLite/core/server/messages/ItemsUpdated.ts b/src/MooLite/core/messages/server/messages/ItemsUpdated.ts similarity index 69% rename from src/MooLite/core/server/messages/ItemsUpdated.ts rename to src/MooLite/core/messages/server/messages/ItemsUpdated.ts index 4d0b48a..7871e3b 100644 --- a/src/MooLite/core/server/messages/ItemsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ItemsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; diff --git a/src/MooLite/core/server/messages/LeaderboardInfoUpdated.ts b/src/MooLite/core/messages/server/messages/LeaderboardInfoUpdated.ts similarity index 71% rename from src/MooLite/core/server/messages/LeaderboardInfoUpdated.ts rename to src/MooLite/core/messages/server/messages/LeaderboardInfoUpdated.ts index 54014ef..3c381c3 100644 --- a/src/MooLite/core/server/messages/LeaderboardInfoUpdated.ts +++ b/src/MooLite/core/messages/server/messages/LeaderboardInfoUpdated.ts @@ -1,7 +1,7 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; import { LeaderboardTopic } from "src/MooLite/core/leaderboard/LeaderboardTopic"; export interface LeaderboardInfoUpdatedMessage extends ServerMessage { diff --git a/src/MooLite/core/server/messages/LootOpened.ts b/src/MooLite/core/messages/server/messages/LootOpened.ts similarity index 70% rename from src/MooLite/core/server/messages/LootOpened.ts rename to src/MooLite/core/messages/server/messages/LootOpened.ts index ade03f4..de8d5fb 100644 --- a/src/MooLite/core/server/messages/LootOpened.ts +++ b/src/MooLite/core/messages/server/messages/LootOpened.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; diff --git a/src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts b/src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts new file mode 100644 index 0000000..bcb3bdc --- /dev/null +++ b/src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class MarketItemorderBooksUpdated extends NoopMessageParser { + type = ServerMessageType.MarketItemorderBooksUpdated; +} diff --git a/src/MooLite/core/messages/server/messages/NewBattle.ts b/src/MooLite/core/messages/server/messages/NewBattle.ts new file mode 100644 index 0000000..0901090 --- /dev/null +++ b/src/MooLite/core/messages/server/messages/NewBattle.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class NewBattleMessageParser extends NoopMessageParser { + type = ServerMessageType.NewBattle; +} diff --git a/src/MooLite/core/server/messages/Pong.ts b/src/MooLite/core/messages/server/messages/Pong.ts similarity index 63% rename from src/MooLite/core/server/messages/Pong.ts rename to src/MooLite/core/messages/server/messages/Pong.ts index 3fd49c9..decd681 100644 --- a/src/MooLite/core/server/messages/Pong.ts +++ b/src/MooLite/core/messages/server/messages/Pong.ts @@ -1,7 +1,7 @@ -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface PongMessage extends ServerMessage { type: ServerMessageType.Pong; diff --git a/src/MooLite/core/server/ServerMessage.ts b/src/MooLite/core/server/ServerMessage.ts deleted file mode 100644 index 3f19e58..0000000 --- a/src/MooLite/core/server/ServerMessage.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; - -export interface ServerMessage { - type: ServerMessageType; -} diff --git a/src/MooLite/core/server/clientmessages/ClientMessage.ts b/src/MooLite/core/server/clientmessages/ClientMessage.ts deleted file mode 100644 index 2fd434d..0000000 --- a/src/MooLite/core/server/clientmessages/ClientMessage.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ClientMessageType } from "src/MooLite/core/server/clientmessages/ClientMessageType"; - -export interface ClientMessage { - type: ClientMessageType; -} diff --git a/src/MooLite/core/server/clientmessages/ClientMessageType.ts b/src/MooLite/core/server/clientmessages/ClientMessageType.ts deleted file mode 100644 index 0081d5f..0000000 --- a/src/MooLite/core/server/clientmessages/ClientMessageType.ts +++ /dev/null @@ -1,3 +0,0 @@ -export enum ClientMessageType { - Ping = "/character_tasks/ping", -} From 44aab38edda4875fbe46c81708937c7055e9ffc5 Mon Sep 17 00:00:00 2001 From: Nathan S Date: Wed, 6 Dec 2023 15:43:59 +0000 Subject: [PATCH 2/3] Refactor message file structure When this change is applied, * the server message type is moved into a messages folder, and the client messages folder also exists in its own subdirectory instead of a subdirectory of server messages. * adds a NoopMessageParser which will log the received message instead of warning about an unhandled message * adds Noop handlers for NewBattle, CombatUnitsInBattleUpdated, CommunityBuffsUpdated, and MarketItemOrderBooksUpdated. --- src/MooLite/core/MooLite.ts | 59 +++++++++++-------- src/MooLite/core/MooSocket.ts | 8 +-- src/MooLite/core/leaderboard/Leaderboard.ts | 2 - .../{server => messages}/MessageParser.ts | 8 +-- .../core/messages/NoopMessageParser.ts | 8 +++ .../core/messages/client/ClientMessage.ts | 5 ++ .../core/messages/client/ClientMessageType.ts | 4 ++ .../messages/GetMarketItemOrderBooks.ts | 16 +++++ .../client/messages}/Ping.ts | 6 +- .../core/messages/server/ServerMessage.ts | 5 ++ .../server/ServerMessageType.ts | 6 ++ .../server/messages/AbilitiesUpdated.ts | 8 +-- .../server/messages/ActionCompleted.ts | 8 +-- .../server/messages/ActionsUpdated.ts | 6 +- .../messages/ActivePlayerCountUpdated.ts | 6 +- .../server/messages/CharacterStatsUpdated.ts | 6 +- .../server/messages/ChatMessageReceived.ts | 6 +- .../server/messages/CombatTriggersUpdated.ts | 6 +- .../messages/CombatUnitsInBattleUpdated.ts | 6 ++ .../server/messages/CommunityBuffsUpdated.ts | 6 ++ .../server/messages/ConsumableSlotsUpdated.ts | 6 +- .../server/messages/EquipmentBuffsUpdated.ts | 6 +- .../{ => messages}/server/messages/Info.ts | 6 +- .../server/messages/InitCharacterInfo.ts} | 7 +-- .../server/messages/InitClientInfo.ts | 6 +- .../server/messages/ItemsUpdated.ts | 6 +- .../server/messages/LeaderboardInfoUpdated.ts | 6 +- .../server/messages/LootOpened.ts | 6 +- .../messages/MarketItemOrderBooksUpdated.ts | 6 ++ .../messages/server/messages/NewBattle.ts | 6 ++ .../{ => messages}/server/messages/Pong.ts | 6 +- src/MooLite/core/server/ServerMessage.ts | 5 -- .../server/clientmessages/ClientMessage.ts | 5 -- .../clientmessages/ClientMessageType.ts | 3 - 34 files changed, 163 insertions(+), 102 deletions(-) rename src/MooLite/core/{server => messages}/MessageParser.ts (56%) create mode 100644 src/MooLite/core/messages/NoopMessageParser.ts create mode 100644 src/MooLite/core/messages/client/ClientMessage.ts create mode 100644 src/MooLite/core/messages/client/ClientMessageType.ts create mode 100644 src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts rename src/MooLite/core/{server/clientmessages => messages/client/messages}/Ping.ts (55%) create mode 100644 src/MooLite/core/messages/server/ServerMessage.ts rename src/MooLite/core/{ => messages}/server/ServerMessageType.ts (78%) rename src/MooLite/core/{ => messages}/server/messages/AbilitiesUpdated.ts (71%) rename src/MooLite/core/{ => messages}/server/messages/ActionCompleted.ts (84%) rename src/MooLite/core/{ => messages}/server/messages/ActionsUpdated.ts (70%) rename src/MooLite/core/{ => messages}/server/messages/ActivePlayerCountUpdated.ts (68%) rename src/MooLite/core/{ => messages}/server/messages/CharacterStatsUpdated.ts (75%) rename src/MooLite/core/{ => messages}/server/messages/ChatMessageReceived.ts (87%) rename src/MooLite/core/{ => messages}/server/messages/CombatTriggersUpdated.ts (83%) create mode 100644 src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts create mode 100644 src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts rename src/MooLite/core/{ => messages}/server/messages/ConsumableSlotsUpdated.ts (79%) rename src/MooLite/core/{ => messages}/server/messages/EquipmentBuffsUpdated.ts (76%) rename src/MooLite/core/{ => messages}/server/messages/Info.ts (61%) rename src/MooLite/core/{server/messages/InitCharacterInfoParser.ts => messages/server/messages/InitCharacterInfo.ts} (93%) rename src/MooLite/core/{ => messages}/server/messages/InitClientInfo.ts (95%) rename src/MooLite/core/{ => messages}/server/messages/ItemsUpdated.ts (69%) rename src/MooLite/core/{ => messages}/server/messages/LeaderboardInfoUpdated.ts (71%) rename src/MooLite/core/{ => messages}/server/messages/LootOpened.ts (70%) create mode 100644 src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts create mode 100644 src/MooLite/core/messages/server/messages/NewBattle.ts rename src/MooLite/core/{ => messages}/server/messages/Pong.ts (63%) delete mode 100644 src/MooLite/core/server/ServerMessage.ts delete mode 100644 src/MooLite/core/server/clientmessages/ClientMessage.ts delete mode 100644 src/MooLite/core/server/clientmessages/ClientMessageType.ts diff --git a/src/MooLite/core/MooLite.ts b/src/MooLite/core/MooLite.ts index e88045c..6e9b81e 100644 --- a/src/MooLite/core/MooLite.ts +++ b/src/MooLite/core/MooLite.ts @@ -1,28 +1,32 @@ import { PluginManager } from "src/MooLite/core/plugins/PluginManager"; import { MooSocket } from "src/MooLite/core/MooSocket"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; -import { ActionCompletedParser } from "src/MooLite/core/server/messages/ActionCompleted"; import { Game } from "src/MooLite/core/Game"; -import { ChatMessageReceivedParser } from "src/MooLite/core/server/messages/ChatMessageReceived"; -import { ActivePlayerCountUpdatedParser } from "src/MooLite/core/server/messages/ActivePlayerCountUpdated"; -import { ConsumableSlotsUpdatedParser } from "src/MooLite/core/server/messages/ConsumableSlotsUpdated"; -import { ActionsUpdatedParser } from "src/MooLite/core/server/messages/ActionsUpdated"; -import { InitCharacterInfoParser } from "src/MooLite/core/server/messages/InitCharacterInfoParser"; -import { InfoParser } from "src/MooLite/core/server/messages/Info"; -import { LeaderboardInfoUpdatedParser } from "src/MooLite/core/server/messages/LeaderboardInfoUpdated"; -import { PingParser } from "src/MooLite/core/server/clientmessages/Ping"; -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; -import { PongParser } from "src/MooLite/core/server/messages/Pong"; import { LocalStorage } from "src/MooLite/util/LocalStorage"; import { MooLiteSaveData } from "src/MooLite/core/MooLiteSaveData"; -import { CombatTriggersUpdatedParser } from "src/MooLite/core/server/messages/CombatTriggersUpdated"; -import { CharacterStatsUpdatedParser } from "src/MooLite/core/server/messages/CharacterStatsUpdated"; -import { EquipmentBuffsUpdatedParser } from "src/MooLite/core/server/messages/EquipmentBuffsUpdated"; -import { ItemsUpdatedParser } from "src/MooLite/core/server/messages/ItemsUpdated"; -import { LootOpenedParser } from "src/MooLite/core/server/messages/LootOpened"; -import { AbilitiesUpdatedParser } from "src/MooLite/core/server/messages/AbilitiesUpdated"; - +import { InitClientInfoParser } from "./messages/server/messages/InitClientInfo"; +import { MessageParser } from "./messages/MessageParser"; +import { ClientMessage } from "./messages/client/ClientMessage"; +import { GetMarketItemOrderBooksParser } from "./messages/client/messages/GetMarketItemOrderBooks"; +import { PingParser } from "./messages/client/messages/Ping"; +import { ServerMessage } from "./messages/server/ServerMessage"; +import { AbilitiesUpdatedParser } from "./messages/server/messages/AbilitiesUpdated"; +import { ActionCompletedParser } from "./messages/server/messages/ActionCompleted"; +import { ActionsUpdatedParser } from "./messages/server/messages/ActionsUpdated"; +import { ActivePlayerCountUpdatedParser } from "./messages/server/messages/ActivePlayerCountUpdated"; +import { CharacterStatsUpdatedParser } from "./messages/server/messages/CharacterStatsUpdated"; +import { ChatMessageReceivedParser } from "./messages/server/messages/ChatMessageReceived"; +import { CombatTriggersUpdatedParser } from "./messages/server/messages/CombatTriggersUpdated"; +import { CombatUnitsInBattleUpdatedMessageParser } from "./messages/server/messages/CombatUnitsInBattleUpdated"; +import { ConsumableSlotsUpdatedParser } from "./messages/server/messages/ConsumableSlotsUpdated"; +import { EquipmentBuffsUpdatedParser } from "./messages/server/messages/EquipmentBuffsUpdated"; +import { InfoParser } from "./messages/server/messages/Info"; +import { InitCharacterInfoParser } from "./messages/server/messages/InitCharacterInfo"; +import { ItemsUpdatedParser } from "./messages/server/messages/ItemsUpdated"; +import { LeaderboardInfoUpdatedParser } from "./messages/server/messages/LeaderboardInfoUpdated"; +import { LootOpenedParser } from "./messages/server/messages/LootOpened"; +import { MarketItemorderBooksUpdated } from "./messages/server/messages/MarketItemOrderBooksUpdated"; +import { NewBattleMessageParser } from "./messages/server/messages/NewBattle"; +import { PongParser } from "./messages/server/messages/Pong"; export class MooLite { pluginManager: PluginManager; mooSocket: MooSocket; @@ -31,6 +35,7 @@ export class MooLite { messageParsers: MessageParser[] = [ // Server messages + new InitClientInfoParser(), new InitCharacterInfoParser(), new PongParser(), @@ -41,15 +46,19 @@ export class MooLite { new ConsumableSlotsUpdatedParser(), new InfoParser(), new CombatTriggersUpdatedParser(), + new NewBattleMessageParser(), + new CombatUnitsInBattleUpdatedMessageParser(), new LeaderboardInfoUpdatedParser(), new LootOpenedParser(), new CharacterStatsUpdatedParser(), new EquipmentBuffsUpdatedParser(), new ItemsUpdatedParser(), new AbilitiesUpdatedParser(), + new MarketItemorderBooksUpdated(), // Client messages new PingParser(), + new GetMarketItemOrderBooksParser(), ]; private _interval: NodeJS.Timeout; @@ -159,13 +168,13 @@ export class MooLite { const parser = this.messageParsers.find((parser) => { return parser.canParse(message); }); + if (!parser) { - if (!isClientMessage) { - console.warn(`Unhandled message type ${message.type}`); - console.log(message); - } - return; + return isClientMessage + ? console.debug(`Unhandled client message type: ${message.type}`, message) + : console.warn(`Unhandled server message type: ${message.type}`, message); } + parser.apply(message, this.game); } } diff --git a/src/MooLite/core/MooSocket.ts b/src/MooLite/core/MooSocket.ts index 38a9f8a..18b319f 100644 --- a/src/MooLite/core/MooSocket.ts +++ b/src/MooLite/core/MooSocket.ts @@ -1,9 +1,9 @@ import { SimpleEventDispatcher } from "strongly-typed-events"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { InitClientInfoMessage } from "src/MooLite/core/server/messages/InitClientInfo"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; import { unsafeWindow } from "$"; +import { ServerMessage } from "./messages/server/ServerMessage"; +import { ClientMessage } from "./messages/client/ClientMessage"; +import { InitClientInfoMessage } from "./messages/server/messages/InitClientInfo"; +import { ServerMessageType } from "./messages/server/ServerMessageType"; export class MooSocket extends WebSocket { private _onServerMessage = new SimpleEventDispatcher(); diff --git a/src/MooLite/core/leaderboard/Leaderboard.ts b/src/MooLite/core/leaderboard/Leaderboard.ts index a5d76ed..4006b25 100644 --- a/src/MooLite/core/leaderboard/Leaderboard.ts +++ b/src/MooLite/core/leaderboard/Leaderboard.ts @@ -36,8 +36,6 @@ export class Leaderboard { return null; } - console.log(this.leaderboardList); - const skills: LeaderboardSkill[] = this.getSkillLeaderboards().flatMap((value) => { const playerEntry = value.data.find((entry) => entry.name.toLowerCase() === name.toLowerCase()); if (!playerEntry) { diff --git a/src/MooLite/core/server/MessageParser.ts b/src/MooLite/core/messages/MessageParser.ts similarity index 56% rename from src/MooLite/core/server/MessageParser.ts rename to src/MooLite/core/messages/MessageParser.ts index fb6f68b..3d43ea6 100644 --- a/src/MooLite/core/server/MessageParser.ts +++ b/src/MooLite/core/messages/MessageParser.ts @@ -1,8 +1,8 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; import { Game } from "src/MooLite/core/Game"; -import { ClientMessageType } from "src/MooLite/core/server/clientmessages/ClientMessageType"; -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; +import { ServerMessageType } from "./server/ServerMessageType"; +import { ClientMessage } from "./client/ClientMessage"; +import { ClientMessageType } from "./client/ClientMessageType"; +import { ServerMessage } from "./server/ServerMessage"; export abstract class MessageParser { abstract type: ServerMessageType | ClientMessageType; diff --git a/src/MooLite/core/messages/NoopMessageParser.ts b/src/MooLite/core/messages/NoopMessageParser.ts new file mode 100644 index 0000000..0222e78 --- /dev/null +++ b/src/MooLite/core/messages/NoopMessageParser.ts @@ -0,0 +1,8 @@ +import { MessageParser } from "./MessageParser"; +import { ServerMessage } from "./server/ServerMessage"; + +export abstract class NoopMessageParser extends MessageParser { + apply(message: ServerMessage): void { + console.debug(`Parsing ${this.type} message`, message); + } +} diff --git a/src/MooLite/core/messages/client/ClientMessage.ts b/src/MooLite/core/messages/client/ClientMessage.ts new file mode 100644 index 0000000..e470cc3 --- /dev/null +++ b/src/MooLite/core/messages/client/ClientMessage.ts @@ -0,0 +1,5 @@ +import { ClientMessageType } from "src/MooLite/core/server/ClientMessageType"; + +export interface ClientMessage { + type: ClientMessageType; +} diff --git a/src/MooLite/core/messages/client/ClientMessageType.ts b/src/MooLite/core/messages/client/ClientMessageType.ts new file mode 100644 index 0000000..78ddf42 --- /dev/null +++ b/src/MooLite/core/messages/client/ClientMessageType.ts @@ -0,0 +1,4 @@ +export enum ClientMessageType { + Ping = "/character_tasks/ping", + GetMarketItemOrderBooks = "/character_tasks/get_market_item_order_books", +} diff --git a/src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts b/src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts new file mode 100644 index 0000000..e8d1ea6 --- /dev/null +++ b/src/MooLite/core/messages/client/messages/GetMarketItemOrderBooks.ts @@ -0,0 +1,16 @@ +import { Game } from "src/MooLite/core/Game"; +import { ClientMessageType } from "../ClientMessageType"; +import { ClientMessage } from "../ClientMessage"; +import { MessageParser } from "../../MessageParser"; + +export interface GetMarketItemOrderBooksMessage extends ClientMessage { + type: ClientMessageType.GetMarketItemOrderBooks; +} + +export class GetMarketItemOrderBooksParser extends MessageParser { + type = ClientMessageType.GetMarketItemOrderBooks; + + apply(message: GetMarketItemOrderBooksMessage, game: Game): void { + console.debug(this.type, { message }); + } +} diff --git a/src/MooLite/core/server/clientmessages/Ping.ts b/src/MooLite/core/messages/client/messages/Ping.ts similarity index 55% rename from src/MooLite/core/server/clientmessages/Ping.ts rename to src/MooLite/core/messages/client/messages/Ping.ts index afa50d8..c8a5867 100644 --- a/src/MooLite/core/server/clientmessages/Ping.ts +++ b/src/MooLite/core/messages/client/messages/Ping.ts @@ -1,7 +1,7 @@ -import { ClientMessage } from "src/MooLite/core/server/clientmessages/ClientMessage"; -import { ClientMessageType } from "src/MooLite/core/server/clientmessages/ClientMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; +import { ClientMessageType } from "../ClientMessageType"; +import { MessageParser } from "../../MessageParser"; +import { ClientMessage } from "../ClientMessage"; export interface PingMessage extends ClientMessage { type: ClientMessageType.Ping; diff --git a/src/MooLite/core/messages/server/ServerMessage.ts b/src/MooLite/core/messages/server/ServerMessage.ts new file mode 100644 index 0000000..aad5740 --- /dev/null +++ b/src/MooLite/core/messages/server/ServerMessage.ts @@ -0,0 +1,5 @@ +import { ServerMessageType } from "./ServerMessageType"; + +export interface ServerMessage { + type: ServerMessageType; +} diff --git a/src/MooLite/core/server/ServerMessageType.ts b/src/MooLite/core/messages/server/ServerMessageType.ts similarity index 78% rename from src/MooLite/core/server/ServerMessageType.ts rename to src/MooLite/core/messages/server/ServerMessageType.ts index bf3c051..e368df2 100644 --- a/src/MooLite/core/server/ServerMessageType.ts +++ b/src/MooLite/core/messages/server/ServerMessageType.ts @@ -11,6 +11,7 @@ export enum ServerMessageType { CharacterStatsUpdated = "character_stats_updated", EquipmentBuffsUpdated = "equipment_buffs_updated", + CommunityBuffsUpdated = "community_buffs_updated", ItemsUpdated = "items_updated", LootOpened = "loot_opened", @@ -26,7 +27,12 @@ export enum ServerMessageType { // Combat CombatTriggersUpdated = "combat_triggers_updated", AbilitiesUpdated = "abilities_updated", + CombatUnitsInBattleUpdated = "combat_units_in_battle_updated", + NewBattle = "new_battle", // Leaderboard LeaderboardInfoUpdated = "leaderboard_info_updated", + + // Marketplace + MarketItemorderBooksUpdated = "market_item_order_books_updated", } diff --git a/src/MooLite/core/server/messages/AbilitiesUpdated.ts b/src/MooLite/core/messages/server/messages/AbilitiesUpdated.ts similarity index 71% rename from src/MooLite/core/server/messages/AbilitiesUpdated.ts rename to src/MooLite/core/messages/server/messages/AbilitiesUpdated.ts index 44d1642..217b765 100644 --- a/src/MooLite/core/server/messages/AbilitiesUpdated.ts +++ b/src/MooLite/core/messages/server/messages/AbilitiesUpdated.ts @@ -1,8 +1,8 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; -import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; import { CharacterAbility } from "src/MooLite/core/abilities/CharacterAbility"; +import { ServerMessageType } from "../ServerMessageType"; +import { ServerMessage } from "../ServerMessage"; +import { MessageParser } from "../../MessageParser"; +import { Game } from "src/MooLite/core/Game"; export interface AbilitiesUpdatedMessage extends ServerMessage { type: ServerMessageType.AbilitiesUpdated; diff --git a/src/MooLite/core/server/messages/ActionCompleted.ts b/src/MooLite/core/messages/server/messages/ActionCompleted.ts similarity index 84% rename from src/MooLite/core/server/messages/ActionCompleted.ts rename to src/MooLite/core/messages/server/messages/ActionCompleted.ts index 61215dc..2562bdb 100644 --- a/src/MooLite/core/server/messages/ActionCompleted.ts +++ b/src/MooLite/core/messages/server/messages/ActionCompleted.ts @@ -1,11 +1,11 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { CharacterSkill } from "src/MooLite/core/skills/CharacterSkill"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; import { CharacterAction } from "src/MooLite/core/actions/CharacterAction"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; import { CharacterAbility } from "src/MooLite/core/abilities/CharacterAbility"; +import { CharacterSkill } from "src/MooLite/core/skills/CharacterSkill"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface ActionCompletedMessage extends ServerMessage { type: ServerMessageType.ActionCompleted; diff --git a/src/MooLite/core/server/messages/ActionsUpdated.ts b/src/MooLite/core/messages/server/messages/ActionsUpdated.ts similarity index 70% rename from src/MooLite/core/server/messages/ActionsUpdated.ts rename to src/MooLite/core/messages/server/messages/ActionsUpdated.ts index 67b09b0..3b13492 100644 --- a/src/MooLite/core/server/messages/ActionsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ActionsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { CharacterAction } from "src/MooLite/core/actions/CharacterAction"; diff --git a/src/MooLite/core/server/messages/ActivePlayerCountUpdated.ts b/src/MooLite/core/messages/server/messages/ActivePlayerCountUpdated.ts similarity index 68% rename from src/MooLite/core/server/messages/ActivePlayerCountUpdated.ts rename to src/MooLite/core/messages/server/messages/ActivePlayerCountUpdated.ts index 184b606..e8795b1 100644 --- a/src/MooLite/core/server/messages/ActivePlayerCountUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ActivePlayerCountUpdated.ts @@ -1,7 +1,7 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface ActivePlayerCountUpdatedMessage extends ServerMessage { type: ServerMessageType.ActivePlayerCountUpdated; diff --git a/src/MooLite/core/server/messages/CharacterStatsUpdated.ts b/src/MooLite/core/messages/server/messages/CharacterStatsUpdated.ts similarity index 75% rename from src/MooLite/core/server/messages/CharacterStatsUpdated.ts rename to src/MooLite/core/messages/server/messages/CharacterStatsUpdated.ts index c26c789..5b029c4 100644 --- a/src/MooLite/core/server/messages/CharacterStatsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/CharacterStatsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { NonCombatStats } from "src/MooLite/core/equipment/NonCombatStats"; import { CombatUnit } from "src/MooLite/core/combat/CombatUnit"; diff --git a/src/MooLite/core/server/messages/ChatMessageReceived.ts b/src/MooLite/core/messages/server/messages/ChatMessageReceived.ts similarity index 87% rename from src/MooLite/core/server/messages/ChatMessageReceived.ts rename to src/MooLite/core/messages/server/messages/ChatMessageReceived.ts index 80626d8..24f643f 100644 --- a/src/MooLite/core/server/messages/ChatMessageReceived.ts +++ b/src/MooLite/core/messages/server/messages/ChatMessageReceived.ts @@ -1,9 +1,9 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; import { ChatChannelTypeHrid } from "src/MooLite/core/chat/ChatChannelTypeHrid"; import { ChatIconHrid } from "src/MooLite/core/chat/ChatIconHrid"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface ChatMessageReceived extends ServerMessage { type: ServerMessageType.ChatMessageReceived; diff --git a/src/MooLite/core/server/messages/CombatTriggersUpdated.ts b/src/MooLite/core/messages/server/messages/CombatTriggersUpdated.ts similarity index 83% rename from src/MooLite/core/server/messages/CombatTriggersUpdated.ts rename to src/MooLite/core/messages/server/messages/CombatTriggersUpdated.ts index 8380d35..68e1133 100644 --- a/src/MooLite/core/server/messages/CombatTriggersUpdated.ts +++ b/src/MooLite/core/messages/server/messages/CombatTriggersUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { AbilityHrid } from "src/MooLite/core/abilities/AbilityHrid"; import { CombatTrigger } from "src/MooLite/core/combat/triggers/CombatTrigger"; diff --git a/src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts b/src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts new file mode 100644 index 0000000..fee72fd --- /dev/null +++ b/src/MooLite/core/messages/server/messages/CombatUnitsInBattleUpdated.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class CombatUnitsInBattleUpdatedMessageParser extends NoopMessageParser { + type = ServerMessageType.CombatUnitsInBattleUpdated; +} diff --git a/src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts b/src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts new file mode 100644 index 0000000..3330098 --- /dev/null +++ b/src/MooLite/core/messages/server/messages/CommunityBuffsUpdated.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class CommunityBuffsUpdatedMessageParser extends NoopMessageParser { + type = ServerMessageType.CommunityBuffsUpdated; +} diff --git a/src/MooLite/core/server/messages/ConsumableSlotsUpdated.ts b/src/MooLite/core/messages/server/messages/ConsumableSlotsUpdated.ts similarity index 79% rename from src/MooLite/core/server/messages/ConsumableSlotsUpdated.ts rename to src/MooLite/core/messages/server/messages/ConsumableSlotsUpdated.ts index dbdf8b6..f7536ed 100644 --- a/src/MooLite/core/server/messages/ConsumableSlotsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ConsumableSlotsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { ActionTypeHrid } from "src/MooLite/core/actions/ActionTypeHrid"; import { CharacterConsumable } from "src/MooLite/core/inventory/items/CharacterConsumable"; diff --git a/src/MooLite/core/server/messages/EquipmentBuffsUpdated.ts b/src/MooLite/core/messages/server/messages/EquipmentBuffsUpdated.ts similarity index 76% rename from src/MooLite/core/server/messages/EquipmentBuffsUpdated.ts rename to src/MooLite/core/messages/server/messages/EquipmentBuffsUpdated.ts index 0beda7e..abae2b9 100644 --- a/src/MooLite/core/server/messages/EquipmentBuffsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/EquipmentBuffsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { ActionTypeHrid } from "src/MooLite/core/actions/ActionTypeHrid"; import { EquipmentActionTypeBuff } from "src/MooLite/core/equipment/EquipmentActionTypeBuff"; diff --git a/src/MooLite/core/server/messages/Info.ts b/src/MooLite/core/messages/server/messages/Info.ts similarity index 61% rename from src/MooLite/core/server/messages/Info.ts rename to src/MooLite/core/messages/server/messages/Info.ts index a367a4c..bce0f76 100644 --- a/src/MooLite/core/server/messages/Info.ts +++ b/src/MooLite/core/messages/server/messages/Info.ts @@ -1,7 +1,7 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; export interface InfoMessage extends ServerMessage { type: ServerMessageType.Info; diff --git a/src/MooLite/core/server/messages/InitCharacterInfoParser.ts b/src/MooLite/core/messages/server/messages/InitCharacterInfo.ts similarity index 93% rename from src/MooLite/core/server/messages/InitCharacterInfoParser.ts rename to src/MooLite/core/messages/server/messages/InitCharacterInfo.ts index 594bbe9..1c13683 100644 --- a/src/MooLite/core/server/messages/InitCharacterInfoParser.ts +++ b/src/MooLite/core/messages/server/messages/InitCharacterInfo.ts @@ -1,7 +1,4 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; import { CharacterAction } from "src/MooLite/core/actions/CharacterAction"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; import { CharacterSkill } from "src/MooLite/core/skills/CharacterSkill"; @@ -17,6 +14,9 @@ import { NonCombatStats } from "src/MooLite/core/equipment/NonCombatStats"; import { Character } from "src/MooLite/core/character/Character"; import { ChatMessage } from "src/MooLite/core/chat/ChatMessage"; import { CharacterDetail } from "src/MooLite/core/character/CharacterDetail"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface InitCharacterInfoMessage extends ServerMessage { type: ServerMessageType.InitCharacterInfo; @@ -39,7 +39,6 @@ export class InitCharacterInfoParser extends MessageParser { type = ServerMessageType.InitCharacterInfo; apply(message: InitCharacterInfoMessage, game: Game): void { - console.log(message); game.abilities.updateCharacterAbilities(message.characterAbilities, false); game.abilities.updateCombatTriggers(message.abilityCombatTriggersMap); game.actionQueue.updateActions(message.characterActions); diff --git a/src/MooLite/core/server/messages/InitClientInfo.ts b/src/MooLite/core/messages/server/messages/InitClientInfo.ts similarity index 95% rename from src/MooLite/core/server/messages/InitClientInfo.ts rename to src/MooLite/core/messages/server/messages/InitClientInfo.ts index 9f08218..86f79bc 100644 --- a/src/MooLite/core/server/messages/InitClientInfo.ts +++ b/src/MooLite/core/messages/server/messages/InitClientInfo.ts @@ -1,6 +1,3 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; import { AbilityHrid } from "src/MooLite/core/abilities/AbilityHrid"; import { AbilityDetail } from "src/MooLite/core/abilities/AbilityDetail"; @@ -30,6 +27,9 @@ import { EquipmentTypeHrid } from "src/MooLite/core/equipment/EquipmentTypeHrid" import { EquipmentTypeDetail } from "src/MooLite/core/equipment/EquipmentTypeDetail"; import { ItemLocationHrid } from "src/MooLite/core/inventory/ItemLocationHrid"; import { ItemLocationDetail } from "src/MooLite/core/inventory/ItemLocationDetail"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface InitClientInfoMessage extends ServerMessage { type: ServerMessageType.InitClientInfo; diff --git a/src/MooLite/core/server/messages/ItemsUpdated.ts b/src/MooLite/core/messages/server/messages/ItemsUpdated.ts similarity index 69% rename from src/MooLite/core/server/messages/ItemsUpdated.ts rename to src/MooLite/core/messages/server/messages/ItemsUpdated.ts index 4d0b48a..7871e3b 100644 --- a/src/MooLite/core/server/messages/ItemsUpdated.ts +++ b/src/MooLite/core/messages/server/messages/ItemsUpdated.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; diff --git a/src/MooLite/core/server/messages/LeaderboardInfoUpdated.ts b/src/MooLite/core/messages/server/messages/LeaderboardInfoUpdated.ts similarity index 71% rename from src/MooLite/core/server/messages/LeaderboardInfoUpdated.ts rename to src/MooLite/core/messages/server/messages/LeaderboardInfoUpdated.ts index 54014ef..3c381c3 100644 --- a/src/MooLite/core/server/messages/LeaderboardInfoUpdated.ts +++ b/src/MooLite/core/messages/server/messages/LeaderboardInfoUpdated.ts @@ -1,7 +1,7 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; import { LeaderboardTopic } from "src/MooLite/core/leaderboard/LeaderboardTopic"; export interface LeaderboardInfoUpdatedMessage extends ServerMessage { diff --git a/src/MooLite/core/server/messages/LootOpened.ts b/src/MooLite/core/messages/server/messages/LootOpened.ts similarity index 70% rename from src/MooLite/core/server/messages/LootOpened.ts rename to src/MooLite/core/messages/server/messages/LootOpened.ts index ade03f4..de8d5fb 100644 --- a/src/MooLite/core/server/messages/LootOpened.ts +++ b/src/MooLite/core/messages/server/messages/LootOpened.ts @@ -1,6 +1,6 @@ -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; -import { MessageParser } from "src/MooLite/core/server/MessageParser"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; import { Game } from "src/MooLite/core/Game"; import { CharacterItem } from "src/MooLite/core/inventory/CharacterItem"; diff --git a/src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts b/src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts new file mode 100644 index 0000000..bcb3bdc --- /dev/null +++ b/src/MooLite/core/messages/server/messages/MarketItemOrderBooksUpdated.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class MarketItemorderBooksUpdated extends NoopMessageParser { + type = ServerMessageType.MarketItemorderBooksUpdated; +} diff --git a/src/MooLite/core/messages/server/messages/NewBattle.ts b/src/MooLite/core/messages/server/messages/NewBattle.ts new file mode 100644 index 0000000..0901090 --- /dev/null +++ b/src/MooLite/core/messages/server/messages/NewBattle.ts @@ -0,0 +1,6 @@ +import { NoopMessageParser } from "../../NoopMessageParser"; +import { ServerMessageType } from "../ServerMessageType"; + +export class NewBattleMessageParser extends NoopMessageParser { + type = ServerMessageType.NewBattle; +} diff --git a/src/MooLite/core/server/messages/Pong.ts b/src/MooLite/core/messages/server/messages/Pong.ts similarity index 63% rename from src/MooLite/core/server/messages/Pong.ts rename to src/MooLite/core/messages/server/messages/Pong.ts index 3fd49c9..decd681 100644 --- a/src/MooLite/core/server/messages/Pong.ts +++ b/src/MooLite/core/messages/server/messages/Pong.ts @@ -1,7 +1,7 @@ -import { MessageParser } from "src/MooLite/core/server/MessageParser"; import { Game } from "src/MooLite/core/Game"; -import { ServerMessage } from "src/MooLite/core/server/ServerMessage"; -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; +import { MessageParser } from "../../MessageParser"; +import { ServerMessage } from "../ServerMessage"; +import { ServerMessageType } from "../ServerMessageType"; export interface PongMessage extends ServerMessage { type: ServerMessageType.Pong; diff --git a/src/MooLite/core/server/ServerMessage.ts b/src/MooLite/core/server/ServerMessage.ts deleted file mode 100644 index 3f19e58..0000000 --- a/src/MooLite/core/server/ServerMessage.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ServerMessageType } from "src/MooLite/core/server/ServerMessageType"; - -export interface ServerMessage { - type: ServerMessageType; -} diff --git a/src/MooLite/core/server/clientmessages/ClientMessage.ts b/src/MooLite/core/server/clientmessages/ClientMessage.ts deleted file mode 100644 index 2fd434d..0000000 --- a/src/MooLite/core/server/clientmessages/ClientMessage.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ClientMessageType } from "src/MooLite/core/server/clientmessages/ClientMessageType"; - -export interface ClientMessage { - type: ClientMessageType; -} diff --git a/src/MooLite/core/server/clientmessages/ClientMessageType.ts b/src/MooLite/core/server/clientmessages/ClientMessageType.ts deleted file mode 100644 index 0081d5f..0000000 --- a/src/MooLite/core/server/clientmessages/ClientMessageType.ts +++ /dev/null @@ -1,3 +0,0 @@ -export enum ClientMessageType { - Ping = "/character_tasks/ping", -} From c5e60608973997d69c9575aaa00806ca52cc6c92 Mon Sep 17 00:00:00 2001 From: Nathan S Date: Wed, 6 Dec 2023 16:25:38 +0000 Subject: [PATCH 3/3] Missed a spot --- src/MooLite/core/Game.ts | 2 +- src/MooLite/core/messages/client/ClientMessage.ts | 2 +- src/MooLite/core/notifications/Notifier.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/MooLite/core/Game.ts b/src/MooLite/core/Game.ts index 4d42d83..29345cf 100644 --- a/src/MooLite/core/Game.ts +++ b/src/MooLite/core/Game.ts @@ -3,13 +3,13 @@ import { Chat } from "src/MooLite/core/chat/Chat"; import { ActionQueue } from "src/MooLite/core/actions/ActionQueue"; import { Inventory } from "src/MooLite/core/inventory/Inventory"; import { Notifier } from "src/MooLite/core/notifications/Notifier"; -import { InitClientInfoMessage } from "src/MooLite/core/server/messages/InitClientInfo"; import { Abilities } from "src/MooLite/core/abilities/Abilities"; import { Combat } from "src/MooLite/core/combat/Combat"; import { Leaderboard } from "src/MooLite/core/leaderboard/Leaderboard"; import { Equipment } from "src/MooLite/core/equipment/Equipment"; import { LootBoxes } from "src/MooLite/core/lootboxes/LootBoxes"; import { Character } from "src/MooLite/core/character/Character"; +import { InitClientInfoMessage } from "./messages/server/messages/InitClientInfo"; export class Game { gameVersion: string; diff --git a/src/MooLite/core/messages/client/ClientMessage.ts b/src/MooLite/core/messages/client/ClientMessage.ts index e470cc3..fdb1bfc 100644 --- a/src/MooLite/core/messages/client/ClientMessage.ts +++ b/src/MooLite/core/messages/client/ClientMessage.ts @@ -1,4 +1,4 @@ -import { ClientMessageType } from "src/MooLite/core/server/ClientMessageType"; +import { ClientMessageType } from "./ClientMessageType"; export interface ClientMessage { type: ClientMessageType; diff --git a/src/MooLite/core/notifications/Notifier.ts b/src/MooLite/core/notifications/Notifier.ts index f0fa951..01d9b71 100644 --- a/src/MooLite/core/notifications/Notifier.ts +++ b/src/MooLite/core/notifications/Notifier.ts @@ -1,7 +1,7 @@ -import { InfoMessage } from "src/MooLite/core/server/messages/Info"; import { SimpleEventDispatcher } from "strongly-typed-events"; import { MooNotification } from "src/MooLite/core/notifications/MooNotification"; import { NotificationType } from "src/MooLite/core/notifications/NotificationType"; +import { InfoMessage } from "../messages/server/messages/Info"; export class Notifier { private _onNotification = new SimpleEventDispatcher();