From 9278172412a71fb1903ed3c7564cb858ba81491e Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 24 May 2022 17:40:21 +0200 Subject: [PATCH] mod: try immediately outputting player logoff events --- modules/events-mod/package.json | 12 ++++++++---- .../main/events/onPlayerEventListeners.ts | 19 +++++++++++++++---- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/modules/events-mod/package.json b/modules/events-mod/package.json index 00a1cab..7116cf1 100644 --- a/modules/events-mod/package.json +++ b/modules/events-mod/package.json @@ -9,7 +9,8 @@ "engines": { "node": "~14.19.1" }, - "devDependencies": {}, + "devDependencies": { + }, "dependencies": { "lua-types": "^2.11.0", "typescript-to-lua": "1.4.4", @@ -17,7 +18,10 @@ "typescript": "4.6.2" }, "license": "UNLICENSED", - "peerDependencies": {}, - "optionalDependencies": {}, - "bundledDependencies": [] + "peerDependencies": { + }, + "optionalDependencies": { + }, + "bundledDependencies": [ + ] } diff --git a/modules/events-mod/src/main/typescript/main/events/onPlayerEventListeners.ts b/modules/events-mod/src/main/typescript/main/events/onPlayerEventListeners.ts index fc3f751..500bb64 100644 --- a/modules/events-mod/src/main/typescript/main/events/onPlayerEventListeners.ts +++ b/modules/events-mod/src/main/typescript/main/events/onPlayerEventListeners.ts @@ -22,6 +22,7 @@ type PlayerUpdateEvent = function playerUpdateThrottle( event: PlayerUpdateEvent, mutate: PlayerUpdater, + expirationDurationTicks: uint | undefined = undefined, ) { const playerIndex = event.player_index if (playerIndex == undefined) { @@ -42,10 +43,20 @@ function playerUpdateThrottle( data.events ??= {} data.events[eventName] ??= [] data.events[eventName].push(event.tick) - } + }, + expirationDurationTicks ) } + +function playerUpdateImmediate( + event: PlayerUpdateEvent, + mutate: PlayerUpdater, +) { + playerUpdateThrottle(event, mutate, 0) +} + + // function playerUpdateDebounce(playerIndex: uint, mutate: PlayerUpdater) { // EventUpdatesManager.debounce<"PLAYER">( // {index: playerIndex, updateType: "PLAYER"}, @@ -151,7 +162,7 @@ function handleBannedEvent(event: OnPlayerBannedEvent | OnPlayerUnbannedEvent) { script.on_event( defines.events.on_player_kicked, (event: OnPlayerKickedEvent) => { - playerUpdateThrottle( + playerUpdateImmediate( event, (player, data) => { data.kickedReason = event.reason ?? null @@ -170,7 +181,7 @@ for (const [name, disconnectId] of pairs(defines.disconnect_reason)) { script.on_event( defines.events.on_pre_player_left_game, (event: OnPrePlayerLeftGameEvent) => { - playerUpdateThrottle( + playerUpdateImmediate( event, (player, data) => { data.disconnectReason = disconnectReasons.get(event.reason) @@ -183,7 +194,7 @@ script.on_event( script.on_event( defines.events.on_player_removed, (event: OnPlayerRemovedEvent) => { - playerUpdateThrottle( + playerUpdateImmediate( event, (player, data) => { data.isRemoved = true