monitor/resource/menu/server/sv_player_mode.lua
2025-04-16 22:30:27 +07:00

27 lines
923 B
Lua

-- Prevent running in monitor mode
if not TX_SERVER_MODE then return end
-- Prevent running if menu is disabled
if not TX_MENU_ENABLED then return end
local IS_PTFX_ENABLED = GetConvarBool('txAdmin-playerModePtfx', true)
RegisterNetEvent('txsv:req:changePlayerMode', function(mode, nearbyPlayers)
local src = source
if mode ~= 'godmode' and mode ~= 'noclip' and mode ~= 'superjump' and mode ~= 'none' then
debugPrint("Invalid player mode requested by " .. GetPlayerName(src) .. " (mode: " .. (mode or 'nil'))
return
end
local allow = PlayerHasTxPermission(src, 'players.playermode')
TriggerEvent('txsv:logger:menuEvent', src, "playerModeChanged", allow, mode)
if allow then
TriggerClientEvent('txcl:setPlayerMode', src, mode, IS_PTFX_ENABLED)
if IS_PTFX_ENABLED then
for _, v in ipairs(nearbyPlayers) do
TriggerClientEvent('txcl:showPtfx', v, src)
end
end
end
end)