mod: try immediately outputting player logoff events
This commit is contained in:
parent
3416ae2758
commit
9278172412
2 changed files with 23 additions and 8 deletions
|
|
@ -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": [
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue