mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
103 lines
2.2 KiB
Lua
103 lines
2.2 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
local BUILDER, PART = pac.PartTemplate("base")
|
|
|
|
PART.ClassName = "command"
|
|
|
|
PART.Group = "advanced"
|
|
PART.Icon = "icon16/application_xp_terminal.png"
|
|
|
|
BUILDER:StartStorableVars()
|
|
BUILDER:GetSet("String", "", {editor_panel = "string"})
|
|
BUILDER:GetSet("UseLua", false)
|
|
BUILDER:GetSet("ExecuteOnWear", false)
|
|
BUILDER:GetSet("ExecuteOnShow", true)
|
|
BUILDER:EndStorableVars()
|
|
|
|
local sv_allowcslua = GetConVar("sv_allowcslua")
|
|
local function canRunLua()
|
|
return sv_allowcslua:GetBool() or pac.AllowClientsideLUA
|
|
end
|
|
|
|
function PART:OnWorn()
|
|
if self:GetExecuteOnWear() then
|
|
self:Execute()
|
|
end
|
|
end
|
|
|
|
function PART:OnShow(from_rendering)
|
|
if not from_rendering and self:GetExecuteOnShow() then
|
|
self:Execute()
|
|
end
|
|
end
|
|
|
|
function PART:SetUseLua(b)
|
|
self.UseLua = b
|
|
self:SetString(self:GetString())
|
|
end
|
|
|
|
function PART:SetString(str)
|
|
if self.UseLua and canRunLua() and self:GetPlayerOwner() == pac.LocalPlayer then
|
|
self.func = CompileString(str, "pac_event")
|
|
end
|
|
|
|
self.String = str
|
|
end
|
|
|
|
function PART:GetCode()
|
|
return self.String
|
|
end
|
|
|
|
function PART:SetCode(str)
|
|
self.String = str
|
|
end
|
|
|
|
function PART:ShouldHighlight(str)
|
|
return _G[str] ~= nil
|
|
end
|
|
|
|
function PART:GetNiceName()
|
|
if self.UseLua then
|
|
return ("lua: " .. self.String)
|
|
end
|
|
return "command: " .. self.String
|
|
end
|
|
|
|
function PART:Execute()
|
|
local ent = self:GetPlayerOwner()
|
|
|
|
if ent == pac.LocalPlayer then
|
|
if self.UseLua and self.func then
|
|
if canRunLua() then
|
|
local status, err = pcall(self.func)
|
|
|
|
if not status then
|
|
self:SetError(err)
|
|
ErrorNoHalt(err .. "\n")
|
|
end
|
|
else
|
|
local msg = "clientside lua is disabled (sv_allowcslua 0)"
|
|
self:SetError(msg)
|
|
pac.Message(tostring(self) .. " - ".. msg)
|
|
end
|
|
else
|
|
if hook.Run("PACCanRunConsoleCommand", self.String) == false then return end
|
|
if IsConCommandBlocked(self.String) then
|
|
self:SetError("Concommand is blocked")
|
|
return
|
|
end
|
|
ent:ConCommand(self.String)
|
|
end
|
|
end
|
|
end
|
|
|
|
BUILDER:Register()
|