Added Role Commands

This commit is contained in:
Cooldude2606
2019-04-11 16:55:10 +01:00
parent eaec5f438f
commit ee2344acdb
4 changed files with 54 additions and 2 deletions

View File

@@ -14,6 +14,7 @@ return {
'modules.commands.cheat-mode', 'modules.commands.cheat-mode',
'modules.commands.interface', 'modules.commands.interface',
'modules.commands.help', 'modules.commands.help',
'modules.commands.roles',
-- QoL Addons -- QoL Addons
'modules.addons.chat-popups', 'modules.addons.chat-popups',
'modules.addons.damage-popups', 'modules.addons.damage-popups',

View File

@@ -58,6 +58,8 @@ Roles.new_role('Moderator','Mod')
:set_flag('is_spectator') :set_flag('is_spectator')
:set_parent('Trainee') :set_parent('Trainee')
:allow{ :allow{
'command/assign-role',
'command/unassign-role'
} }
Roles.new_role('Trainee','TrMod') Roles.new_role('Trainee','TrMod')
@@ -141,7 +143,8 @@ Roles.new_role('Guest','')
'command/me', 'command/me',
'command/tag', 'command/tag',
'command/tag-clear', 'command/tag-clear',
'command/chelp' 'command/chelp',
'command/list-roles'
} }
--- Jail role --- Jail role

View File

@@ -7,4 +7,7 @@ chelp-title=Help results for "__1__":
chelp-footer=(__1__ results found; page __2__ of __3__) chelp-footer=(__1__ results found; page __2__ of __3__)
chelp-format=/__1__ __2__ - __3__ __4__ chelp-format=/__1__ __2__ - __3__ __4__
chelp-alias=Alias: __1__ chelp-alias=Alias: __1__
chelp-out-of-range=__1__ is an invalid page number. chelp-out-of-range=__1__ is an invalid page number.
roles-higher-role=The role you tried to assign is higher than your highest.
roles-list=All active roles are:
roles-list-element=__1__, [color=__2__]__3__

View File

@@ -0,0 +1,45 @@
local Commands = require 'expcore.commands'
local Roles = require 'expcore.roles'
local Colours = require 'resources.color_presets'
Commands.new_command('assign-role','Assigns a role to a player')
:add_param('player',false,'player-role')
:add_param('role',false,'role')
:set_flag('admin-only',true)
:add_alias('rpromote','assign','role','add-role')
:register(function(player,action_player,role,raw)
local player_highest = Roles.get_player_highest(player)
if player_highest.index < role.index then
Roles.assign_player(action_player,role,player.name)
else
return Commands.error{'exp-commands.roles-higher-role'}
end
end)
Commands.new_command('unassign-role','Unassigns a role from a player')
:add_param('player',false,'player-role')
:add_param('role',false,'role')
:set_flag('admin-only',true)
:add_alias('rdemote','unassign','remove-role')
:register(function(player,action_player,role,raw)
local player_highest = Roles.get_player_highest(player)
if player_highest.index < role.index then
Roles.unassign_player(action_player,role,player.name)
else
return Commands.error{'exp-commands.roles-higher-role'}
end
end)
Commands.new_command('list-roles','Lists all roles in they correct order')
:add_alias('lroles','roles')
:register(function(player,raw)
local roles = Roles.config.order
local message = {'exp-commands.roles-list'}
for _,role_name in pairs(roles) do
local role = Roles.get_role_by_name(role_name)
local colour = role.custom_color or Colours.white
colour = string.format('%d,%d,%d',colour.r,colour.g,colour.b)
message = {'exp-commands.roles-list-element',message,colour,role_name}
end
return Commands.success(message)
end)