diff --git a/locale/en/commands.cfg b/locale/en/commands.cfg index 4255195b..1cb2e86f 100644 --- a/locale/en/commands.cfg +++ b/locale/en/commands.cfg @@ -87,5 +87,6 @@ response=Last location of __1__ was [gps=__2__,__3__] [expcom-admin-marker] exit=You have left admin marker mode, all new makers will not be protected. enter=You have entered admin marker mode, all new makers will be protected. +place=You have placed an admin marker. edit=You have edited an admin marker. revert=You cannot edit admin markers. \ No newline at end of file diff --git a/modules/commands/admin-markers.lua b/modules/commands/admin-markers.lua index cc43510b..95062705 100644 --- a/modules/commands/admin-markers.lua +++ b/modules/commands/admin-markers.lua @@ -36,16 +36,24 @@ Commands.new_command('admin-marker', 'Toggles admin marker mode, new markers can end end) ---- Listen for new map markers being added +--- Listen for new map markers being added, add admin marker if done by player in admin mode Event.add(defines.events.on_chart_tag_added, function(event) if not event.player_index then return end local player = game.get_player(event.player_index) if not admins[player.name] then return end local tag = event.tag markers[tag.force.name..tag.tag_number] = true + Commands.print({'expcom-admin-marker.place'}, nil, player) end) ---- Listen for tags being removed or edited +--- Listen for players leaving the game, leave admin mode to avoid unexpected admin markers +Event.add(defines.events.on_player_left_game, function(event) + if not event.player_index then return end + local player = game.get_player(event.player_index) + admins[player.name] = nil +end) + +--- Listen for tags being removed or edited, maintain tags edited by non admins local function maintain_tag(event) local tag = event.tag if not event.player_index then return end