dobrograd-13-06-2022/garrysmod/addons/util-gac/lua/d3a/commands/cheatlog.lua
Jonny_Bro (Nikita) e4d5311906 first commit
2023-11-16 15:01:19 +05:00

103 lines
No EOL
2.4 KiB
Lua

COMMAND.Name = "Cheatlog"
COMMAND.Flag = "T"
COMMAND.AdminMode = false
COMMAND.CheckRankWeight = false
COMMAND.Args = {{"player", "Name/SteamID"}}
COMMAND.CheckArgs = function(pl, cmd, args)
local margs = cmd.Args
local err
local supp = {}
if (pl:IsPlayer() and !pl:HasAccess(cmd.Flag)) then
err = "'" .. cmd.Flag .. "' access required!"
end
if (pl:IsPlayer() and cmd.AdminMode and !pl:GetDataVar("adminmode")) then
err = "Adminmode required!"
end
if (!err) then
for k, v in pairs(margs) do
if (!args[k]) then
err = "_"
break
end
if (v[1] == "number") then
if (tostring(tonumber(args[k])) != args[k]) then
err = "_"
break
else
table.insert(supp, tonumber(args[k]))
end
elseif (v[1] == "player") then
if args[k] == "@" then
local targ = D3A.Commands.getPicker( pl )
if targ then
table.insert(supp, targ)
else err = "Couldn't find anyone." end
elseif args[k] == "^" then
table.insert(supp, pl)
else
local targ = D3A.FindPlayer(args[k])
if (targ) then
table.insert(supp, targ)
elseif (!targ and string.sub(args[k], 1, 8) == "STEAM_0:") then
table.insert(supp, args[k])
else
err = "Unknown player/steamid " .. args[k] .. "."
break
end
end
elseif (v[1] == "string") then
args[k] = tostring(args[k])
end
end
end
if (err) then
if (err == "_") then
err = "Usage: " .. cmd.Name .. " "
for k, v in pairs(margs) do
err = err .. v[1] .. ":" .. v[2] .. " "
end
end
D3A.Chat.SendToPlayer(pl, err, "ERR")
return false
end
return supp
end
COMMAND.Run = function(pl, args, supp)
local targstid, nameid
if (isstring(supp[1])) then
targstid = supp[1]
nameid = targstid
else
targstid = supp[1]:SteamID()
nameid = supp[1]:NameID()
end
gAC.GetLog( targstid, function(data)
if isstring(data) then
gAC.ClientMessage( pl, data, Color( 225, 150, 25 ) )
else
if data == {} or data == nil then
gAC.ClientMessage( pl, nameid .. " has no detections.", Color( 0, 255, 0 ) )
else
gAC.PrintMessage(pl, HUD_PRINTCONSOLE, "\n\n")
gAC.PrintMessage(pl, HUD_PRINTCONSOLE, "Detection Log for " .. nameid .. "\n")
for k, v in pairs(data) do
gAC.PrintMessage(pl, HUD_PRINTCONSOLE, os.date( "[%H:%M:%S %p - %d/%m/%Y]", v["time"] ) .. " - " .. v["detection"] .. "\n")
end
gAC.ClientMessage( pl, "Look in console.", Color( 0, 255, 0 ) )
end
end
end)
end