send all logs from client to server and log them

This commit is contained in:
Evan
2024-12-17 19:53:17 -08:00
parent 031f62c701
commit 94992e1144
7 changed files with 50 additions and 25 deletions
+2 -1
View File
@@ -13,6 +13,7 @@ import { SendAttackIntentEvent, SendSpawnIntentEvent, Transport } from "./Transp
import { createCanvas } from "./Utils";
import { DisplayMessageEvent, MessageType } from "./graphics/layers/EventsDisplay";
import { WorkerClient } from "../core/worker/WorkerClient";
import { initializeLogSender } from "./LogSender";
export interface LobbyConfig {
playerName: () => string
@@ -27,6 +28,7 @@ export interface LobbyConfig {
export function joinLobby(lobbyConfig: LobbyConfig, onjoin: () => void): () => void {
const eventBus = new EventBus()
initializeLogSender(eventBus)
const config = getConfig()
let gameConfig: GameConfig = null
@@ -186,7 +188,6 @@ export class GameRunner {
}
private playerEvent(event: PlayerEvent) {
console.log('received new player event!')
if (event.player.clientID() == this.clientID) {
console.log('setting name')
this.myPlayer = event.player
+27 -6
View File
@@ -1,16 +1,37 @@
import { EventBus } from "../core/EventBus"
import { LogSeverity } from "../core/Schemas"
import { SendLogEvent } from "./Transport"
export enum LogSeverity {
Info,
Warn,
Error
}
let inited = false
export function initializeLogSender(eventBus: EventBus) {
if (inited) {
return
}
inited = true
// Store original console methods
const originalLog = console.log
const originalWarn = console.warn
const originalError = console.error
const log = (msg: string): void => {
eventBus.emit(new SendLogEvent(LogSeverity.Info, msg))
console.log(msg)
originalLog.call(console, msg) // Use the original method
}
const warn = (msg: string): void => {
eventBus.emit(new SendLogEvent(LogSeverity.Warn, msg))
originalWarn.call(console, msg) // Use the original method
}
const error = (msg: string): void => {
eventBus.emit(new SendLogEvent(LogSeverity.Error, msg))
originalError.call(console, msg) // Use the original method
}
// Replace console methods
console.log = log
console.warn = warn
console.error = error
}
+1
View File
@@ -10,6 +10,7 @@ import { SinglePlayerModal } from "./SinglePlayerModal";
import { HostLobbyModal as HostPrivateLobbyModal } from "./HostLobbyModal";
import { JoinPrivateLobbyModal } from "./JoinPrivateLobbyModal";
import { generateID } from "../core/Util";
import { initializeLogSender } from "./LogSender";
+2 -2
View File
@@ -1,10 +1,9 @@
import { Config } from "../core/configuration/Config"
import { EventBus, GameEvent } from "../core/EventBus"
import { AllianceRequest, AllPlayers, Cell, GameType, Player, PlayerID, PlayerType, Tile, UnitType } from "../core/game/Game"
import { ClientID, ClientIntentMessageSchema, ClientJoinMessageSchema, GameID, Intent, ServerMessage, ServerMessageSchema, ClientPingMessageSchema, GameConfig, ClientLogMessageSchema } from "../core/Schemas"
import { ClientID, ClientIntentMessageSchema, ClientJoinMessageSchema, GameID, Intent, ServerMessage, ServerMessageSchema, ClientPingMessageSchema, GameConfig, ClientLogMessageSchema, LogSeverity } from "../core/Schemas"
import { LobbyConfig } from "./GameRunner"
import { LocalServer } from "./LocalServer"
import { LogSeverity } from "./LogSender"
export class SendAllianceRequestIntentEvent implements GameEvent {
@@ -206,6 +205,7 @@ export class Transport {
clientID: this.lobbyConfig.clientID,
persistentID: this.lobbyConfig.persistentID,
log: event.log,
severity: event.severity,
})
)
)