mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
31 lines
1.3 KiB
Lua
31 lines
1.3 KiB
Lua
local Commands = require 'expcore.commands'
|
|
local Roles = require 'expcore.roles'
|
|
require 'config.command_parse_general'
|
|
|
|
Commands.new_command('kill','Kills yourself or another player.')
|
|
:add_param('player',true,'player-alive') -- the player to kill, must be alive to be valid
|
|
:set_defaults{player=function(player)
|
|
-- default is the player unless they are dead
|
|
if player.character and player.character.health > 0 then
|
|
return player
|
|
end
|
|
end}
|
|
:register(function(player,action_player,raw)
|
|
if not action_player then
|
|
-- can only be nil if no player given and the user is dead
|
|
return Commands.error{'exp-commands.kill-already-dead'}
|
|
end
|
|
if player == action_player then
|
|
action_player.character.die()
|
|
elseif Roles.player_allowed(player,'command/kill/always') then
|
|
local player_highest = Roles.get_player_highest_role(player)
|
|
local action_player_highest = Roles.get_player_highest_role(action_player)
|
|
if player_highest.index < action_player_highest.index then
|
|
action_player.character.die()
|
|
else
|
|
return Commands.error{'expcore-roles.command-error-higher-role',action_player.name}
|
|
end
|
|
else
|
|
return Commands.error{'expcore-commands.unauthorized'}
|
|
end
|
|
end) |