Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logging #313

Merged
merged 11 commits into from
Aug 25, 2024
Merged
1 change: 1 addition & 0 deletions config/_file_loader.lua
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ return {
'modules.addons.nukeprotect',
'modules.addons.inserter',
'modules.addons.miner',
'modules.addons.logging',

-- Control
'modules.control.vlayer',
Expand Down
43 changes: 43 additions & 0 deletions config/logging.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
--- Settings for logging
-- @config logging

return {
file_name = 'log/logging.log',
rocket_launch_display = {
[1] = true,
[2] = true,
[5] = true,
[10] = true,
[20] = true,
[50] = true,
[100] = true,
[200] = true,
[500] = true,
[1000] = true,
[2000] = true,
[5000] = true,
[10000] = true,
[20000] = true,
[50000] = true,
[100000] = true,
[200000] = true,
[500000] = true,
[1000000] = true,
[2000000] = true,
[5000000] = true,
[10000000] = true
},
disconnect_reason = {
[defines.disconnect_reason.quit] = ' left the game',
[defines.disconnect_reason.dropped] = ' was dropped from the game',
[defines.disconnect_reason.reconnect] = ' is reconnecting',
[defines.disconnect_reason.wrong_input] = ' was having a wrong input',
[defines.disconnect_reason.desync_limit_reached] = ' had desync limit reached',
[defines.disconnect_reason.cannot_keep_up] = ' cannot keep up',
[defines.disconnect_reason.afk] = ' was afk',
[defines.disconnect_reason.kicked] = ' was kicked',
[defines.disconnect_reason.kicked_and_deleted] = ' was kicked and deleted',
[defines.disconnect_reason.banned] = ' was banned',
[defines.disconnect_reason.switching_servers] = ' is switching servers'
}
}
71 changes: 71 additions & 0 deletions modules/addons/logging.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
--[[-- Addon Logging
@addon Logging
]]

local Event = require 'utils.event' --- @dep utils.event
local config = require 'config.logging' --- @dep config.logging
local config_res = require 'config.research' --- @dep config.research

local function add_log(data)
game.write_file(config.file_name, data .. '\n', true, 0)
end

Event.add(defines.events.on_rocket_launched, function(event)
if event and event.rocket and event.rocket.force and event.rocket.force.rockets_launched then
if config.rocket_launch_display[event.rocket.force.rockets_launched] then
add_log('[ROCKET] ' .. event.rocket.force.rockets_launched .. ' rockets launched')
end
end
end)

Event.add(defines.events.on_pre_player_died, function(event)
if event and event.player_index then
if event.cause then
if event.cause.type and event.cause.type == 'character' and event.cause.player and event.cause.player.index then
add_log('[DEATH] ' .. game.players[event.player_index].name .. ' died because of ' .. (game.players[event.cause.player.index].name or ' unknown reason'))

else
add_log('[DEATH] ' .. game.players[event.player_index].name .. ' died because of ' .. (event.cause.name or ' unknown reason'))
end

else
add_log('[DEATH] ' .. game.players[event.player_index].name .. ' died because of unknown reason')
end
end
end)

Event.add(defines.events.on_research_finished, function(event)
if event and event.research then
if event.by_script then
return
end

if event.research.level and event.research.level > 1 then
if config_res.inf_res[event.research.name] and (event.research.level >= config_res.inf_res[event.research.name]) then
add_log('[RES] ' .. string.match(event.research.name, '^(.-)%-%d+$'):gsub('-', ' ') .. ' at level ' .. (event.research.level - 1) .. ' has been researched')
else
add_log('[RES] ' .. string.match(event.research.name, '^(.-)%-%d+$'):gsub('-', ' ') .. ' at level ' .. event.research.level .. ' has been researched')
end

else
add_log('[RES] ' .. string.match(event.research.name, '^(.-)%-%d+$'):gsub('-', ' ') .. ' has been researched')
end
end
end)

Event.add(defines.events.on_player_joined_game, function(event)
if event and event.player_index then
add_log('[JOIN] ' .. game.players[event.player_index].name .. ' joined the game')
end
end)

Event.add(defines.events.on_player_left_game, function(event)
if event and event.player_index then
if event.reason then
add_log('[LEAVE] ' .. game.players[event.player_index].name .. config.disconnect_reason[event.reason])

else
add_log('[LEAVE] ' .. game.players[event.player_index].name .. config.disconnect_reason[defines.disconnect_reason.quit])
end
end
end)
Loading