1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-11-23 22:22:34 +02:00

Statistics fix join_count and maps_played

This commit is contained in:
Gerkiz
2025-11-13 21:03:41 +01:00
parent 768097b656
commit ab8d49431b

View File

@@ -22,7 +22,6 @@ local events =
machines_built = e.on_built_entity,
items_picked_up = e.on_picked_up_item,
tiles_built = e.on_player_built_tile,
join_count = e.on_player_joined_game,
deaths = e.on_player_died,
entities_repaired = e.on_player_repaired_entity,
items_crafted = e.on_player_crafted_item,
@@ -118,7 +117,7 @@ end
local function get_data(player)
local player_index = player and type(player) == 'number' and player or player and player.valid and player.index or false
if not player_index then
log('Invalid player index at get_data')
Server.output_script_data('Invalid player index at statistics:get_data')
return false
end
@@ -193,6 +192,28 @@ local try_upload_data_token =
end
)
local on_player_created_token =
Token.register(
function (event)
local player = game.get_player(event.player_index)
if not player or not player.valid then
return
end
get_data(player):increase('maps_played')
end
)
local on_player_joined_game_token =
Token.register(
function (event)
local player = game.get_player(event.player_index)
if not player or not player.valid then
return
end
get_data(player):increase('join_count')
end
)
-- Increase a statistic by a delta value
function Public:increase(name, delta)
if not self[name] then
@@ -299,6 +320,8 @@ Event.add(
e.on_player_joined_game,
function (event)
get_data(event.player_index):try_get_data()
set_timeout_in_ticks(10, on_player_joined_game_token, { player_index = event.player_index })
end
)
@@ -497,7 +520,7 @@ Event.on_nth_tick(
Event.add(
e.on_player_created,
function (event)
get_data(event.player_index):increase('maps_played')
set_timeout_in_ticks(10, on_player_created_token, { player_index = event.player_index })
end
)