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:
parent
297c99d204
commit
018675c9c4
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user