mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-16 02:47:48 +02:00
Server - minor changes to banhandler
This commit is contained in:
parent
6c9637579a
commit
ec106a7f8f
@ -2,16 +2,12 @@ local Event = require 'utils.event'
|
|||||||
local Server = require 'utils.server'
|
local Server = require 'utils.server'
|
||||||
local Token = require 'utils.token'
|
local Token = require 'utils.token'
|
||||||
|
|
||||||
local len = string.len
|
local Public = {}
|
||||||
local gmatch = string.gmatch
|
|
||||||
local insert = table.insert
|
|
||||||
local ban_by_join_enabled = false
|
local ban_by_join_enabled = false
|
||||||
|
|
||||||
local try_get_ban = Server.try_get_ban
|
local try_get_ban = Server.try_get_ban
|
||||||
|
|
||||||
--- Jail dataset.
|
|
||||||
local jailed_data_set = 'jailed'
|
|
||||||
|
|
||||||
local try_get_is_banned_token =
|
local try_get_is_banned_token =
|
||||||
Token.register(
|
Token.register(
|
||||||
function(data)
|
function(data)
|
||||||
@ -56,91 +52,8 @@ Event.add(
|
|||||||
Event.add(
|
Event.add(
|
||||||
defines.events.on_console_command,
|
defines.events.on_console_command,
|
||||||
function(event)
|
function(event)
|
||||||
local cmd = event.command
|
Server.ban_handler(event)
|
||||||
|
|
||||||
local user = event.parameters
|
|
||||||
if not user then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if len(user) <= 2 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local player_index
|
|
||||||
local reason
|
|
||||||
local str = ''
|
|
||||||
|
|
||||||
local t = {}
|
|
||||||
for i in gmatch(user, '%S+') do
|
|
||||||
insert(t, i)
|
|
||||||
end
|
|
||||||
|
|
||||||
player_index = t[1]
|
|
||||||
|
|
||||||
for i = 2, #t do
|
|
||||||
str = str .. t[i] .. ' '
|
|
||||||
reason = str
|
|
||||||
end
|
|
||||||
|
|
||||||
if not player_index then
|
|
||||||
return print('[on_console_command] - player_index was undefined.')
|
|
||||||
end
|
|
||||||
|
|
||||||
local target
|
|
||||||
if game.get_player(player_index) then
|
|
||||||
target = game.get_player(player_index)
|
|
||||||
else
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if event.player_index then
|
|
||||||
local player = game.get_player(event.player_index)
|
|
||||||
if player and player.valid and player.admin then
|
|
||||||
-- if target.index == player.index then
|
|
||||||
-- return
|
|
||||||
-- end
|
|
||||||
|
|
||||||
local data = Server.build_embed_data()
|
|
||||||
data.username = target.name
|
|
||||||
data.admin = player.name
|
|
||||||
|
|
||||||
if cmd == 'ban' then
|
|
||||||
Server.set_data(jailed_data_set, target.name, nil) -- this is added here since we don't want to clutter the jail dataset.
|
|
||||||
if not reason then
|
|
||||||
data.reason = 'Not specified.'
|
|
||||||
Server.to_banned_embed(data)
|
|
||||||
return
|
|
||||||
else
|
|
||||||
data.reason = reason
|
|
||||||
Server.to_banned_embed(data)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
elseif cmd == 'unban' then
|
|
||||||
Server.to_unbanned_embed(data)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
local data = Server.build_embed_data()
|
|
||||||
data.username = target.name
|
|
||||||
data.admin = '<Server>'
|
|
||||||
|
|
||||||
if cmd == 'ban' then
|
|
||||||
Server.set_data(jailed_data_set, target.name, nil) -- this is added here since we don't want to clutter the jail dataset.
|
|
||||||
if not reason then
|
|
||||||
data.reason = 'Not specified.'
|
|
||||||
Server.to_banned_embed(data)
|
|
||||||
return
|
|
||||||
else
|
|
||||||
data.reason = reason
|
|
||||||
Server.to_banned_embed(data)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
elseif cmd == 'unban' then
|
|
||||||
Server.to_unbanned_embed(data)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
return Public
|
||||||
|
@ -12,6 +12,8 @@ local concat = table.concat
|
|||||||
local serialize = serpent.serialize
|
local serialize = serpent.serialize
|
||||||
local remove = table.remove
|
local remove = table.remove
|
||||||
local tostring = tostring
|
local tostring = tostring
|
||||||
|
local len = string.len
|
||||||
|
local gmatch = string.gmatch
|
||||||
|
|
||||||
local raw_print = Print.raw_print
|
local raw_print = Print.raw_print
|
||||||
local minutes_to_ticks = 60 * 60
|
local minutes_to_ticks = 60 * 60
|
||||||
@ -92,6 +94,9 @@ local player_leave_tag = '[PLAYER-LEAVE]'
|
|||||||
|
|
||||||
Public.raw_print = raw_print
|
Public.raw_print = raw_print
|
||||||
|
|
||||||
|
--- Jail dataset.
|
||||||
|
local jailed_data_set = 'jailed'
|
||||||
|
|
||||||
local data_set_handlers = {}
|
local data_set_handlers = {}
|
||||||
|
|
||||||
local function assert_non_empty_string_and_no_spaces(str, argument_name)
|
local function assert_non_empty_string_and_no_spaces(str, argument_name)
|
||||||
@ -1317,6 +1322,98 @@ function Public.query_online_players()
|
|||||||
raw_print(message)
|
raw_print(message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Public.ban_handler(event)
|
||||||
|
local cmd = event.command
|
||||||
|
|
||||||
|
local user = event.parameters
|
||||||
|
if not user then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if len(user) <= 2 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local player_index
|
||||||
|
local reason
|
||||||
|
local str = ''
|
||||||
|
|
||||||
|
local t = {}
|
||||||
|
for i in gmatch(user, '%S+') do
|
||||||
|
insert(t, i)
|
||||||
|
end
|
||||||
|
|
||||||
|
player_index = t[1]
|
||||||
|
|
||||||
|
for i = 2, #t do
|
||||||
|
str = str .. t[i] .. ' '
|
||||||
|
reason = str
|
||||||
|
end
|
||||||
|
|
||||||
|
if not player_index then
|
||||||
|
return print('[on_console_command] - player_index was undefined.')
|
||||||
|
end
|
||||||
|
|
||||||
|
local target
|
||||||
|
if game.get_player(player_index) then
|
||||||
|
target = game.get_player(player_index)
|
||||||
|
if not target or not target.valid then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if event.player_index then
|
||||||
|
local player = game.get_player(event.player_index)
|
||||||
|
if player and player.valid and player.admin then
|
||||||
|
local data = Public.build_embed_data()
|
||||||
|
data.username = target.name
|
||||||
|
data.admin = player.name
|
||||||
|
|
||||||
|
if cmd == 'ban' then
|
||||||
|
Public.set_data(jailed_data_set, target.name, nil) -- this is added here since we don't want to clutter the jail dataset.
|
||||||
|
if not reason then
|
||||||
|
data.reason = 'Not specified.'
|
||||||
|
Public.to_banned_embed(data)
|
||||||
|
return
|
||||||
|
else
|
||||||
|
data.reason = reason
|
||||||
|
Public.to_banned_embed(data)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
elseif cmd == 'unban' then
|
||||||
|
Public.to_unbanned_embed(data)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local data = Public.build_embed_data()
|
||||||
|
data.username = target.name
|
||||||
|
data.admin = '<server>'
|
||||||
|
|
||||||
|
if event.user_override then
|
||||||
|
data.admin = event.user_override
|
||||||
|
end
|
||||||
|
|
||||||
|
if cmd == 'ban' then
|
||||||
|
Public.set_data(jailed_data_set, target.name, nil) -- this is added here since we don't want to clutter the jail dataset.
|
||||||
|
if not reason then
|
||||||
|
data.reason = 'Not specified.'
|
||||||
|
Public.to_banned_embed(data)
|
||||||
|
return
|
||||||
|
else
|
||||||
|
data.reason = reason
|
||||||
|
Public.to_banned_embed(data)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
elseif cmd == 'unban' then
|
||||||
|
Public.to_unbanned_embed(data)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function command_handler(callback, ...)
|
local function command_handler(callback, ...)
|
||||||
if type(callback) == 'function' then
|
if type(callback) == 'function' then
|
||||||
local success, err = pcall(callback, ...)
|
local success, err = pcall(callback, ...)
|
||||||
|
@ -37,6 +37,7 @@ ServerCommands.export_stats = Server.export_stats
|
|||||||
ServerCommands.set_start_data = Server.set_start_data
|
ServerCommands.set_start_data = Server.set_start_data
|
||||||
ServerCommands.set_instances = Server.set_instances
|
ServerCommands.set_instances = Server.set_instances
|
||||||
ServerCommands.query_online_players = Server.query_online_players
|
ServerCommands.query_online_players = Server.query_online_players
|
||||||
|
ServerCommands.ban_handler = Server.ban_handler
|
||||||
|
|
||||||
local SC_Interface = {
|
local SC_Interface = {
|
||||||
get_ups = function()
|
get_ups = function()
|
||||||
|
Loading…
Reference in New Issue
Block a user