Command !kick <id> <reason>
i want, if i use this command on myself, then show Msg
" You can not kick yourself"
and if i type !kick <id> and <reason> missing then show msg
"reason must be entered"
i hope anybody will make it for me.
Roles = {
[1] = 'Admin',
}
Permissions = {
['kick'] = 1
}
addhook('say', 'SayHook')
function SayHook(id, text)
return SayHookCommands(id, text) or 0
end
function SayHookCommands(id, text)
text = text:lower()
if string.sub(text, #text-1,#text) == '@C' then
text = string.sub(text, 1, #text-2)
end
if text:sub(1,1) == '!' then
print(GetGN(id)..' used the command: '..text)
command = text:sub(2):split(' ')
local arg = ToTable(text)
arg[1] = arg[1]:sub(2)
if arg[1] == 'kick' then
if --[[PLACE LEVEL OF PLAYER'S STAFF LEVEL HERE]] >= Permissions[arg[1]] then
if ValidArgument(arg[2]) and PlayerExists(tonumber(arg[2])) then
arg[3] = FixArgument(text, 3)
if not ValidArgument(arg[3]) then
arg[3] = 'No reason stated.'
end
parse('kick "'..tonumber(arg[2])..'" "'..arg[3]..'"')
else
ReturnError(id, 4)
end
else
ReturnError(id, 2, Permissions[arg[1]])
end
else
ReturnError(id, 1)
return 1
end
end
return 0
end
function ReturnError(id, error, level)
local text = ""
if error == 1 then
text = "Unknown command."
elseif error == 2 then
text = "A staff level of '"..Roles[level].."' is required to use this command."
elseif error == 3 then
text = "Invalid command arguments."
elseif error == 4 then
text = "The given argument either does not exist or it is invalid."
elseif error == 5 then
text = "You may not use this command on yourself."
elseif error == 6 then
text = "You may not use this command in this area."
elseif error == 7 then
text = "The player stated is already dead."
else
text = "Unknown exception has occured."
end
HUDMsg(id, text, "error")
end
function FixArgument(text, num)
local arg = ""
for k, v in ipairs(text:split(' ')) do
if k >= num then
arg = arg..' '..v
end
end
return arg
end
function ValidArgument(arg)
if arg and arg ~= "" then
return true
end
return false
end
function ToTable(t, match)
local cmd = {}
if not match then match = "[^%s]+" end
for word in string.gmatch(t, match) do
table.insert(cmd, word)
end
return cmd
end
Roles = {
[1] = 'Admin',
}
Permissions = {
['kick'] = 1
}
addhook('say', 'SayHook')
function SayHook(id, text)
return SayHookCommands(id, text) or 0
end
function SayHookCommands(id, text)
text = text:lower()
if string.sub(text, #text-1,#text) == '@C' then
text = string.sub(text, 1, #text-2)
end
if text:sub(1,1) == '!' then
print(GetGN(id)..' used the command: '..text)
command = text:sub(2):split(' ')
local arg = ToTable(text)
arg[1] = arg[1]:sub(2)
if arg[1] == 'kick' then
if --[[PLACE LEVEL OF PLAYER'S STAFF LEVEL HERE]] >= Permissions[arg[1]] then
if ValidArgument(arg[2]) and PlayerExists(tonumber(arg[2])) then
arg[3] = FixArgument(text, 3)
if not ValidArgument(arg[3]) then
arg[3] = 'No reason stated.'
end
parse('kick "'..tonumber(arg[2])..'" "'..arg[3]..'"')
else
ReturnError(id, 4)
end
else
ReturnError(id, 2, Permissions[arg[1]])
end
else
ReturnError(id, 1)
return 1
end
end
return 0
end
function ReturnError(id, error, level)
local text = ""
if error == 1 then
text = "Unknown command."
elseif error == 2 then
text = "A staff level of '"..Roles[level].."' is required to use this command."
elseif error == 3 then
text = "Invalid command arguments."
elseif error == 4 then
text = "The given argument either does not exist or it is invalid."
elseif error == 5 then
text = "You may not use this command on yourself."
elseif error == 6 then
text = "You may not use this command in this area."
elseif error == 7 then
text = "The player stated is already dead."
else
text = "Unknown exception has occured."
end
HUDMsg(id, text, "error")
end
function FixArgument(text, num)
local arg = ""
for k, v in ipairs(text:split(' ')) do
if k >= num then
arg = arg..' '..v
end
end
return arg
end
function ValidArgument(arg)
if arg and arg ~= "" then
return true
end
return false
end
function ToTable(t, match)
local cmd = {}
if not match then match = "[^%s]+" end
for word in string.gmatch(t, match) do
table.insert(cmd, word)
end
return cmd
end