Updated to new roles

This commit is contained in:
Cooldude2606
2020-03-29 18:43:55 +01:00
parent 22185a2ee1
commit 3141b8a75f
3 changed files with 106 additions and 70 deletions

View File

@@ -100,7 +100,7 @@ Roles.new_role('Trainee','TrMod')
:set_flag('is_admin') :set_flag('is_admin')
:set_flag('is_spectator') :set_flag('is_spectator')
:set_flag('report-immune') :set_flag('report-immune')
:set_parent('Donator') :set_parent('Veteran')
:allow{ :allow{
'command/admin-chat', 'command/admin-chat',
'command/teleport', 'command/teleport',
@@ -110,28 +110,42 @@ Roles.new_role('Trainee','TrMod')
'command/give-warning', 'command/give-warning',
'command/get-warnings', 'command/get-warnings',
'command/get-reports', 'command/get-reports',
'command/jail',
'command/unjail',
'command/kick', 'command/kick',
'command/ban', 'command/ban',
} }
--- Trusted Roles --- Trusted Roles
Roles.new_role('Sponsor','Spon') Roles.new_role('Board Member','Board')
:set_permission_group('Trusted') :set_permission_group('Trusted')
:set_custom_color{r=247,g=246,b=54} :set_custom_color{r=247,g=246,b=54}
:set_flag('is_spectator') :set_flag('is_spectator')
:set_flag('report-immune') :set_flag('report-immune')
:set_flag('instance-respawn') :set_flag('instance-respawn')
:set_parent('Pay to Win') :set_parent('Sponsor')
:allow{ :allow{
'command/goto',
'command/repair',
} }
Roles.new_role('Pay to Win','P2W') Roles.new_role('Senior Backer','Backer')
:set_permission_group('Trusted') :set_permission_group('Trusted')
:set_custom_color{r=238,g=172,b=44} :set_custom_color{r=238,g=172,b=44}
:set_flag('is_spectator') :set_flag('is_spectator')
:set_flag('report-immune') :set_flag('report-immune')
:set_flag('instance-respawn') :set_flag('instance-respawn')
:set_parent('Donator') :set_parent('Sponsor')
:allow{
}
Roles.new_role('Sponsor','Spon')
:set_permission_group('Trusted')
:set_custom_color{r=238,g=172,b=44}
:set_flag('is_spectator')
:set_flag('report-immune')
:set_flag('instance-respawn')
:set_parent('Supporter')
:allow{ :allow{
'gui/rocket-info/toggle-active', 'gui/rocket-info/toggle-active',
'gui/rocket-info/remote_launch', 'gui/rocket-info/remote_launch',
@@ -143,7 +157,7 @@ Roles.new_role('Pay to Win','P2W')
'fast-tree-decon', 'fast-tree-decon',
} }
Roles.new_role('Donator','Don') Roles.new_role('Supporter','Sup')
:set_permission_group('Trusted') :set_permission_group('Trusted')
:set_custom_color{r=230,g=99,b=34} :set_custom_color{r=230,g=99,b=34}
:set_flag('is_spectator') :set_flag('is_spectator')
@@ -242,9 +256,10 @@ Roles.define_role_order{
'Administrator', 'Administrator',
'Moderator', 'Moderator',
'Trainee', 'Trainee',
'Board Member',
'Senior Backer',
'Sponsor', 'Sponsor',
'Pay to Win', 'Supporter',
'Donator',
'Partner', 'Partner',
'Veteran', 'Veteran',
'Member', 'Member',
@@ -254,44 +269,44 @@ Roles.define_role_order{
} }
Roles.override_player_roles{ Roles.override_player_roles{
Cooldude2606={'Senior Administrator','Administrator','Moderator','Member'}, ["Cooldude2606"]={"Senior Administrator","Moderator","Senior Backer","Supporter"},
arty714={'Senior Administrator','Administrator','Moderator','Member'}, ["arty714"]={"Senior Administrator","Senior Backer","Supporter"},
mark9064={'Administrator','Moderator','Member'}, ["Drahc_pro"]={"Administrator","Moderator","Veteran","Member"},
Drahc_pro={'Administrator','Moderator','Member'}, ["mark9064"]={"Administrator","Moderator","Member"},
aldldl={'Sponsor','Administrator','Moderator','Member'}, ["aldldl"]={"Administrator","Moderator","Senior Backer","Sponsor","Supporter","Member"},
LoicB={'Sponsor','Trainee','Member'},
ookl={'Sponsor','Moderator','Member'}, ["ookl"]={"Moderator","Senior Backer","Sponsor","Supporter","Partner","Member"},
cydes={'Pay to Win','Moderator','Member'}, ["hamsterbryan"]={"Moderator","Senior Backer","Supporter","Member"},
darklich14={'Pay to Win','Moderator','Member'}, ["M74132"]={"Moderator","Senior Backer","Sponsor","Supporter","Member"},
porelos={'Pay to Win','Moderator','Member'}, ["LoicB"]={"Moderator","Senior Backer","Supporter","Veteran","Member"},
SilentLog={'Pay to Win','Moderator','Member'}, ["UUBlueFire"]={"Moderator","Senior Backer","Supporter","Member"},
UUBlueFire={'Pay to Win','Moderator','Member'},
XenoCyber={'Pay to Win','Moderator','Member'}, ["thadius856"]={"Moderator","Supporter","Member"},
Chromaddict={'Donator','Moderator','Member'}, ["XenoCyber"]={"Moderator","Supporter","Partner","Member"},
eissturm={'Donator','Moderator','Member'}, ["cydes"]={"Moderator","Supporter","Member"},
freek18={'Donator','Moderator','Member'}, ["darklich14"]={"Moderator","Supporter","Member"},
M74132={'Donator','Moderator','Member'}, ["SilentLog"]={"Moderator","Supporter","Member"},
thadius856={'Donator','Moderator','Member'}, ["freek18"]={"Moderator","Supporter","Member"},
['7h3w1z4rd']={'Moderator','Member'}, ["porelos"]={"Moderator","Supporter","Member"},
AssemblyStorm={'Moderator','Member'},
bombershark={'Moderator','Member'}, ["7h3w1z4rd"]={"Moderator","Member"},
CmonMate497={'Moderator','Member'}, ["Windbomb"]={"Moderator","Member"},
facere={'Moderator','Member'}, ["Phoenix27833"]={"Moderator","Member"},
FlipHalfling90={'Moderator','Member'}, ["banakeg"]={"Moderator","Member"},
Gizan={'Pay to Win','Moderator','Member'}, ["maplesyrup01"]={"Moderator","Member"},
Hobbitkicker={'Moderator','Member'}, ["FlipHalfling90"]={"Moderator","Member"},
jessi_gaming={'Trainee','Member'}, ["Ruuyji"]={"Moderator","Member"},
Koroto={'Moderator','Member'}, ["Gizan"]={"Moderator"},
mafisch3={'Moderator','Member'}, ["samy115"]={"Moderator","Member"},
maplesyrup01={'Moderator','Member'}, ["Hobbitkicker"]={"Moderator","Member"},
NextIdea={'Moderator','Member'}, ["facere"]={"Moderator","Member"},
Phoenix27833={'Moderator','Member'}, ["whoami32"]={"Moderator","Member"},
Rezz={'Moderator','Member'}, ["NextIdea"]={"Moderator","Member"},
Ruuyji={'Moderator','Member'}, ["mafisch3"]={"Moderator","Member"},
samy115={'Moderator','Member'}, ["Tcheko"]={"Moderator","Member"},
scarbvis={'Moderator','Member'}, ["AssemblyStorm"]={"Moderator","Veteran","Member"},
Tcheko={'Moderator','Member'}, ["connormkii"]={"Moderator","Veteran","Member"},
WhomstThouAmMe={'Moderator','Member'}, ["Koroto"]={"Moderator","Veteran","Member"},
Windbomb={'Moderator','Member'}, ["scarbvis"]={"Moderator","Member"},
tovernaar123={'Member'}, ["CmonMate497"]={"Moderator","Member"}
} }

View File

@@ -318,29 +318,34 @@ end
-- @tparam LuaPlayer player the player that will be assigned the roles -- @tparam LuaPlayer player the player that will be assigned the roles
-- @tparam table roles table a of roles that the player will be given, can be one role and can be role names -- @tparam table roles table a of roles that the player will be given, can be one role and can be role names
-- @tparam[opt=<server>] string by_player_name the name of the player that will be shown in the log -- @tparam[opt=<server>] string by_player_name the name of the player that will be shown in the log
-- @tparam[opt=false] boolean skip_checks when true there will be no checks are done for if the player is valid
-- @tparam[opt=false] boolean silent when true there will be no game message printed -- @tparam[opt=false] boolean silent when true there will be no game message printed
function Roles.assign_player(player,roles,by_player_name,silent) function Roles.assign_player(player,roles,by_player_name,skip_checks,silent)
player = Game.get_player_from_any(player) local valid_player = Game.get_player_from_any(player)
if not player then return end if not skip_checks and not valid_player then return end
if type(roles) ~= 'table' or roles.name then if type(roles) ~= 'table' or roles.name then
roles = {roles} roles = {roles}
end end
for _,role in pairs(roles) do for _,role in pairs(roles) do
role = Roles.get_role_from_any(role) role = Roles.get_role_from_any(role)
if role then if role then
role:add_player(player,false,true) role:add_player(valid_player or player, valid_player == nil, true)
end end
end end
emit_player_roles_updated(player,'assign',roles,by_player_name,silent) if valid_player then
emit_player_roles_updated(valid_player, 'assign', roles, by_player_name, silent)
end
end end
--- Removes a player from the given role(s) with an option to pass a by player name used in the log --- Removes a player from the given role(s) with an option to pass a by player name used in the log
-- @tparam LuaPlayer player the player that will have the roles removed -- @tparam LuaPlayer player the player that will have the roles removed
-- @tparam table roles table a of roles to be removed from the player, can be one role and can be role names -- @tparam table roles table a of roles to be removed from the player, can be one role and can be role names
-- @tparam[opt=<server>] string by_player_name the name of the player that will be shown in the logs -- @tparam[opt=<server>] string by_player_name the name of the player that will be shown in the logs
-- @tparam[opt=false] boolean skip_checks when true there will be no checks are done for if the player is valid
-- @tparam[opt=false] boolean silent when true there will be no game message printed -- @tparam[opt=false] boolean silent when true there will be no game message printed
function Roles.unassign_player(player,roles,by_player_name,silent) function Roles.unassign_player(player,roles,by_player_name,skip_checks,silent)
player = Game.get_player_from_any(player) local valid_player = Game.get_player_from_any(player)
if not skip_checks and not valid_player then return end
if not player then return end if not player then return end
if type(roles) ~= 'table' or roles.name then if type(roles) ~= 'table' or roles.name then
roles = {roles} roles = {roles}
@@ -348,10 +353,12 @@ function Roles.unassign_player(player,roles,by_player_name,silent)
for _,role in pairs(roles) do for _,role in pairs(roles) do
role = Roles.get_role_from_any(role) role = Roles.get_role_from_any(role)
if role then if role then
role:remove_player(player,false,true) role:remove_player(valid_player or player, valid_player == nil, true)
end end
end end
emit_player_roles_updated(player,'unassign',roles,by_player_name,silent) if valid_player then
emit_player_roles_updated(valid_player, 'unassign', roles, by_player_name, silent)
end
end end
--- Overrides all player roles with the given table of roles, useful to mass set roles on game start --- Overrides all player roles with the given table of roles, useful to mass set roles on game start
@@ -419,16 +426,28 @@ end
function Roles.define_role_order(order) function Roles.define_role_order(order)
-- Clears and then rebuilds the order table -- Clears and then rebuilds the order table
Roles.config.order = {} Roles.config.order = {}
local done = {}
for _,role in ipairs(order) do for _,role in ipairs(order) do
if type(role) == 'table' and role.name then if type(role) == 'table' and role.name then
done[role.name] = true
table.insert(Roles.config.order,role.name) table.insert(Roles.config.order,role.name)
else else
done[role] = true
table.insert(Roles.config.order,role) table.insert(Roles.config.order,role)
end end
end end
-- Check no roles were missed
for role_name,_ in pairs(Role.config.roles) do
if not done[role_name] then
error('Role missing '..role_name..' from role order, all defined roles must be included.',2)
end
end
-- Re-links roles to they parents as this is called at the end of the config -- Re-links roles to they parents as this is called at the end of the config
for index,role in pairs(Roles.config.order) do for index,role_name in pairs(Roles.config.order) do
role = Roles.config.roles[role] local role = Roles.config.roles[role_name]
if not role then
error('Role with name '..role_name..' has not beed defined, either define it or remove it from the order list.',2)
end
role.index = index role.index = index
local parent = Roles.config.roles[role.parent] local parent = Roles.config.roles[role.parent]
if parent then if parent then

View File

@@ -205,20 +205,22 @@ Gui.element(function(_,parent)
-- Find which players will go where -- Find which players will go where
local done = {} local done = {}
local groups = { local groups = {
Administrator = { _title={'readme.backers-management'}, _width=230 }, { _roles={'Senior Administrator','Administrator'}, _title={'readme.backers-management'}, _width=230 },
Sponsor = { _title={'readme.backers-board'}, _width=145 }, -- change role to board { _roles={'Board Member','Senior Backer'}, _title={'readme.backers-board'}, _width=145 }, -- change role to board
Donator = { _title={'readme.backers-backers'}, _width=196 }, -- change to backer { _roles={'Sponsor','Supporter'}, _title={'readme.backers-backers'}, _width=196 }, -- change to backer
Moderator = { _title={'readme.backers-staff'}, _width=235 }, { _roles={'Moderator','Trainee'}, _title={'readme.backers-staff'}, _width=235 },
Active = { _title={'readme.backers-active'}, _width=235 }, { _roles={}, _title={'readme.backers-active'}, _width=235 },
} }
-- Fill by player roles -- Fill by player roles
for player_name, player_roles in pairs(Roles.config.players) do for player_name, player_roles in pairs(Roles.config.players) do
for role_name, players in pairs(groups) do for _, players in ipairs(groups) do
if table.contains(player_roles, role_name) then for _, role_name in pairs(players._roles) do
done[player_name] = true if table.contains(player_roles, role_name) then
table.insert(players,player_name) done[player_name] = true
break table.insert(players,player_name)
break
end
end end
end end
end end
@@ -235,7 +237,7 @@ Gui.element(function(_,parent)
-- Add the different tables -- Add the different tables
local scroll_pane = title_table_scroll(container) local scroll_pane = title_table_scroll(container)
for _, players in pairs(groups) do for _, players in ipairs(groups) do
local table = title_table(scroll_pane, players._width, players._title, 4) local table = title_table(scroll_pane, players._width, players._title, 4)
for _,player_name in ipairs(players) do for _,player_name in ipairs(players) do
Gui.centered_label(table, 140, player_name) Gui.centered_label(table, 140, player_name)