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

View File

@@ -318,29 +318,34 @@ end
-- @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[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
function Roles.assign_player(player,roles,by_player_name,silent)
player = Game.get_player_from_any(player)
if not player then return end
function Roles.assign_player(player,roles,by_player_name,skip_checks,silent)
local valid_player = Game.get_player_from_any(player)
if not skip_checks and not valid_player then return end
if type(roles) ~= 'table' or roles.name then
roles = {roles}
end
for _,role in pairs(roles) do
role = Roles.get_role_from_any(role)
if role then
role:add_player(player,false,true)
role:add_player(valid_player or player, valid_player == nil, true)
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
--- 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 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=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
function Roles.unassign_player(player,roles,by_player_name,silent)
player = Game.get_player_from_any(player)
function Roles.unassign_player(player,roles,by_player_name,skip_checks,silent)
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 type(roles) ~= 'table' or roles.name then
roles = {roles}
@@ -348,10 +353,12 @@ function Roles.unassign_player(player,roles,by_player_name,silent)
for _,role in pairs(roles) do
role = Roles.get_role_from_any(role)
if role then
role:remove_player(player,false,true)
role:remove_player(valid_player or player, valid_player == nil, true)
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
--- 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)
-- Clears and then rebuilds the order table
Roles.config.order = {}
local done = {}
for _,role in ipairs(order) do
if type(role) == 'table' and role.name then
done[role.name] = true
table.insert(Roles.config.order,role.name)
else
done[role] = true
table.insert(Roles.config.order,role)
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
for index,role in pairs(Roles.config.order) do
role = Roles.config.roles[role]
for index,role_name in pairs(Roles.config.order) do
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
local parent = Roles.config.roles[role.parent]
if parent then

View File

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