1
0
mirror of https://github.com/Refactorio/RedMew.git synced 2025-03-03 14:53:01 +02:00

user_groups to sync regulars with server

This commit is contained in:
grilledham 2018-11-26 11:44:27 +00:00
parent 297c99d204
commit 018675c9c4

View File

@ -2,84 +2,53 @@ local Event = require 'utils.event'
local Utils = require 'utils.utils'
local Server = require 'server'
local Donators = require 'resources.donators'
local Game = require 'utils.game'
local Token = require 'utils.global_token'
global.regulars = {}
global.donators = Donators.donators
global.donator_welcome_messages = {}
local Game = require 'utils.game'
local Module = {}
local function update_file()
local data = {'{\n'}
for player_name, _ in pairs(global.regulars) do
table.insert(data, "['")
table.insert(data, player_name)
table.insert(data, "''] = true,\n")
end
table.insert(data, '}')
game.write_file('regulars.lua', table.concat(data), false, 0)
end
Module.is_regular =
function(player_name)
return Utils.cast_bool(global.regulars[player_name] or global.regulars[player_name:lower()]) --to make it backwards compatible
end
Module.add_regular =
function(player_name)
Module.add_regular = function(player_name)
local actor = Utils.get_actor()
--[[
if Module.is_regular(player_name) then
if (Module.is_regular(player_name)) then
Game.player_print(player_name .. ' is already a regular.')
else
if game.players[player_name] then
player_name = game.players[player_name].name
game.print(actor .. ' promoted ' .. player_name .. ' to regular.')
global.regulars[player_name] = true
update_file()
else
Game.player_print(player_name .. ' does not exist.')
end
end ]]
global.regulars[player_name] = true
game.print(actor .. ' promoted ' .. player_name .. ' to regular.')
Server.regular_promote(player_name, actor)
end
Module.remove_regular =
function(player_name)
local actor = Utils.get_actor()
--[[ if game.players[player_name] then
player_name = game.players[player_name].name
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:lower()] = nil --backwards compatible
update_file()
end ]]
global.regulars[player_name] = nil
game.print(player_name .. ' was demoted from regular by ' .. actor .. '.')
Server.regular_deomote(player_name, actor)
end
function Module.server_add_regular(player_name)
global.regulars[player_name] = true
end
function Module.server_remove_regular(player_name)
global.regulars[player_name] = nil
end
function Module.sync_regulars(names)
local r = {}
for _, name in ipairs(names) do
r[name] = true
global.regulars[player_name] = true
Server.set_data('regulars', player_name, true)
game.print(actor .. ' promoted ' .. player_name .. ' to regular.')
end
end
global.regulars = r
Module.remove_regular = function(player_name)
local actor = Utils.get_actor()
if (Module.is_regular(player_name)) then
global.regulars[player_name] = nil
Server.set_data('regulars', player_name, nil)
game.print(player_name .. ' was demoted from regular by ' .. actor .. '.')
else
Game.player_print(player_name .. ' is not a regular.')
end
end
local sync_regulars_callback =
Token.register(
function(data)
global.regulars = data.entries
end
)
function Module.sync_regulars()
Server.try_get_all_data('regulars', sync_regulars_callback)
end
Module.print_regulars = function()
@ -152,11 +121,24 @@ Event.add(
function(event)
local correctCaseName = Game.get_player_by_index(event.player_index).name
if global.regulars[correctCaseName:lower()] and not global.regulars[correctCaseName] then
global.regulars[correctCaseName:lower()] = nil
global.regulars[correctCaseName] = true
update_file()
Server.set_data('regulars', correctCaseName:lower(), nil)
Server.set_data('regulars', correctCaseName, true)
end
end
)
Event.add(
Server.events.on_server_started,
function()
Module.sync_regulars()
end
)
Server.on_data_set_changed(
'regulars',
function(data)
global.regulars[data.key] = data.value
end
)
return Module