mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-03-19 21:10:19 +02:00
Merge branch 'develop' into develop
This commit is contained in:
commit
eea9f7e441
@ -2,10 +2,10 @@ local Task = require 'utils.task'
|
|||||||
local Token = require 'utils.token'
|
local Token = require 'utils.token'
|
||||||
local Event = require 'utils.event'
|
local Event = require 'utils.event'
|
||||||
local Terrain = require 'maps.deep_jungle.terrain'
|
local Terrain = require 'maps.deep_jungle.terrain'
|
||||||
|
local DPT = require 'maps.deep_jungle.table'
|
||||||
|
|
||||||
local Public = {}
|
local Public = {}
|
||||||
|
|
||||||
local force_chunk = false
|
|
||||||
local ceil = math.ceil
|
local ceil = math.ceil
|
||||||
local queue_task = Task.queue_task
|
local queue_task = Task.queue_task
|
||||||
local tiles_per_call = 12
|
local tiles_per_call = 12
|
||||||
@ -496,7 +496,11 @@ local do_chunk = Public.do_chunk
|
|||||||
local schedule_chunk = Public.schedule_chunk
|
local schedule_chunk = Public.schedule_chunk
|
||||||
|
|
||||||
local function on_chunk(event)
|
local function on_chunk(event)
|
||||||
if force_chunk then
|
local settings = DPT.get('settings')
|
||||||
|
if settings.stop_chunk then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if settings.force_chunk then
|
||||||
do_chunk(event)
|
do_chunk(event)
|
||||||
else
|
else
|
||||||
schedule_chunk(event)
|
schedule_chunk(event)
|
||||||
|
@ -4,32 +4,22 @@ require 'modules.biters_yield_coins'
|
|||||||
require 'modules.rocks_yield_coins'
|
require 'modules.rocks_yield_coins'
|
||||||
require 'modules.flashlight_toggle_button'
|
require 'modules.flashlight_toggle_button'
|
||||||
require 'maps.deep_jungle.generate'
|
require 'maps.deep_jungle.generate'
|
||||||
local Global = require 'utils.global'
|
|
||||||
local Event = require 'utils.event'
|
local Event = require 'utils.event'
|
||||||
local map_functions = require 'tools.map_functions'
|
local map_functions = require 'tools.map_functions'
|
||||||
|
local Task = require 'utils.task'
|
||||||
|
local DPT = require 'maps.deep_jungle.table'
|
||||||
local random = math.random
|
local random = math.random
|
||||||
|
|
||||||
local this = {
|
|
||||||
chunks_charted = {}
|
|
||||||
}
|
|
||||||
|
|
||||||
Global.register(
|
|
||||||
this,
|
|
||||||
function(tbl)
|
|
||||||
this = tbl
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
local Public = {}
|
|
||||||
|
|
||||||
local function on_chunk_charted(event)
|
local function on_chunk_charted(event)
|
||||||
|
local settings = DPT.get('settings')
|
||||||
local surface = game.get_surface(event.surface_index)
|
local surface = game.get_surface(event.surface_index)
|
||||||
local deco = game.decorative_prototypes
|
local deco = game.decorative_prototypes
|
||||||
local position = event.position
|
local position = event.position
|
||||||
if this.chunks_charted[tostring(position.x) .. tostring(position.y)] then
|
if settings.chunks_charted[tostring(position.x) .. tostring(position.y)] then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
this.chunks_charted[tostring(position.x) .. tostring(position.y)] = true
|
settings.chunks_charted[tostring(position.x) .. tostring(position.y)] = true
|
||||||
|
|
||||||
local decorative_names = {}
|
local decorative_names = {}
|
||||||
for k, v in pairs(deco) do
|
for k, v in pairs(deco) do
|
||||||
@ -113,8 +103,29 @@ local function on_entity_died(event)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function chunk_load()
|
||||||
|
local tick = game.tick
|
||||||
|
local settings = DPT.get('settings')
|
||||||
|
if settings.chunk_load_tick then
|
||||||
|
if settings.chunk_load_tick < tick then
|
||||||
|
settings.force_chunk = false
|
||||||
|
DPT.remove('settings', 'chunk_load_tick')
|
||||||
|
Task.set_queue_speed(8)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local on_tick = function()
|
||||||
|
local tick = game.tick
|
||||||
|
if tick % 40 == 0 then
|
||||||
|
chunk_load()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function on_init()
|
local function on_init()
|
||||||
local map_gen_settings = {}
|
local map_gen_settings = {}
|
||||||
|
local settings = DPT.get('settings')
|
||||||
|
|
||||||
map_gen_settings.moisture = 0.99
|
map_gen_settings.moisture = 0.99
|
||||||
map_gen_settings.water = 'none'
|
map_gen_settings.water = 'none'
|
||||||
map_gen_settings.starting_area = 'normal'
|
map_gen_settings.starting_area = 'normal'
|
||||||
@ -130,13 +141,14 @@ local function on_init()
|
|||||||
}
|
}
|
||||||
game.create_surface('deep_jungle', map_gen_settings)
|
game.create_surface('deep_jungle', map_gen_settings)
|
||||||
game.forces.player.set_spawn_position({0, 0}, game.surfaces['deep_jungle'])
|
game.forces.player.set_spawn_position({0, 0}, game.surfaces['deep_jungle'])
|
||||||
|
settings.force_chunk = true
|
||||||
|
settings.chunk_load_tick = game.tick + 200
|
||||||
end
|
end
|
||||||
|
|
||||||
Event.on_init(on_init)
|
Event.on_init(on_init)
|
||||||
Event.add(defines.events.on_chunk_charted, on_chunk_charted)
|
Event.add(defines.events.on_chunk_charted, on_chunk_charted)
|
||||||
Event.add(defines.events.on_entity_died, on_entity_died)
|
Event.add(defines.events.on_entity_died, on_entity_died)
|
||||||
Event.add(defines.events.on_player_joined_game, on_player_joined_game)
|
Event.add(defines.events.on_player_joined_game, on_player_joined_game)
|
||||||
|
Event.on_nth_tick(10, on_tick)
|
||||||
|
|
||||||
require 'modules.rocks_yield_ore'
|
require 'modules.rocks_yield_ore'
|
||||||
|
|
||||||
return Public
|
|
||||||
|
48
maps/deep_jungle/table.lua
Normal file
48
maps/deep_jungle/table.lua
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
local Global = require 'utils.global'
|
||||||
|
|
||||||
|
local this = {
|
||||||
|
settings = {
|
||||||
|
chunk_load_tick = false,
|
||||||
|
chunks_charted = {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Global.register(
|
||||||
|
this,
|
||||||
|
function(tbl)
|
||||||
|
this = tbl
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
local Public = {}
|
||||||
|
|
||||||
|
function Public.get(key)
|
||||||
|
if key then
|
||||||
|
return this[key]
|
||||||
|
else
|
||||||
|
return this
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Public.set(key, value)
|
||||||
|
if key and (value or value == false) then
|
||||||
|
this[key] = value
|
||||||
|
return this[key]
|
||||||
|
elseif key then
|
||||||
|
return this[key]
|
||||||
|
else
|
||||||
|
return this
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Public.remove(key, sub_key)
|
||||||
|
if key then
|
||||||
|
if this[key] and this[key][sub_key] then
|
||||||
|
this[key][sub_key] = nil
|
||||||
|
elseif this[key] then
|
||||||
|
this[key] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return Public
|
@ -252,10 +252,14 @@ function Public.set(key, value)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function Public.remove(key)
|
function Public.remove(key, sub_key)
|
||||||
if key then
|
if key then
|
||||||
|
if this[key] and this[key][sub_key] then
|
||||||
|
this[key][sub_key] = nil
|
||||||
|
elseif this[key] then
|
||||||
this[key] = nil
|
this[key] = nil
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local on_init = function()
|
local on_init = function()
|
||||||
|
@ -6,13 +6,16 @@ local Task = require 'utils.task'
|
|||||||
local Server = require 'utils.server'
|
local Server = require 'utils.server'
|
||||||
local Event = require 'utils.event'
|
local Event = require 'utils.event'
|
||||||
local Utils = require 'utils.core'
|
local Utils = require 'utils.core'
|
||||||
|
local table = require 'utils.table'
|
||||||
|
|
||||||
local jailed_data_set = 'jailed'
|
local jailed_data_set = 'jailed'
|
||||||
|
local revoked_permissions_set = 'revoked_permissions_jailed'
|
||||||
local jailed = {}
|
local jailed = {}
|
||||||
local player_data = {}
|
local player_data = {}
|
||||||
local terms_tbl = {}
|
local terms_tbl = {}
|
||||||
local votejail = {}
|
local votejail = {}
|
||||||
local votefree = {}
|
local votefree = {}
|
||||||
|
local revoked_permissions = {}
|
||||||
local settings = {
|
local settings = {
|
||||||
playtime_for_vote = 25920000, -- 5 days
|
playtime_for_vote = 25920000, -- 5 days
|
||||||
playtime_for_instant_jail = 103680000, -- 20 days
|
playtime_for_instant_jail = 103680000, -- 20 days
|
||||||
@ -38,7 +41,8 @@ Global.register(
|
|||||||
votefree = votefree,
|
votefree = votefree,
|
||||||
settings = settings,
|
settings = settings,
|
||||||
player_data = player_data,
|
player_data = player_data,
|
||||||
terms_tbl = terms_tbl
|
terms_tbl = terms_tbl,
|
||||||
|
revoked_permissions = revoked_permissions
|
||||||
},
|
},
|
||||||
function(t)
|
function(t)
|
||||||
jailed = t.jailed
|
jailed = t.jailed
|
||||||
@ -47,12 +51,13 @@ Global.register(
|
|||||||
settings = t.settings
|
settings = t.settings
|
||||||
player_data = t.player_data
|
player_data = t.player_data
|
||||||
terms_tbl = t.terms_tbl
|
terms_tbl = t.terms_tbl
|
||||||
|
revoked_permissions = t.revoked_permissions
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local Public = {}
|
local Public = {}
|
||||||
|
|
||||||
local validate_entity = function(entity)
|
local function validate_entity(entity)
|
||||||
if not (entity and entity.valid) then
|
if not (entity and entity.valid) then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
@ -60,6 +65,43 @@ local validate_entity = function(entity)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function is_revoked(name)
|
||||||
|
if name then
|
||||||
|
if revoked_permissions[name] then
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local function add_revoked(name, admin, reason)
|
||||||
|
if name then
|
||||||
|
if not revoked_permissions[name] then
|
||||||
|
revoked_permissions[name] = true
|
||||||
|
set_data(revoked_permissions_set, name, {revoked = true, actor = admin, reason = reason})
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local function remove_revoked(name)
|
||||||
|
if name then
|
||||||
|
if revoked_permissions[name] then
|
||||||
|
revoked_permissions[name] = nil
|
||||||
|
set_data(revoked_permissions_set, name, nil)
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
local clear_terms_tbl =
|
local clear_terms_tbl =
|
||||||
Token.register(
|
Token.register(
|
||||||
function(data)
|
function(data)
|
||||||
@ -124,7 +166,7 @@ local clear_gui =
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
local validate_playtime = function(player)
|
local function validate_playtime(player)
|
||||||
local tracker = Session.get_session_table()
|
local tracker = Session.get_session_table()
|
||||||
|
|
||||||
local playtime = player.online_time
|
local playtime = player.online_time
|
||||||
@ -136,7 +178,7 @@ local validate_playtime = function(player)
|
|||||||
return playtime
|
return playtime
|
||||||
end
|
end
|
||||||
|
|
||||||
local validate_trusted = function(player)
|
local function validate_trusted(player)
|
||||||
local trusted = Session.get_trusted_table()
|
local trusted = Session.get_trusted_table()
|
||||||
|
|
||||||
local is_trusted = false
|
local is_trusted = false
|
||||||
@ -148,7 +190,7 @@ local validate_trusted = function(player)
|
|||||||
return is_trusted
|
return is_trusted
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_player_data = function(player, remove)
|
local function get_player_data(player, remove)
|
||||||
if remove and player_data[player.name] then
|
if remove and player_data[player.name] then
|
||||||
player_data[player.name] = nil
|
player_data[player.name] = nil
|
||||||
return
|
return
|
||||||
@ -159,7 +201,7 @@ local get_player_data = function(player, remove)
|
|||||||
return player_data[player.name]
|
return player_data[player.name]
|
||||||
end
|
end
|
||||||
|
|
||||||
local get_gulag_permission_group = function()
|
local function get_gulag_permission_group()
|
||||||
local gulag = game.permissions.get_group('gulag')
|
local gulag = game.permissions.get_group('gulag')
|
||||||
if not gulag then
|
if not gulag then
|
||||||
gulag = game.permissions.create_group('gulag')
|
gulag = game.permissions.create_group('gulag')
|
||||||
@ -172,7 +214,7 @@ local get_gulag_permission_group = function()
|
|||||||
return gulag
|
return gulag
|
||||||
end
|
end
|
||||||
|
|
||||||
local create_gulag_surface = function()
|
local function create_gulag_surface()
|
||||||
local surface = game.surfaces['gulag']
|
local surface = game.surfaces['gulag']
|
||||||
if not surface then
|
if not surface then
|
||||||
local walls = {}
|
local walls = {}
|
||||||
@ -243,7 +285,7 @@ local create_gulag_surface = function()
|
|||||||
return surface
|
return surface
|
||||||
end
|
end
|
||||||
|
|
||||||
local teleport_player_to_gulag = function(player, action)
|
local function teleport_player_to_gulag(player, action)
|
||||||
local p_data = get_player_data(player)
|
local p_data = get_player_data(player)
|
||||||
|
|
||||||
if action == 'jail' then
|
if action == 'jail' then
|
||||||
@ -290,7 +332,7 @@ local teleport_player_to_gulag = function(player, action)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local validate_args = function(data)
|
local function validate_args(data)
|
||||||
local player = data.player
|
local player = data.player
|
||||||
local griefer = data.griefer
|
local griefer = data.griefer
|
||||||
local trusted = data.trusted
|
local trusted = data.trusted
|
||||||
@ -367,7 +409,7 @@ local validate_args = function(data)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local vote_to_jail = function(player, griefer, msg)
|
local function vote_to_jail(player, griefer, msg)
|
||||||
if not griefer then
|
if not griefer then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -398,7 +440,7 @@ local vote_to_jail = function(player, griefer, msg)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local vote_to_free = function(player, griefer)
|
local function vote_to_free(player, griefer)
|
||||||
if not griefer then
|
if not griefer then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@ -432,7 +474,7 @@ local vote_to_free = function(player, griefer)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local jail = function(player, griefer, msg, raised)
|
local function jail(player, griefer, msg, raised)
|
||||||
player = player or 'script'
|
player = player or 'script'
|
||||||
|
|
||||||
if jailed[griefer] then
|
if jailed[griefer] then
|
||||||
@ -443,21 +485,21 @@ local jail = function(player, griefer, msg, raised)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if not game.players[griefer] then
|
if not game.get_player(griefer) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local g = game.players[griefer]
|
local to_jail_player = game.get_player(griefer)
|
||||||
|
|
||||||
teleport_player_to_gulag(g, 'jail')
|
teleport_player_to_gulag(to_jail_player, 'jail')
|
||||||
|
|
||||||
local gulag = get_gulag_permission_group()
|
local gulag = get_gulag_permission_group()
|
||||||
gulag.add_player(griefer)
|
gulag.add_player(griefer)
|
||||||
|
|
||||||
local message = griefer .. ' has been jailed by ' .. player .. '. Cause: ' .. msg
|
local message = griefer .. ' has been jailed by ' .. player .. '. Cause: ' .. msg
|
||||||
|
|
||||||
if game.players[griefer].character and game.players[griefer].character.valid and game.players[griefer].character.driving then
|
if to_jail_player.character and to_jail_player.character.valid and to_jail_player.character.driving then
|
||||||
game.players[griefer].character.driving = false
|
to_jail_player.character.driving = false
|
||||||
end
|
end
|
||||||
|
|
||||||
jailed[griefer] = {jailed = true, actor = player, reason = msg}
|
jailed[griefer] = {jailed = true, actor = player, reason = msg}
|
||||||
@ -476,23 +518,23 @@ local jail = function(player, griefer, msg, raised)
|
|||||||
votejail[griefer].jailed = true
|
votejail[griefer].jailed = true
|
||||||
end
|
end
|
||||||
|
|
||||||
game.players[griefer].clear_console()
|
to_jail_player.clear_console()
|
||||||
Utils.print_to(griefer, message)
|
Utils.print_to(griefer, message)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local free = function(player, griefer)
|
local function free(player, griefer)
|
||||||
player = player or 'script'
|
player = player or 'script'
|
||||||
if not jailed[griefer] then
|
if not jailed[griefer] then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
if not game.players[griefer] then
|
if not game.get_player(griefer) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local g = game.players[griefer]
|
local to_jail_player = game.get_player(griefer)
|
||||||
teleport_player_to_gulag(g, 'free')
|
teleport_player_to_gulag(to_jail_player, 'free')
|
||||||
|
|
||||||
local message = griefer .. ' was set free from jail by ' .. player .. '.'
|
local message = griefer .. ' was set free from jail by ' .. player .. '.'
|
||||||
|
|
||||||
@ -592,6 +634,64 @@ function Public.get_jailed_table()
|
|||||||
return jailed
|
return jailed
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Sets a value to required_playtime_for_instant_jail
|
||||||
|
-- @param value<int>
|
||||||
|
function Public.required_playtime_for_instant_jail(value)
|
||||||
|
if value then
|
||||||
|
settings.playtime_for_instant_jail = value
|
||||||
|
end
|
||||||
|
return settings.playtime_for_instant_jail
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Sets a value to set_valid_surface
|
||||||
|
-- @param value<string>
|
||||||
|
function Public.set_valid_surface(value)
|
||||||
|
settings.valid_surface = value or 'nauvis'
|
||||||
|
return settings.valid_surface
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Sets a value to required_playtime_for_vote
|
||||||
|
-- @param value<int>
|
||||||
|
function Public.required_playtime_for_vote(value)
|
||||||
|
if value then
|
||||||
|
settings.playtime_for_vote = value
|
||||||
|
end
|
||||||
|
return settings.playtime_for_vote
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Resets reset_vote_table
|
||||||
|
function Public.reset_vote_table()
|
||||||
|
for k, _ in pairs(votejail) do
|
||||||
|
votejail[k] = nil
|
||||||
|
end
|
||||||
|
for k, _ in pairs(votefree) do
|
||||||
|
votefree[k] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Writes the data called back from the server into the revoked_permissions table, clearing any previous entries
|
||||||
|
local sync_revoked_permissions_callback =
|
||||||
|
Token.register(
|
||||||
|
function(data)
|
||||||
|
if not data then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
if not data.entries then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
table.clear_table(revoked_permissions)
|
||||||
|
for k, v in pairs(data.entries) do
|
||||||
|
revoked_permissions[k] = v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
|
--- Signals the server to retrieve the revoked_permissions dataset
|
||||||
|
function Public.sync_revoked_permissions()
|
||||||
|
Server.try_get_all_data(revoked_permissions_set, sync_revoked_permissions_callback)
|
||||||
|
end
|
||||||
|
|
||||||
Server.on_data_set_changed(
|
Server.on_data_set_changed(
|
||||||
jailed_data_set,
|
jailed_data_set,
|
||||||
function(data)
|
function(data)
|
||||||
@ -610,6 +710,17 @@ Server.on_data_set_changed(
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Server.on_data_set_changed(
|
||||||
|
revoked_permissions_set,
|
||||||
|
function(data)
|
||||||
|
if not data then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
revoked_permissions[data.key] = data.value
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
commands.add_command(
|
commands.add_command(
|
||||||
'jail',
|
'jail',
|
||||||
'Sends the player to gulag! Valid arguments are:\n/jail <LuaPlayer> <reason>',
|
'Sends the player to gulag! Valid arguments are:\n/jail <LuaPlayer> <reason>',
|
||||||
@ -626,33 +737,76 @@ commands.add_command(
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
function Public.required_playtime_for_instant_jail(value)
|
commands.add_command(
|
||||||
if value then
|
'toggle_jail_permission',
|
||||||
settings.playtime_for_instant_jail = value
|
'Usable only for admins - controls who may use jail commands!',
|
||||||
end
|
function(cmd)
|
||||||
return settings.playtime_for_instant_jail
|
local name
|
||||||
end
|
local player = game.player
|
||||||
|
|
||||||
function Public.set_valid_surface(value)
|
if not player or not player.valid then
|
||||||
settings.valid_surface = value or 'nauvis'
|
name = 'Server'
|
||||||
return settings.valid_surface
|
else
|
||||||
end
|
name = player.name
|
||||||
|
|
||||||
function Public.required_playtime_for_vote(value)
|
if not player.admin then
|
||||||
if value then
|
return
|
||||||
settings.playtime_for_vote = value
|
end
|
||||||
end
|
end
|
||||||
return settings.playtime_for_vote
|
|
||||||
end
|
|
||||||
|
|
||||||
function Public.reset_vote_table()
|
local param = cmd.parameter
|
||||||
for k, _ in pairs(votejail) do
|
|
||||||
votejail[k] = nil
|
local t_player
|
||||||
|
local revoke_reason
|
||||||
|
local revoke_player
|
||||||
|
local str = ''
|
||||||
|
|
||||||
|
if not param then
|
||||||
|
return Utils.print_to(player, 'Both player and reason is needed!')
|
||||||
end
|
end
|
||||||
for k, _ in pairs(votefree) do
|
|
||||||
votefree[k] = nil
|
local t = {}
|
||||||
|
for i in string.gmatch(param, '%S+') do
|
||||||
|
table.insert(t, i)
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
t_player = t[1]
|
||||||
|
|
||||||
|
for i = 2, #t do
|
||||||
|
str = str .. t[i] .. ' '
|
||||||
|
revoke_reason = str
|
||||||
|
end
|
||||||
|
|
||||||
|
if game.get_player(t_player) then
|
||||||
|
revoke_player = game.get_player(t_player)
|
||||||
|
else
|
||||||
|
return Utils.print_to(player, 'No player was provided.')
|
||||||
|
end
|
||||||
|
|
||||||
|
if is_revoked(revoke_player.name) then
|
||||||
|
remove_revoked(revoke_player.name)
|
||||||
|
Utils.print_to(player, revoke_player.name .. ' can now utilize jail commands once again!')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if revoke_reason then
|
||||||
|
if revoke_reason and string.len(revoke_reason) <= 0 then
|
||||||
|
Utils.print_to(player, 'No valid reason was given.')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if revoke_reason and string.len(revoke_reason) <= 10 then
|
||||||
|
Utils.print_to(player, 'Reason is too short.')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
add_revoked(revoke_player.name, name, revoke_reason)
|
||||||
|
Utils.print_to(player, revoke_player.name .. ' is now forbidden from utilizing jail commands!')
|
||||||
|
else
|
||||||
|
Utils.print_to(player, 'No message was provided')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
Event.on_init(
|
Event.on_init(
|
||||||
function()
|
function()
|
||||||
@ -661,6 +815,13 @@ Event.on_init(
|
|||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Event.add(
|
||||||
|
Server.events.on_server_started,
|
||||||
|
function()
|
||||||
|
Public.sync_revoked_permissions()
|
||||||
|
end
|
||||||
|
)
|
||||||
|
|
||||||
Event.add(
|
Event.add(
|
||||||
defines.events.on_console_command,
|
defines.events.on_console_command,
|
||||||
function(event)
|
function(event)
|
||||||
@ -672,10 +833,16 @@ Event.add(
|
|||||||
local param = event.parameters
|
local param = event.parameters
|
||||||
|
|
||||||
if event.player_index then
|
if event.player_index then
|
||||||
local player = game.players[event.player_index]
|
local player = game.get_player(event.player_index)
|
||||||
local playtime = validate_playtime(player)
|
local playtime = validate_playtime(player)
|
||||||
local trusted = validate_trusted(player)
|
local trusted = validate_trusted(player)
|
||||||
|
|
||||||
|
if is_revoked(player.name) then
|
||||||
|
Utils.warning(player, 'You have abused your trusted permissions and therefore')
|
||||||
|
Utils.warning(player, 'your permissions have been revoked!')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
if not param then
|
if not param then
|
||||||
return Utils.print_to(player, 'No valid reason given.')
|
return Utils.print_to(player, 'No valid reason given.')
|
||||||
end
|
end
|
||||||
@ -709,8 +876,8 @@ Event.add(
|
|||||||
|
|
||||||
local delay = 30
|
local delay = 30
|
||||||
|
|
||||||
if game.players[griefer] then
|
if game.get_player(griefer) then
|
||||||
griefer = game.players[griefer].name
|
griefer = game.get_player(griefer).name
|
||||||
end
|
end
|
||||||
|
|
||||||
if trusted and playtime >= settings.playtime_for_vote and playtime < settings.playtime_for_instant_jail and not player.admin then
|
if trusted and playtime >= settings.playtime_for_vote and playtime < settings.playtime_for_instant_jail and not player.admin then
|
||||||
@ -720,6 +887,7 @@ Event.add(
|
|||||||
player,
|
player,
|
||||||
'Abusing the jail command will lead to revoked permissions. Jailing someone in case of disagreement is _NEVER_ OK!'
|
'Abusing the jail command will lead to revoked permissions. Jailing someone in case of disagreement is _NEVER_ OK!'
|
||||||
)
|
)
|
||||||
|
Utils.warning(player, "Jailing someone because they're afk or other stupid reasons is NOT valid!")
|
||||||
Utils.warning(player, 'Run this command again to if you really want to do this!')
|
Utils.warning(player, 'Run this command again to if you really want to do this!')
|
||||||
for i = 1, 4 do
|
for i = 1, 4 do
|
||||||
Task.set_timeout_in_ticks(delay, play_alert_sound, {name = player.name})
|
Task.set_timeout_in_ticks(delay, play_alert_sound, {name = player.name})
|
||||||
@ -801,7 +969,7 @@ Event.add(
|
|||||||
Event.add(
|
Event.add(
|
||||||
defines.events.on_player_changed_surface,
|
defines.events.on_player_changed_surface,
|
||||||
function(event)
|
function(event)
|
||||||
local player = game.players[event.player_index]
|
local player = game.get_player(event.player_index)
|
||||||
if not player or not player.valid then
|
if not player or not player.valid then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user