add sborka
This commit is contained in:
130
garrysmod/addons/luadev/lua/autorun/server/luadev_chatcmds.lua
Normal file
130
garrysmod/addons/luadev/lua/autorun/server/luadev_chatcmds.lua
Normal file
@@ -0,0 +1,130 @@
|
||||
hook.Add("Think","luadev_cmdsinit",function()
|
||||
hook.Remove("Think","luadev_cmdsinit")
|
||||
|
||||
local function add(cmd,callback)
|
||||
if aowl and aowl.AddCommand then
|
||||
aowl.AddCommand(cmd,function(ply,script,param_a,...)
|
||||
|
||||
local a,b
|
||||
|
||||
easylua.End() -- nesting not supported
|
||||
|
||||
local ret,why = callback(ply,script,param_a,...)
|
||||
if not ret then
|
||||
if why==false then
|
||||
a,b = false,why or aowl.TargetNotFound(param_a or "notarget") or "H"
|
||||
elseif isstring(why) then
|
||||
ply:ChatPrint("FAILED: "..tostring(why))
|
||||
a,b= false,tostring(why)
|
||||
end
|
||||
end
|
||||
|
||||
easylua.Start(ply)
|
||||
return a,b
|
||||
|
||||
end,cmd=="lm" and "players" or "developers")
|
||||
end
|
||||
end
|
||||
|
||||
local function X(ply,i) return luadev.GetPlayerIdentifier(ply,'cmd:'..i) end
|
||||
|
||||
add("l", function(ply, line, target)
|
||||
if not line or line=="" then return false,"invalid script" end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(line,"l") if not valid then return false,err end end
|
||||
return luadev.RunOnServer(line, X(ply,"l"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("ls", function(ply, line, target)
|
||||
if not line or line=="" then return false,"invalid script" end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(line,"ls") if not valid then return false,err end end
|
||||
return luadev.RunOnShared(line, X(ply,"ls"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("lc", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(line,"lc") if not valid then return false,err end end
|
||||
return luadev.RunOnClients(line, X(ply,"lc"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("lsc", function(ply, line, target)
|
||||
local script = string.sub(line, string.find(line, target, 1, true)+#target+1)
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(script,'lsc') if not valid then return false,err end end
|
||||
|
||||
easylua.Start(ply) -- for _G.we -> #us
|
||||
local ent = easylua.FindEntity(target)
|
||||
if type(ent) == 'table' then
|
||||
ent = ent.get()
|
||||
end
|
||||
easylua.End()
|
||||
|
||||
return luadev.RunOnClient(script, ent, X(ply,"lsc"), {ply=ply})
|
||||
end)
|
||||
local sv_allowcslua = GetConVar"sv_allowcslua"
|
||||
add("lm", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(line,'lm') if not valid then return false,err end end
|
||||
|
||||
if not ply:IsAdmin() and not sv_allowcslua:GetBool() then return false,"sv_allowcslua is 0" end
|
||||
|
||||
luadev.RunOnClient(line, ply,X(ply,"lm"), {ply=ply})
|
||||
|
||||
end)
|
||||
|
||||
add("lb", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(line,'lb') if not valid then return false,err end end
|
||||
|
||||
luadev.RunOnClient(line, ply, X(ply,"lb"), {ply=ply})
|
||||
return luadev.RunOnServer(line, X(ply,"lb"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("print", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript('x('..line..')','print') if not valid then return false,err end end
|
||||
|
||||
return luadev.RunOnServer("print(" .. line .. ")", X(ply,"print"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("table", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript('x('..line..')','table') if not valid then return false,err end end
|
||||
|
||||
return luadev.RunOnServer("PrintTable(" .. line .. ")", X(ply,"table"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("keys", function(ply, line, table, search)
|
||||
if not line or line=="" then return end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript('x('..table..')','keys') if not valid then return false,err end end
|
||||
|
||||
search = search and search:lower() or ""
|
||||
return luadev.RunOnServer(
|
||||
"local t={} for k,v in pairs(" .. table .. ") do t[#t+1]=tostring(k) end table.sort(t) for k,v in pairs(t) do if string.find(v:lower(),\"" .. search .. "\",1,true) then print(v) end end",
|
||||
X(ply,"keys"), {ply=ply}
|
||||
)
|
||||
end)
|
||||
|
||||
add("printc", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
line = "easylua.PrintOnServer(" .. line .. ")"
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(line,'printc') if not valid then return false,err end end
|
||||
|
||||
return luadev.RunOnClients(line, X(ply,"printc"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("printm", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
line = "easylua.PrintOnServer(" .. line .. ")"
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript(line,'printm') if not valid then return false,err end end
|
||||
|
||||
luadev.RunOnClient(line, ply, X(ply,"printm"), {ply=ply})
|
||||
end)
|
||||
|
||||
add("printb", function(ply, line, target)
|
||||
if not line or line=="" then return end
|
||||
if luadev.ValidScript then local valid,err = luadev.ValidScript('x('..line..')','printb') if not valid then return false,err end end
|
||||
|
||||
luadev.RunOnClient("easylua.PrintOnServer(" .. line .. ")", ply, X(ply,"printb"), {ply=ply})
|
||||
return luadev.RunOnServer("print(" .. line .. ")", X(ply,"printb"), {ply=ply})
|
||||
end)
|
||||
|
||||
end)
|
||||
Reference in New Issue
Block a user