mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-31 13:01:39 +09:00
Updated to new roles
This commit is contained in:
111
config/roles.lua
111
config/roles.lua
@@ -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"}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user