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": {
|
"engines": {
|
||||||
"node": "~14.19.1"
|
"node": "~14.19.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lua-types": "^2.11.0",
|
"lua-types": "^2.11.0",
|
||||||
"typescript-to-lua": "1.4.4",
|
"typescript-to-lua": "1.4.4",
|
||||||
|
|
@ -17,7 +18,10 @@
|
||||||
"typescript": "4.6.2"
|
"typescript": "4.6.2"
|
||||||
},
|
},
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"peerDependencies": {},
|
"peerDependencies": {
|
||||||
"optionalDependencies": {},
|
},
|
||||||
"bundledDependencies": []
|
"optionalDependencies": {
|
||||||
|
},
|
||||||
|
"bundledDependencies": [
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ type PlayerUpdateEvent =
|
||||||
function playerUpdateThrottle(
|
function playerUpdateThrottle(
|
||||||
event: PlayerUpdateEvent,
|
event: PlayerUpdateEvent,
|
||||||
mutate: PlayerUpdater,
|
mutate: PlayerUpdater,
|
||||||
|
expirationDurationTicks: uint | undefined = undefined,
|
||||||
) {
|
) {
|
||||||
const playerIndex = event.player_index
|
const playerIndex = event.player_index
|
||||||
if (playerIndex == undefined) {
|
if (playerIndex == undefined) {
|
||||||
|
|
@ -42,10 +43,20 @@ function playerUpdateThrottle(
|
||||||
data.events ??= {}
|
data.events ??= {}
|
||||||
data.events[eventName] ??= []
|
data.events[eventName] ??= []
|
||||||
data.events[eventName].push(event.tick)
|
data.events[eventName].push(event.tick)
|
||||||
}
|
},
|
||||||
|
expirationDurationTicks
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function playerUpdateImmediate(
|
||||||
|
event: PlayerUpdateEvent,
|
||||||
|
mutate: PlayerUpdater,
|
||||||
|
) {
|
||||||
|
playerUpdateThrottle(event, mutate, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// function playerUpdateDebounce(playerIndex: uint, mutate: PlayerUpdater) {
|
// function playerUpdateDebounce(playerIndex: uint, mutate: PlayerUpdater) {
|
||||||
// EventUpdatesManager.debounce<"PLAYER">(
|
// EventUpdatesManager.debounce<"PLAYER">(
|
||||||
// {index: playerIndex, updateType: "PLAYER"},
|
// {index: playerIndex, updateType: "PLAYER"},
|
||||||
|
|
@ -151,7 +162,7 @@ function handleBannedEvent(event: OnPlayerBannedEvent | OnPlayerUnbannedEvent) {
|
||||||
script.on_event(
|
script.on_event(
|
||||||
defines.events.on_player_kicked,
|
defines.events.on_player_kicked,
|
||||||
(event: OnPlayerKickedEvent) => {
|
(event: OnPlayerKickedEvent) => {
|
||||||
playerUpdateThrottle(
|
playerUpdateImmediate(
|
||||||
event,
|
event,
|
||||||
(player, data) => {
|
(player, data) => {
|
||||||
data.kickedReason = event.reason ?? null
|
data.kickedReason = event.reason ?? null
|
||||||
|
|
@ -170,7 +181,7 @@ for (const [name, disconnectId] of pairs(defines.disconnect_reason)) {
|
||||||
script.on_event(
|
script.on_event(
|
||||||
defines.events.on_pre_player_left_game,
|
defines.events.on_pre_player_left_game,
|
||||||
(event: OnPrePlayerLeftGameEvent) => {
|
(event: OnPrePlayerLeftGameEvent) => {
|
||||||
playerUpdateThrottle(
|
playerUpdateImmediate(
|
||||||
event,
|
event,
|
||||||
(player, data) => {
|
(player, data) => {
|
||||||
data.disconnectReason = disconnectReasons.get(event.reason)
|
data.disconnectReason = disconnectReasons.get(event.reason)
|
||||||
|
|
@ -183,7 +194,7 @@ script.on_event(
|
||||||
script.on_event(
|
script.on_event(
|
||||||
defines.events.on_player_removed,
|
defines.events.on_player_removed,
|
||||||
(event: OnPlayerRemovedEvent) => {
|
(event: OnPlayerRemovedEvent) => {
|
||||||
playerUpdateThrottle(
|
playerUpdateImmediate(
|
||||||
event,
|
event,
|
||||||
(player, data) => {
|
(player, data) => {
|
||||||
data.isRemoved = true
|
data.isRemoved = true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue