From 0e18002375bb3a43ae21e9245de882649aa495dc Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Tue, 9 Apr 2019 21:22:07 +0100 Subject: [PATCH] Added Role config --- config/command_auth_roles.lua | 2 +- config/roles.lua | 155 +++++++++++++++++++++++++++++----- expcore/roles.lua | 5 ++ 3 files changed, 139 insertions(+), 23 deletions(-) diff --git a/config/command_auth_roles.lua b/config/command_auth_roles.lua index 8a87f047..3011166e 100644 --- a/config/command_auth_roles.lua +++ b/config/command_auth_roles.lua @@ -3,7 +3,7 @@ local Commands = require 'expcore.commands' local Roles = require 'expcore.roles' Commands.add_authenticator(function(player,command,tags,reject) - if Roles.player_allowed(player,command) then + if Roles.player_allowed(player,'command/'..command) then return true else return reject() diff --git a/config/roles.lua b/config/roles.lua index b6472d72..e8baf7b9 100644 --- a/config/roles.lua +++ b/config/roles.lua @@ -11,50 +11,161 @@ local function playtime(time_required) end end -Roles.define_flag_trigger('admin',function(player,state) +Roles.define_flag_trigger('is_admin',function(player,state) player.admin = state end) +Roles.define_flag_trigger('is_spectator',function(player,state) + player.spectator = state +end) +Roles.define_flag_trigger('is_jail',function(player,state) + if player.character then + player.character.active = not state + end +end) -Roles.new_role('Server','SYS') +Roles.new_role('System','SYS') :set_allow_all(true) -:set_flag('admin',true) - -Roles.new_role('Senior Admin','SAdmin') -:set_flag('admin',true) -:set_parent('Admin') +:set_flag('is_admin',true) +:set_flag('is_spectator',true) :set_permission_group('Admin') -:set_custom_color('blue') + +Roles.new_role('Senior Administrator','SAdmin') +:set_flag('is_admin',true) +:set_flag('is_spectator',true) +:set_permission_group('Admin') +:set_parent('Administrator') :allow{ - 'interface' + 'command/interface', + 'command/toggle-cheat-mode' } -Roles.new_role('Admin','Admin') -:set_flag('admin',true) -:set_parent('Regular') +Roles.new_role('Administrator','Admin') +:set_flag('is_admin',true) +:set_flag('is_spectator',true) +:set_custom_color{r=233,g=63,b=233} :set_permission_group('Admin') +:set_parent('Moderator') +:allow{ +} + +Roles.new_role('Moderator','Mod') +:set_flag('is_admin',true) +:set_flag('is_spectator',true) +:set_custom_color{r=0,g=170,b=0} +:set_permission_group('Admin') +:set_parent('Trainee') +:allow{ +} + +Roles.new_role('Trainee','TrMod') +:set_flag('is_admin',true) +:set_flag('is_spectator',true) +:set_custom_color{r=0,g=170,b=0} +:set_permission_group('Admin') +:set_parent('Donator') +:allow{ + 'command/admin-chat', + 'command/teleport', + 'command/bring', + 'command/goto' +} + +Roles.new_role('Sponsor','Spon') +:set_flag('is_spectator',true) +:set_custom_color{r=247,g=246,b=54} +:set_permission_group('Trusted') +:set_parent('Pay to Win') +:allow{ +} + +Roles.new_role('Pay to Win','P2W') +:set_flag('is_spectator',true) +:set_custom_color{r=238,g=172,b=44} +:set_permission_group('Trusted') +:set_parent('Donator') +:allow{ +} + +Roles.new_role('Donator','Don') +:set_flag('is_spectator',true) +:set_custom_color{r=230,g=99,b=34} +:set_permission_group('Trusted') +:set_parent('Veteran') +:allow{ +} + +Roles.new_role('Partner','Part') +:set_flag('is_spectator',true) +:set_custom_color{r=140,g=120,b=200} +:set_permission_group('Trusted') +:set_parent('Veteran') +:allow{ +} + +Roles.new_role('Veteran','Vet') +:set_custom_color{r=140,g=120,b=200} +:set_permission_group('Trusted') +:set_parent('Member') +:allow{ +} +:set_auto_promote_condition(playtime(10*hours)) + +Roles.new_role('Member','Mem') +:set_custom_color{r=24,g=172,b=188} +:set_permission_group('Standard') +:set_parent('Regular') :allow{ - 'tp' } Roles.new_role('Regular','Reg') -:set_auto_promote_condition(playtime(5*minutes)) +:set_custom_color{r=79,g=155,b=163} +:set_permission_group('Standard') :set_parent('Guest') -:set_custom_tag('Reg') -:set_permission_group('Trusted') +:allow{ +} +:set_auto_promote_condition(playtime(3*hours)) Roles.new_role('Guest','') -:set_permission_group('Standard') +:set_custom_color{r=185,g=187,b=160} +:set_permission_group('Guest') +:allow{ + 'command/me', + 'command/tag', + 'command/tag-clear', + 'command/chelp' +} -Roles.set_root('Server') +Roles.new_role('Jail') +:set_custom_color{r=50,g=50,b=50} +:set_permission_group('Restricted') +:set_block_auto_promote(true) +:allow{ +} + +Roles.set_root('System') Roles.set_default('Guest') Roles.define_role_order{ - 'Server', - 'Senior Admin', + 'System', + 'Senior Administrator', + 'Administrator', + 'Moderator', + 'Trainee', + 'Sponsor', + 'Pay to Win', + 'Donator', + 'Partner', + 'Veteran', + 'Member', 'Regular', - 'Guest' + 'Guest', + 'Jail' } Roles.override_player_roles{ - Cooldude2606={'Server','Senior Admin'} + 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'}, } \ No newline at end of file diff --git a/expcore/roles.lua b/expcore/roles.lua index 98ebc989..d865122c 100644 --- a/expcore/roles.lua +++ b/expcore/roles.lua @@ -299,6 +299,11 @@ function Roles._prototype:set_auto_promote_condition(callback) return self end +function Roles._prototype:set_block_auto_promote(state) + self.block_auto_promote = state + return self +end + function Roles._prototype:add_player(player,skip_check,skip_event) player = Game.get_player_from_any(player) -- Check the player is valid, can be skipped but a name must be given