mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
123
lua/pac3/editor/server/bans.lua
Normal file
123
lua/pac3/editor/server/bans.lua
Normal file
@@ -0,0 +1,123 @@
|
||||
--[[
|
||||
| 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 function get_bans()
|
||||
local str = file.Read("pac_bans.txt", "DATA")
|
||||
|
||||
local bans = {}
|
||||
|
||||
if str and str ~= "" then
|
||||
bans = util.KeyValuesToTable(str)
|
||||
end
|
||||
|
||||
do -- check if this needs to be rebuilt
|
||||
local k,v = next(bans)
|
||||
if isstring(v) then
|
||||
local temp = {}
|
||||
|
||||
for k,v in pairs(bans) do
|
||||
temp[util.CRC("gm_" .. v .. "_gm")] = {steamid = v, name = k}
|
||||
end
|
||||
|
||||
bans = temp
|
||||
end
|
||||
end
|
||||
|
||||
return bans
|
||||
end
|
||||
|
||||
function pace.Ban(ply)
|
||||
|
||||
ply:ConCommand("pac_clear_parts")
|
||||
|
||||
timer.Simple( 1, function() -- made it a timer because the ConCommand don't run fast enough. - Bizzclaw
|
||||
|
||||
net.Start("pac_submit_acknowledged")
|
||||
net.WriteBool(false)
|
||||
net.WriteString("You have been banned from using pac!")
|
||||
net.Send(ply)
|
||||
|
||||
local bans = get_bans()
|
||||
|
||||
for key, data in pairs(bans) do
|
||||
if ply:SteamID() == data.steamid then
|
||||
bans[key] = nil
|
||||
end
|
||||
end
|
||||
|
||||
bans[ply:UniqueID()] = {steamid = ply:SteamID(), nick = ply:Nick()}
|
||||
|
||||
pace.Bans = bans
|
||||
|
||||
file.Write("pac_bans.txt", util.TableToKeyValues(bans), "DATA")
|
||||
end)
|
||||
end
|
||||
|
||||
function pace.Unban(ply)
|
||||
|
||||
net.Start("pac_submit_acknowledged")
|
||||
net.WriteBool(true)
|
||||
net.WriteString("You are now permitted to use pac!")
|
||||
net.Send(ply)
|
||||
|
||||
local bans = get_bans()
|
||||
|
||||
for key, data in pairs(bans) do
|
||||
if ply:SteamID() == data.steamid then
|
||||
bans[key] = nil
|
||||
end
|
||||
end
|
||||
|
||||
pace.Bans = bans
|
||||
|
||||
file.Write("pac_bans.txt", util.TableToKeyValues(bans), "DATA")
|
||||
end
|
||||
|
||||
local function GetPlayer(target)
|
||||
for key, ply in pairs(player.GetAll()) do
|
||||
if ply:SteamID() == target or ply:UniqueID() == target or ply:Nick():lower():find(target:lower()) then
|
||||
return ply
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
concommand.Add("pac_ban", function(ply, cmd, args)
|
||||
if not next(args) then
|
||||
pac.Message("Please provide one of the following: SteamID, UniqueID or Nick.")
|
||||
return
|
||||
end
|
||||
local target = GetPlayer(args[1])
|
||||
if (not IsValid(ply) or ply:IsAdmin()) and target then
|
||||
pace.Ban(target)
|
||||
pac.Message(ply, " banned ", target, " from PAC.")
|
||||
end
|
||||
end)
|
||||
|
||||
concommand.Add("pac_unban", function(ply, cmd, args)
|
||||
if not next(args) then
|
||||
pac.Message("Please provide one of the following: SteamID, UniqueID or Nick.")
|
||||
return
|
||||
end
|
||||
local target = GetPlayer(args[1])
|
||||
if (not IsValid(ply) or ply:IsAdmin()) and target then
|
||||
pace.Unban(target)
|
||||
pac.Message(ply, " unbanned ", target, " from PAC.")
|
||||
end
|
||||
end)
|
||||
|
||||
function pace.IsBanned(ply)
|
||||
if not ply or not ply:IsValid() then return false end
|
||||
|
||||
if not pace.Bans then
|
||||
pace.Bans = get_bans()
|
||||
end
|
||||
|
||||
return pace.Bans[ply:UniqueID()] ~= nil
|
||||
end
|
||||
Reference in New Issue
Block a user