You've already forked ComfyFactorio
mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-09-16 09:06:21 +02:00
added global disable antigrief to config panel
This commit is contained in:
@@ -18,6 +18,7 @@ local de = defines.events
|
||||
local format = string.format
|
||||
|
||||
local this = {
|
||||
enabled = true,
|
||||
landfill_history = {},
|
||||
capsule_history = {},
|
||||
friendly_fire_history = {},
|
||||
@@ -170,6 +171,9 @@ local function do_action(player, prefix, msg, ban_msg, kill)
|
||||
end
|
||||
|
||||
local function on_marked_for_deconstruction(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local tracker = session.get_session_table()
|
||||
local trusted = session.get_trusted_table()
|
||||
if not event.player_index then
|
||||
@@ -194,6 +198,9 @@ local function on_marked_for_deconstruction(event)
|
||||
end
|
||||
|
||||
local function on_player_ammo_inventory_changed(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local tracker = session.get_session_table()
|
||||
local trusted = session.get_trusted_table()
|
||||
local player = game.get_player(event.player_index)
|
||||
@@ -221,12 +228,23 @@ end
|
||||
|
||||
local function on_player_joined_game(event)
|
||||
local player = game.get_player(event.player_index)
|
||||
local trusted = session.get_trusted_table()
|
||||
if not this.enabled then
|
||||
if not trusted[player.name] then
|
||||
trusted[player.name] = true
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
if match(player.name, '^[Ili1|]+$') then
|
||||
Server.ban_sync(player.name, '', '<script>') -- No reason given, to not give them any hints to change their name
|
||||
end
|
||||
end
|
||||
|
||||
local function on_player_built_tile(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local placed_tiles = event.tiles
|
||||
if
|
||||
placed_tiles[1].old_tile.name ~= 'deepwater' and placed_tiles[1].old_tile.name ~= 'water' and
|
||||
@@ -259,6 +277,9 @@ local function on_player_built_tile(event)
|
||||
end
|
||||
|
||||
local function on_built_entity(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local tracker = session.get_session_table()
|
||||
local trusted = session.get_trusted_table()
|
||||
if game.tick < 1296000 then
|
||||
@@ -289,6 +310,9 @@ end
|
||||
|
||||
--Capsule History and Antigrief
|
||||
local function on_player_used_capsule(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local trusted = session.get_trusted_table()
|
||||
local player = game.get_player(event.player_index)
|
||||
|
||||
@@ -370,6 +394,9 @@ end
|
||||
|
||||
-- Damage things
|
||||
local function on_entity_damaged(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local cause = event.cause
|
||||
if not cause or not cause.valid or cause.force.index ~= 1 then
|
||||
return
|
||||
@@ -497,6 +524,9 @@ end
|
||||
|
||||
--Friendly Fire History
|
||||
local function on_entity_died(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local cause = event.cause
|
||||
local name
|
||||
|
||||
@@ -579,6 +609,9 @@ end
|
||||
|
||||
--Mining Thieves History
|
||||
local function on_player_mined_entity(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local player = game.get_player(event.player_index)
|
||||
if not player or not player.valid then
|
||||
return
|
||||
@@ -644,6 +677,9 @@ local function on_player_mined_entity(event)
|
||||
end
|
||||
|
||||
local function on_gui_opened(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
if not event.entity then
|
||||
return
|
||||
end
|
||||
@@ -689,6 +725,9 @@ local function on_gui_opened(event)
|
||||
end
|
||||
|
||||
local function on_pre_player_mined_item(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local player = game.get_player(event.player_index)
|
||||
|
||||
if not player or not player.valid then
|
||||
@@ -740,6 +779,9 @@ local function on_pre_player_mined_item(event)
|
||||
end
|
||||
|
||||
local function on_player_cursor_stack_changed(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local tracker = session.get_session_table()
|
||||
local trusted = session.get_trusted_table()
|
||||
local player = game.get_player(event.player_index)
|
||||
@@ -781,6 +823,9 @@ local function on_player_cursor_stack_changed(event)
|
||||
end
|
||||
|
||||
local function on_player_cancelled_crafting(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local player = game.get_player(event.player_index)
|
||||
|
||||
local crafting_queue_item_count = event.items.get_item_count()
|
||||
@@ -830,6 +875,9 @@ local function on_player_cancelled_crafting(event)
|
||||
end
|
||||
|
||||
local function on_init()
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local branch_version = '0.18.35'
|
||||
local sub = string.sub
|
||||
local is_branch_18 = sub(branch_version, 3, 4)
|
||||
@@ -847,6 +895,9 @@ local function on_init()
|
||||
end
|
||||
|
||||
local function on_permission_group_added(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local player = game.get_player(event.player_index)
|
||||
if not player or not player.valid then
|
||||
return
|
||||
@@ -860,6 +911,9 @@ local function on_permission_group_added(event)
|
||||
end
|
||||
|
||||
local function on_permission_group_deleted(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local player = game.get_player(event.player_index)
|
||||
if not player or not player.valid then
|
||||
return
|
||||
@@ -873,6 +927,9 @@ local function on_permission_group_deleted(event)
|
||||
end
|
||||
|
||||
local function on_permission_group_edited(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local player = game.get_player(event.player_index)
|
||||
if not player or not player.valid then
|
||||
return
|
||||
@@ -912,6 +969,9 @@ local function on_permission_group_edited(event)
|
||||
end
|
||||
|
||||
local function on_permission_string_imported(event)
|
||||
if not this.enabled then
|
||||
return
|
||||
end
|
||||
local player = game.get_player(event.player_index)
|
||||
if not player or not player.valid then
|
||||
return
|
||||
|
@@ -1,256 +1,389 @@
|
||||
-- config tab --
|
||||
|
||||
local Tabs = require 'comfy_panel.main'
|
||||
local Antigrief = require 'antigrief'
|
||||
local SessionData = require 'utils.datastore.session_data'
|
||||
|
||||
local spaghett_entity_blacklist = {
|
||||
["logistic-chest-requester"] = true,
|
||||
["logistic-chest-buffer"] = true,
|
||||
["logistic-chest-active-provider"] = true,
|
||||
['logistic-chest-requester'] = true,
|
||||
['logistic-chest-buffer'] = true,
|
||||
['logistic-chest-active-provider'] = true
|
||||
}
|
||||
|
||||
local function get_actor(event, action)
|
||||
local player = game.get_player(event.player_index)
|
||||
if not player or not player.valid then
|
||||
return
|
||||
end
|
||||
print(player.name .. ' ' .. action)
|
||||
end
|
||||
|
||||
local function spaghett_deny_building(event)
|
||||
local spaghett = global.comfy_panel_config.spaghett
|
||||
if not spaghett.enabled then return end
|
||||
local entity = event.created_entity
|
||||
if not entity.valid then return end
|
||||
if not spaghett_entity_blacklist[event.created_entity.name] then return end
|
||||
local spaghett = global.comfy_panel_config.spaghett
|
||||
if not spaghett.enabled then
|
||||
return
|
||||
end
|
||||
local entity = event.created_entity
|
||||
if not entity.valid then
|
||||
return
|
||||
end
|
||||
if not spaghett_entity_blacklist[event.created_entity.name] then
|
||||
return
|
||||
end
|
||||
|
||||
if event.player_index then
|
||||
game.players[event.player_index].insert({name = entity.name, count = 1})
|
||||
else
|
||||
local inventory = event.robot.get_inventory(defines.inventory.robot_cargo)
|
||||
inventory.insert({name = entity.name, count = 1})
|
||||
end
|
||||
if event.player_index then
|
||||
game.players[event.player_index].insert({name = entity.name, count = 1})
|
||||
else
|
||||
local inventory = event.robot.get_inventory(defines.inventory.robot_cargo)
|
||||
inventory.insert({name = entity.name, count = 1})
|
||||
end
|
||||
|
||||
event.created_entity.surface.create_entity({
|
||||
name = "flying-text",
|
||||
position = entity.position,
|
||||
text = "Spaghett Mode Active!",
|
||||
color = {r=0.98, g=0.66, b=0.22}
|
||||
})
|
||||
event.created_entity.surface.create_entity(
|
||||
{
|
||||
name = 'flying-text',
|
||||
position = entity.position,
|
||||
text = 'Spaghett Mode Active!',
|
||||
color = {r = 0.98, g = 0.66, b = 0.22}
|
||||
}
|
||||
)
|
||||
|
||||
entity.destroy()
|
||||
entity.destroy()
|
||||
end
|
||||
|
||||
local function spaghett()
|
||||
local spaghett = global.comfy_panel_config.spaghett
|
||||
if spaghett.enabled then
|
||||
for _, f in pairs(game.forces) do
|
||||
if f.technologies["logistic-system"].researched then
|
||||
spaghett.undo[f.index] = true
|
||||
end
|
||||
f.technologies["logistic-system"].enabled = false
|
||||
f.technologies["logistic-system"].researched = false
|
||||
end
|
||||
else
|
||||
for _, f in pairs(game.forces) do
|
||||
f.technologies["logistic-system"].enabled = true
|
||||
if spaghett.undo[f.index] then
|
||||
f.technologies["logistic-system"].researched = true
|
||||
spaghett.undo[f.index] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
local spaghett = global.comfy_panel_config.spaghett
|
||||
if spaghett.enabled then
|
||||
for _, f in pairs(game.forces) do
|
||||
if f.technologies['logistic-system'].researched then
|
||||
spaghett.undo[f.index] = true
|
||||
end
|
||||
f.technologies['logistic-system'].enabled = false
|
||||
f.technologies['logistic-system'].researched = false
|
||||
end
|
||||
else
|
||||
for _, f in pairs(game.forces) do
|
||||
f.technologies['logistic-system'].enabled = true
|
||||
if spaghett.undo[f.index] then
|
||||
f.technologies['logistic-system'].researched = true
|
||||
spaghett.undo[f.index] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function trust_connected_players()
|
||||
local trust = SessionData.get_trusted_table()
|
||||
local AG = Antigrief.get()
|
||||
local players = game.connected_players
|
||||
if not AG.enabled then
|
||||
for _, p in pairs(players) do
|
||||
trust[p.name] = true
|
||||
end
|
||||
else
|
||||
for _, p in pairs(players) do
|
||||
trust[p.name] = false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local functions = {
|
||||
["comfy_panel_spectator_switch"] = function(event)
|
||||
if event.element.switch_state == "left" then
|
||||
game.players[event.player_index].spectator = true
|
||||
else
|
||||
game.players[event.player_index].spectator = false
|
||||
end
|
||||
end,
|
||||
|
||||
["comfy_panel_auto_hotbar_switch"] = function(event)
|
||||
if event.element.switch_state == "left" then
|
||||
global.auto_hotbar_enabled[event.player_index] = true
|
||||
else
|
||||
global.auto_hotbar_enabled[event.player_index] = false
|
||||
end
|
||||
end,
|
||||
["comfy_panel_blueprint_toggle"] = function(event)
|
||||
if event.element.switch_state == "left" then
|
||||
game.permissions.get_group("Default").set_allows_action(defines.input_action.open_blueprint_library_gui, true)
|
||||
game.permissions.get_group("Default").set_allows_action(defines.input_action.import_blueprint_string, true)
|
||||
else
|
||||
game.permissions.get_group("Default").set_allows_action(defines.input_action.open_blueprint_library_gui, false)
|
||||
game.permissions.get_group("Default").set_allows_action(defines.input_action.import_blueprint_string, false)
|
||||
end
|
||||
end,
|
||||
["comfy_panel_spaghett_toggle"] = function(event)
|
||||
if event.element.switch_state == "left" then
|
||||
global.comfy_panel_config.spaghett.enabled = true
|
||||
else
|
||||
global.comfy_panel_config.spaghett.enabled = nil
|
||||
end
|
||||
spaghett()
|
||||
end,
|
||||
['comfy_panel_spectator_switch'] = function(event)
|
||||
if event.element.switch_state == 'left' then
|
||||
game.players[event.player_index].spectator = true
|
||||
else
|
||||
game.players[event.player_index].spectator = false
|
||||
end
|
||||
end,
|
||||
['comfy_panel_auto_hotbar_switch'] = function(event)
|
||||
if event.element.switch_state == 'left' then
|
||||
global.auto_hotbar_enabled[event.player_index] = true
|
||||
else
|
||||
global.auto_hotbar_enabled[event.player_index] = false
|
||||
end
|
||||
end,
|
||||
['comfy_panel_blueprint_toggle'] = function(event)
|
||||
if event.element.switch_state == 'left' then
|
||||
game.permissions.get_group('Default').set_allows_action(
|
||||
defines.input_action.open_blueprint_library_gui,
|
||||
true
|
||||
)
|
||||
game.permissions.get_group('Default').set_allows_action(defines.input_action.import_blueprint_string, true)
|
||||
else
|
||||
game.permissions.get_group('Default').set_allows_action(
|
||||
defines.input_action.open_blueprint_library_gui,
|
||||
false
|
||||
)
|
||||
game.permissions.get_group('Default').set_allows_action(defines.input_action.import_blueprint_string, false)
|
||||
end
|
||||
end,
|
||||
['comfy_panel_spaghett_toggle'] = function(event)
|
||||
if event.element.switch_state == 'left' then
|
||||
global.comfy_panel_config.spaghett.enabled = true
|
||||
else
|
||||
global.comfy_panel_config.spaghett.enabled = nil
|
||||
end
|
||||
spaghett()
|
||||
end
|
||||
}
|
||||
|
||||
local poll_function = {
|
||||
["comfy_panel_poll_trusted_toggle"] = function(event)
|
||||
if event.element.switch_state == "left" then
|
||||
global.comfy_panel_config.poll_trusted = true
|
||||
else
|
||||
global.comfy_panel_config.poll_trusted = false
|
||||
end
|
||||
end,
|
||||
["comfy_panel_poll_no_notify_toggle"] = function(event)
|
||||
local poll = package.loaded['comfy_panel.poll']
|
||||
local poll_table = poll.get_no_notify_players()
|
||||
if event.element.switch_state == "left" then
|
||||
poll_table[event.player_index] = false
|
||||
else
|
||||
poll_table[event.player_index] = true
|
||||
end
|
||||
end,
|
||||
['comfy_panel_poll_trusted_toggle'] = function(event)
|
||||
if event.element.switch_state == 'left' then
|
||||
global.comfy_panel_config.poll_trusted = true
|
||||
else
|
||||
global.comfy_panel_config.poll_trusted = false
|
||||
end
|
||||
end,
|
||||
['comfy_panel_poll_no_notify_toggle'] = function(event)
|
||||
local poll = package.loaded['comfy_panel.poll']
|
||||
local poll_table = poll.get_no_notify_players()
|
||||
if event.element.switch_state == 'left' then
|
||||
poll_table[event.player_index] = false
|
||||
else
|
||||
poll_table[event.player_index] = true
|
||||
end
|
||||
end
|
||||
}
|
||||
|
||||
local antigrief_functions = {
|
||||
['comfy_panel_disable_antigrief'] = function(event)
|
||||
local AG = Antigrief.get()
|
||||
if event.element.switch_state == 'left' then
|
||||
AG.enabled = true
|
||||
get_actor(event, 'enabled antigrief')
|
||||
else
|
||||
AG.enabled = false
|
||||
get_actor(event, 'disabled antigrief')
|
||||
end
|
||||
trust_connected_players()
|
||||
end
|
||||
}
|
||||
|
||||
local function add_switch(element, switch_state, name, description_main, description)
|
||||
local t = element.add({type = "table", column_count = 5})
|
||||
local label = t.add({type = "label", caption = "ON"})
|
||||
label.style.padding = 0
|
||||
label.style.left_padding= 10
|
||||
label.style.font_color = {0.77, 0.77, 0.77}
|
||||
local switch = t.add({type = "switch", name = name})
|
||||
switch.switch_state = switch_state
|
||||
switch.style.padding = 0
|
||||
switch.style.margin = 0
|
||||
local label = t.add({type = "label", caption = "OFF"})
|
||||
label.style.padding = 0
|
||||
label.style.font_color = {0.70, 0.70, 0.70}
|
||||
local t = element.add({type = 'table', column_count = 5})
|
||||
local label = t.add({type = 'label', caption = 'ON'})
|
||||
label.style.padding = 0
|
||||
label.style.left_padding = 10
|
||||
label.style.font_color = {0.77, 0.77, 0.77}
|
||||
local switch = t.add({type = 'switch', name = name})
|
||||
switch.switch_state = switch_state
|
||||
switch.style.padding = 0
|
||||
switch.style.margin = 0
|
||||
local label = t.add({type = 'label', caption = 'OFF'})
|
||||
label.style.padding = 0
|
||||
label.style.font_color = {0.70, 0.70, 0.70}
|
||||
|
||||
local label = t.add({type = "label", caption = description_main})
|
||||
label.style.padding = 2
|
||||
label.style.left_padding= 10
|
||||
label.style.minimal_width = 120
|
||||
label.style.font = "heading-2"
|
||||
label.style.font_color = {0.88, 0.88, 0.99}
|
||||
local label = t.add({type = 'label', caption = description_main})
|
||||
label.style.padding = 2
|
||||
label.style.left_padding = 10
|
||||
label.style.minimal_width = 120
|
||||
label.style.font = 'heading-2'
|
||||
label.style.font_color = {0.88, 0.88, 0.99}
|
||||
|
||||
local label = t.add({type = "label", caption = description})
|
||||
label.style.padding = 2
|
||||
label.style.left_padding= 10
|
||||
label.style.single_line = false
|
||||
label.style.font = "heading-3"
|
||||
label.style.font_color = {0.85, 0.85, 0.85}
|
||||
local label = t.add({type = 'label', caption = description})
|
||||
label.style.padding = 2
|
||||
label.style.left_padding = 10
|
||||
label.style.single_line = false
|
||||
label.style.font = 'heading-3'
|
||||
label.style.font_color = {0.85, 0.85, 0.85}
|
||||
|
||||
return switch
|
||||
return switch
|
||||
end
|
||||
|
||||
local build_config_gui = (function (player, frame)
|
||||
frame.clear()
|
||||
local build_config_gui = (function(player, frame)
|
||||
local AG = Antigrief.get()
|
||||
frame.clear()
|
||||
|
||||
local admin = player.admin
|
||||
local admin = player.admin
|
||||
|
||||
local label = frame.add({type = "label", caption = "Player Settings"})
|
||||
label.style.font = "default-bold"
|
||||
label.style.padding = 0
|
||||
label.style.left_padding = 10
|
||||
label.style.horizontal_align = "left"
|
||||
label.style.vertical_align = "bottom"
|
||||
label.style.font_color = {0.55, 0.55, 0.99}
|
||||
local label = frame.add({type = 'label', caption = 'Player Settings'})
|
||||
label.style.font = 'default-bold'
|
||||
label.style.padding = 0
|
||||
label.style.left_padding = 10
|
||||
label.style.horizontal_align = 'left'
|
||||
label.style.vertical_align = 'bottom'
|
||||
label.style.font_color = {0.55, 0.55, 0.99}
|
||||
|
||||
frame.add({type = "line"})
|
||||
frame.add({type = 'line'})
|
||||
|
||||
local switch_state = "right"
|
||||
if player.spectator then switch_state = "left" end
|
||||
add_switch(frame, switch_state, "comfy_panel_spectator_switch", "SpectatorMode", "Toggles zoom-to-world view noise effect.\nEnvironmental sounds will be based on map view.")
|
||||
local switch_state = 'right'
|
||||
if player.spectator then
|
||||
switch_state = 'left'
|
||||
end
|
||||
add_switch(
|
||||
frame,
|
||||
switch_state,
|
||||
'comfy_panel_spectator_switch',
|
||||
'SpectatorMode',
|
||||
'Toggles zoom-to-world view noise effect.\nEnvironmental sounds will be based on map view.'
|
||||
)
|
||||
|
||||
frame.add({type = "line"})
|
||||
frame.add({type = 'line'})
|
||||
|
||||
if global.auto_hotbar_enabled then
|
||||
local switch_state = "right"
|
||||
if global.auto_hotbar_enabled[player.index] then switch_state = "left" end
|
||||
add_switch(frame, switch_state, "comfy_panel_auto_hotbar_switch", "AutoHotbar", "Automatically fills your hotbar with placeable items.")
|
||||
frame.add({type = "line"})
|
||||
end
|
||||
if global.auto_hotbar_enabled then
|
||||
local switch_state = 'right'
|
||||
if global.auto_hotbar_enabled[player.index] then
|
||||
switch_state = 'left'
|
||||
end
|
||||
add_switch(
|
||||
frame,
|
||||
switch_state,
|
||||
'comfy_panel_auto_hotbar_switch',
|
||||
'AutoHotbar',
|
||||
'Automatically fills your hotbar with placeable items.'
|
||||
)
|
||||
frame.add({type = 'line'})
|
||||
end
|
||||
|
||||
if package.loaded['comfy_panel.poll'] then
|
||||
local poll = package.loaded['comfy_panel.poll']
|
||||
local poll_table = poll.get_no_notify_players()
|
||||
local switch_state = "right"
|
||||
if not poll_table[player.index] then switch_state = "left" end
|
||||
local switch = add_switch(frame, switch_state, "comfy_panel_poll_no_notify_toggle", "Notify on polls", "Receive a message when new polls are created and popup the poll.")
|
||||
frame.add({type = "line"})
|
||||
end
|
||||
if package.loaded['comfy_panel.poll'] then
|
||||
local poll = package.loaded['comfy_panel.poll']
|
||||
local poll_table = poll.get_no_notify_players()
|
||||
local switch_state = 'right'
|
||||
if not poll_table[player.index] then
|
||||
switch_state = 'left'
|
||||
end
|
||||
local switch =
|
||||
add_switch(
|
||||
frame,
|
||||
switch_state,
|
||||
'comfy_panel_poll_no_notify_toggle',
|
||||
'Notify on polls',
|
||||
'Receive a message when new polls are created and popup the poll.'
|
||||
)
|
||||
frame.add({type = 'line'})
|
||||
end
|
||||
|
||||
local label = frame.add({type = "label", caption = "Admin Settings"})
|
||||
label.style.font = "default-bold"
|
||||
label.style.padding = 0
|
||||
label.style.left_padding = 10
|
||||
label.style.top_padding = 10
|
||||
label.style.horizontal_align = "left"
|
||||
label.style.vertical_align = "bottom"
|
||||
label.style.font_color = {0.77, 0.11, 0.11}
|
||||
if admin then
|
||||
local label = frame.add({type = 'label', caption = 'Admin Settings'})
|
||||
label.style.font = 'default-bold'
|
||||
label.style.padding = 0
|
||||
label.style.left_padding = 10
|
||||
label.style.top_padding = 10
|
||||
label.style.horizontal_align = 'left'
|
||||
label.style.vertical_align = 'bottom'
|
||||
label.style.font_color = {0.77, 0.11, 0.11}
|
||||
|
||||
frame.add({type = "line"})
|
||||
frame.add({type = 'line'})
|
||||
|
||||
local switch_state = "right"
|
||||
if game.permissions.get_group("Default").allows_action(defines.input_action.open_blueprint_library_gui) then switch_state = "left" end
|
||||
local switch = add_switch(frame, switch_state, "comfy_panel_blueprint_toggle", "Blueprint Library", "Toggles the usage of blueprint strings and the library.")
|
||||
if not admin then switch.ignored_by_interaction = true end
|
||||
local switch_state = 'right'
|
||||
if game.permissions.get_group('Default').allows_action(defines.input_action.open_blueprint_library_gui) then
|
||||
switch_state = 'left'
|
||||
end
|
||||
local switch =
|
||||
add_switch(
|
||||
frame,
|
||||
switch_state,
|
||||
'comfy_panel_blueprint_toggle',
|
||||
'Blueprint Library',
|
||||
'Toggles the usage of blueprint strings and the library.'
|
||||
)
|
||||
|
||||
frame.add({type = "line"})
|
||||
frame.add({type = 'line'})
|
||||
|
||||
local switch_state = "right"
|
||||
if global.comfy_panel_config.spaghett.enabled then switch_state = "left" end
|
||||
local switch = add_switch(frame, switch_state, "comfy_panel_spaghett_toggle", "Spaghett Mode", "Disables the Logistic System research.\nRequester, buffer or active-provider containers can not be built.")
|
||||
if not admin then switch.ignored_by_interaction = true end
|
||||
local switch_state = 'right'
|
||||
if global.comfy_panel_config.spaghett.enabled then
|
||||
switch_state = 'left'
|
||||
end
|
||||
local switch =
|
||||
add_switch(
|
||||
frame,
|
||||
switch_state,
|
||||
'comfy_panel_spaghett_toggle',
|
||||
'Spaghett Mode',
|
||||
'Disables the Logistic System research.\nRequester, buffer or active-provider containers can not be built.'
|
||||
)
|
||||
|
||||
if package.loaded['comfy_panel.poll'] then
|
||||
frame.add({type = "line"})
|
||||
local switch_state = "right"
|
||||
if global.comfy_panel_config.poll_trusted then switch_state = "left" end
|
||||
local switch = add_switch(frame, switch_state, "comfy_panel_poll_trusted_toggle", "Poll mode", "Disables non-trusted plebs to create polls.")
|
||||
if not admin then switch.ignored_by_interaction = true end
|
||||
end
|
||||
if package.loaded['comfy_panel.poll'] then
|
||||
frame.add({type = 'line'})
|
||||
local switch_state = 'right'
|
||||
if global.comfy_panel_config.poll_trusted then
|
||||
switch_state = 'left'
|
||||
end
|
||||
local switch =
|
||||
add_switch(
|
||||
frame,
|
||||
switch_state,
|
||||
'comfy_panel_poll_trusted_toggle',
|
||||
'Poll mode',
|
||||
'Disables non-trusted plebs to create polls.'
|
||||
)
|
||||
end
|
||||
|
||||
frame.add({type = "line"})
|
||||
frame.add({type = 'line'})
|
||||
|
||||
for _, e in pairs(frame.children) do
|
||||
if e.type == "line" then
|
||||
e.style.padding = 0
|
||||
e.style.margin = 0
|
||||
end
|
||||
end
|
||||
local label = frame.add({type = 'label', caption = 'Antigrief Settings'})
|
||||
label.style.font = 'default-bold'
|
||||
label.style.padding = 0
|
||||
label.style.left_padding = 10
|
||||
label.style.top_padding = 10
|
||||
label.style.horizontal_align = 'left'
|
||||
label.style.vertical_align = 'bottom'
|
||||
label.style.font_color = {0.77, 0.11, 0.11}
|
||||
|
||||
local switch_state = 'right'
|
||||
if AG.enabled then
|
||||
switch_state = 'left'
|
||||
end
|
||||
local switch =
|
||||
add_switch(
|
||||
frame,
|
||||
switch_state,
|
||||
'comfy_panel_disable_antigrief',
|
||||
'Antigrief',
|
||||
'Left = enables antigrief / Right = disables antigrief'
|
||||
)
|
||||
|
||||
frame.add({type = 'line'})
|
||||
end
|
||||
for _, e in pairs(frame.children) do
|
||||
if e.type == 'line' then
|
||||
e.style.padding = 0
|
||||
e.style.margin = 0
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
local function on_gui_switch_state_changed(event)
|
||||
if not event.element then return end
|
||||
if not event.element.valid then return end
|
||||
if functions[event.element.name] then
|
||||
functions[event.element.name](event)
|
||||
return
|
||||
elseif package.loaded['comfy_panel.poll'] then
|
||||
if poll_function[event.element.name] then
|
||||
poll_function[event.element.name](event)
|
||||
return
|
||||
end
|
||||
end
|
||||
if not event.element then
|
||||
return
|
||||
end
|
||||
if not event.element.valid then
|
||||
return
|
||||
end
|
||||
if functions[event.element.name] then
|
||||
functions[event.element.name](event)
|
||||
return
|
||||
elseif antigrief_functions[event.element.name] then
|
||||
antigrief_functions[event.element.name](event)
|
||||
return
|
||||
elseif package.loaded['comfy_panel.poll'] then
|
||||
if poll_function[event.element.name] then
|
||||
poll_function[event.element.name](event)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function on_force_created(event)
|
||||
spaghett()
|
||||
local function on_force_created()
|
||||
spaghett()
|
||||
end
|
||||
|
||||
local function on_built_entity(event)
|
||||
spaghett_deny_building(event)
|
||||
spaghett_deny_building(event)
|
||||
end
|
||||
|
||||
local function on_robot_built_entity(event)
|
||||
spaghett_deny_building(event)
|
||||
spaghett_deny_building(event)
|
||||
end
|
||||
|
||||
local function on_init()
|
||||
global.comfy_panel_config = {}
|
||||
global.comfy_panel_config.spaghett = {}
|
||||
global.comfy_panel_config.spaghett.undo = {}
|
||||
global.comfy_panel_config.poll_trusted = false
|
||||
global.comfy_panel_config = {}
|
||||
global.comfy_panel_config.spaghett = {}
|
||||
global.comfy_panel_config.spaghett.undo = {}
|
||||
global.comfy_panel_config.poll_trusted = false
|
||||
global.comfy_panel_disable_antigrief = false
|
||||
end
|
||||
|
||||
comfy_panel_tabs["Config"] = {gui = build_config_gui, admin = false}
|
||||
|
||||
comfy_panel_tabs['Config'] = {gui = build_config_gui, admin = false}
|
||||
|
||||
local Event = require 'utils.event'
|
||||
Event.on_init(on_init)
|
||||
|
@@ -352,6 +352,9 @@ local function run_chart_update(data)
|
||||
local x = data.top_x / 32
|
||||
local y = data.top_y / 32
|
||||
local surface = data.surface
|
||||
if not surface or not surface.valid then
|
||||
return
|
||||
end
|
||||
if game.forces.player.is_chunk_charted(surface, {x, y}) then
|
||||
-- Don't use full area, otherwise adjacent chunks get charted
|
||||
game.forces.player.chart(
|
||||
|
@@ -13,6 +13,7 @@ local Gui = require 'utils.gui'
|
||||
local Server = require 'utils.server'
|
||||
local Alert = require 'utils.alert'
|
||||
local Math2D = require 'math2d'
|
||||
local Antigrief = require 'antigrief'
|
||||
local format_number = require 'util'.format_number
|
||||
|
||||
local Public = {}
|
||||
@@ -67,6 +68,13 @@ function Public.add_player_to_permission_group(player, group, forced)
|
||||
local jailed = Jailed.get_jailed_table()
|
||||
local enable_permission_group_disconnect = WPT.get('disconnect_wagon')
|
||||
local session = Session.get_session_table()
|
||||
local AG = Antigrief.get()
|
||||
|
||||
if not AG.enabled then
|
||||
local default_group = game.permissions.get_group('Default')
|
||||
default_group.add_player(player)
|
||||
return
|
||||
end
|
||||
|
||||
if player.admin then
|
||||
return
|
||||
|
Reference in New Issue
Block a user