1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2024-12-12 10:04:40 +02:00

Added missing require user_groups into nuke_control.lua

- Fixed bugs in user_groups
- Moved get_actor into utils/utils.lua
This commit is contained in:
Valansch 2018-06-02 17:17:54 +02:00
parent 440709c5ef
commit 43d1eb0ad6
4 changed files with 21 additions and 55 deletions

View File

@ -236,7 +236,7 @@ end
Event.add(defines.events.on_built_entity, built_entity) Event.add(defines.events.on_built_entity, built_entity)
local function toggle_tp_mode(cmd) local function toggle_tp_mode(cmd)
if not (game.player and (game.player.admin or UserGroups.is_mod(game.player.name))) then if not (game.player and game.player.admin) then
cant_run(cmd.name) cant_run(cmd.name)
return return
end end
@ -367,7 +367,7 @@ local function tempban(cmd)
end end
local group = get_group() local group = get_group()
game.print(UserGroups.get_actor() .. " put " .. params[1] .. " in timeout for " .. params[2] .. " minutes.") game.print(get_actor() .. " put " .. params[1] .. " in timeout for " .. params[2] .. " minutes.")
if group then if group then
group.add_player(params[1]) group.add_player(params[1])
if not tonumber(cmd.parameter) then if not tonumber(cmd.parameter) then

View File

@ -1,14 +1,14 @@
local Event = require "utils.event" local Event = require "utils.event"
local UserGroups = require "user_groups"
function allowed_to_nuke(player) function allowed_to_nuke(player)
if type(player) == "table" then if type(player) == "table" then
return player.admin or is_mod(player.name) or is_regular(player.name) or ((player.online_time / 216000) > global.scenario.config.nuke_min_time_hours) return player.admin or UserGroups.is_regular(player.name) or ((player.online_time / 216000) > global.scenario.config.nuke_min_time_hours)
elseif type(player) == "number" then elseif type(player) == "number" then
return allowed_to_nuke(game.players[player]) return allowed_to_nuke(game.players[player])
end end
end end
local function ammo_changed(event) local function ammo_changed(event)
local player = game.players[event.player_index] local player = game.players[event.player_index]
if allowed_to_nuke(player) then return end if allowed_to_nuke(player) then return end
@ -19,7 +19,6 @@ local function ammo_changed(event)
end end
end end
local function on_player_deconstructed_area(event) local function on_player_deconstructed_area(event)
local player = game.players[event.player_index] local player = game.players[event.player_index]
if allowed_to_nuke(player) then return end if allowed_to_nuke(player) then return end
@ -41,45 +40,12 @@ local function on_player_deconstructed_area(event)
end end
end end
local function log_on_player_mined_entity(str, event)
game.write_file("on_player_mined_entity_debug", game.tick .. " (" .. game.players[event.player_index].name .. ") " .. str .. "\n", true, 0)
end
global.on_player_mined_item_enabled = true
global.on_player_mined_item_init = true
--Never knew the debug code made it into the codebase lol
local function on_player_mined_item(event)
log_on_player_mined_entity("nuke_control.on_player_mined_item: entry", event)
if global.on_player_mined_item_enabled then
log_on_player_mined_entity("nuke_control.on_player_mined_item: enabled", event)
if global.on_player_mined_item_init then
log_on_player_mined_entity("nuke_control.on_player_mined_item: init", event)
game.forces.enemy.research_all_technologies() --avoids losing logstics slot configuration on force toggle
global.on_player_mined_item_init = false
end
local entity = event.entity
if entity.valid and entity.force.name ~= "enemy" and entity.force.name ~= "neutral" and entity.name ~= "entity-ghost" and entity.type ~= "logistic-robot" and entity.type ~= "construction-robot" then
log_on_player_mined_entity("nuke_control.on_player_mined_item: in body", event)
local entity_name = entity.name
if entity_name == "pipe-to-ground" then entity_name = "pipe" end
log_on_player_mined_entity("nuke_control.on_player_mined_item: before ghost placement", event)
local ghost = event.entity.surface.create_entity{name = "entity-ghost", position = event.entity.position, inner_name = entity_name, expires = false, force = "enemy", direction = event.entity.direction}
log_on_player_mined_entity("nuke_control.on_player_mined_item: ghost placed", event)
ghost.last_user = event.player_index
log_on_player_mined_entity("nuke_control.on_player_mined_item: last user set", event)
end
end
log_on_player_mined_entity("nuke_control.on_player_mined_item: exit", event)
end
local function item_not_sanctioned(item) local function item_not_sanctioned(item)
local name = item.name local name = item.name
return ( return (
name:find("capsule") or name:find("capsule") or
name == "cliff-explosives" or name == "cliff-explosives" or
name == "raw-fish" or name == "raw-fish" or
name == "discharge-defense-remote" name == "discharge-defense-remote"
) )
end end
@ -103,8 +69,8 @@ local function on_capsule_used(event)
local area = {{event.position.x-5, event.position.y-5}, {event.position.x+5, event.position.y+5}} local area = {{event.position.x-5, event.position.y-5}, {event.position.x+5, event.position.y+5}}
local count = 0 local count = 0
local entities = player.surface.find_entities_filtered{force=player.force, area=area} local entities = player.surface.find_entities_filtered{force=player.force, area=area}
for _,e in pairs(entities) do for _,e in pairs(entities) do
if not entity_allowed_to_bomb(e) then count = count + 1 end if not entity_allowed_to_bomb(e) then count = count + 1 end
end end
if count > 8 then if count > 8 then
if global.players_warned[event.player_index] then if global.players_warned[event.player_index] then
@ -121,4 +87,3 @@ Event.add(defines.events.on_player_ammo_inventory_changed, ammo_changed)
Event.add(defines.events.on_player_deconstructed_area, on_player_deconstructed_area) Event.add(defines.events.on_player_deconstructed_area, on_player_deconstructed_area)
--Event.add(defines.events.on_player_mined_entity, on_player_mined_item) --Event.add(defines.events.on_player_mined_entity, on_player_mined_item)
Event.add(defines.events.on_player_used_capsule, on_capsule_used) Event.add(defines.events.on_player_used_capsule, on_capsule_used)

View File

@ -4,29 +4,25 @@ local Event = require "utils.event"
local Module = {} local Module = {}
local function update_file() local function update_file()
local file = position .. ".lua" local file = "regulars.lua"
game.write_file(file, "{", false, 0) game.write_file(file, "{", false, 0)
local group = global[position]
local line = "" local line = ""
for player_name,_ in pairs(group) do for player_name,_ in pairs(global.regulars) do
line = string.format('["%s"] = "",\n', player_name) line = string.format('["%s"] = "",\n', player_name)
game.write_file(file, line, true, 0) game.write_file(file, line, true, 0)
end end
game.write_file(file, "}", true, 0) game.write_file(file, "}", true, 0)
end end
Module.get_actor = function()
if game.player then return game.player.name end
return "<server>"
end
local is_regular = function(player_name)
return cast_bool(global.regulars[player_name] or global.regulars[player_name:lower()]) --to make it backwards compatible Module.is_regular = function(player_name)
return false or global.regulars[player_name] or global.regulars[player_name:lower()] --to make it backwards compatible
end end
Module.add_regular = function(player_name) Module.add_regular = function(player_name)
local actor = get_actor() local actor = get_actor()
if is_regular(player_name) then player_print(player_name .. " is already a regular.") if Module.is_regular(player_name) then player_print(player_name .. " is already a regular.")
else else
if game.players[player_name] then if game.players[player_name] then
player_name = game.players[player_name].name player_name = game.players[player_name].name
@ -43,7 +39,7 @@ Module.remove_regular = function(player_name)
local actor = get_actor() local actor = get_actor()
if game.players[player_name] then if game.players[player_name] then
player_name = game.players[player_name].name player_name = game.players[player_name].name
if is_regular(player_name) then game.print(player_name .. " was demoted from regular by " .. actor .. ".") end if Module.is_regular(player_name) then game.print(player_name .. " was demoted from regular by " .. actor .. ".") end
global.regulars[player_name] = nil global.regulars[player_name] = nil
global.regulars[player_name:lower()] = nil --backwards compatible global.regulars[player_name:lower()] = nil --backwards compatible
update_file() update_file()

View File

@ -496,3 +496,8 @@ function print_admins(msg)
end end
end end
end end
function get_actor()
if game.player then return game.player.name end
return "<server>"
end