OnPlayerCommand: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
Line 15: | Line 15: | ||
The command will not be executed. | The command will not be executed. | ||
== | local CMD_INTERVAL = 200 --// The interval that needs to pass before the player can execute another cmd | ||
local KICK_AFTER_INTERVAL = 50 --// Kick her if she executes more than 20 cmds/sec | |||
local executions = setmetatable({}, { --// Metatable for non-existing indexes | |||
__index = function(t, k) | |||
rawset(t, k, 0) | |||
return 0 | |||
end | |||
}) | |||
end | |||
addEventHandler("onPlayerCommand", root, | |||
function(cmd) | |||
if (executions[source]-getTickCount()<=CMD_INTERVAL) then | |||
if (executions[source]-getTickCount()<=KICK_AFTER_INTERVAL) then | |||
kickPlayer(source, "Anti-Flood", "Don't flood") | |||
end | |||
cancelEvent() | |||
end | |||
executions[source] = getTickCount() | |||
end | |||
) |
Revision as of 20:40, 18 August 2018
This event is triggered when a player issues a command.
Parameters
string command
Source
The source of this event is the player who tried to execute a command.
Cancel effect
The command will not be executed.
local CMD_INTERVAL = 200 --// The interval that needs to pass before the player can execute another cmd local KICK_AFTER_INTERVAL = 50 --// Kick her if she executes more than 20 cmds/sec
local executions = setmetatable({}, { --// Metatable for non-existing indexes
__index = function(t, k) rawset(t, k, 0) return 0 end
})
addEventHandler("onPlayerCommand", root,
function(cmd) if (executions[source]-getTickCount()<=CMD_INTERVAL) then if (executions[source]-getTickCount()<=KICK_AFTER_INTERVAL) then kickPlayer(source, "Anti-Flood", "Don't flood") end cancelEvent() end executions[source] = getTickCount() end
)