[ULX] Как сделать анти перебан?

Готовое решение

hook.Add(ULib.HOOK_COMMAND_CALLED, "banid_filter", function(pl, cmd, args)
	if not ULib.ucl.query(pl, cmd) or cmd ~= "ulx banid" then return end
	if not pl:IsSuperAdmin() and ULib.bans[ args[1] ] then
		pl:ChatPrint("Вы не можете перебанить игрока, который уже в бане")
		return false
	end
end)

Спасибо @GMD

Добавить проверку забанен ли пользователь

Типа так?

------------------------------ BanID ------------------------------
function ulx.banid( calling_ply, steamid, minutes, reason )
	steamid = steamid:upper()
	if not ULib.isValidSteamID( steamid ) then
		ULib.tsayError( calling_ply, "Invalid steamid." )
		return
	end
-----------------  Супер система от перебана -----------------
	local banData = ULib.bans[ steamid ]
	if banData then
		ULib.tsayError( calling_ply, "Данный игрок уже в бане!", true )
	end
-------------------  А тут она кончилась ------------------------
	local name, target_ply
	local plys = player.GetAll()
	for i=1, #plys do
		if plys[ i ]:SteamID() == steamid then
			target_ply = plys[ i ]
			name = target_ply:Nick()
			break
		end
	end

	if target_ply and (target_ply:IsListenServerHost() or target_ply:IsBot()) then
		ULib.tsayError( calling_ply, "This player is immune to banning", true )
		return
	end

	local time = "for #s"
	if minutes == 0 then time = "permanently" end
	local str = "#A banned steamid #s "
	displayid = steamid
	if name then
		displayid = displayid .. "(" .. name .. ") "
	end
	str = str .. time
	if reason and reason ~= "" then str = str .. " (#4s)" end
	ulx.fancyLogAdmin( calling_ply, str, displayid, minutes ~= 0 and ULib.secondsToStringTime( minutes * 60 ) or reason, reason )
	-- Delay by 1 frame to ensure any chat hook finishes with player intact. Prevents a crash.
	ULib.queueFunctionCall( ULib.addBan, steamid, minutes, reason, name, calling_ply )
end

ну типа, добавь только проверку

что-бы супер-мены могли перебанивать, в отличии от обычных плебсов.

Да до этого еще далеко
У меня ничего не меняется я скачал ulx и ulib закинул в аддоны добавляю проверку и ничего не меняется даже не принтует ничего

	print(ULib.bans[ steamid ])
	if !calling_ply:IsSuperAdmin and ULib.bans[ steamid ] then
		ULib.tsayError( calling_ply, "Данный игрок уже в бане!", true )
		return
	end

ты в ulx banid передаёшь steamid 32 или 64?
алсо

тута надо () в конец добавить

А разницы нет что передавать пока даже текст в чате при бане не меняется
Я не понимаю почему ничего не происходит при изменении

Я думаю там обычный STEAM_0:0 ибо он не меняет его нигде

------------------------------ BanID ------------------------------
function ulx.banid( calling_ply, steamid, minutes, reason )
	steamid = steamid:upper()
	if not ULib.isValidSteamID( steamid ) then
		ULib.tsayError( calling_ply, "Invalid steamid." )
		return
	end

	local name, target_ply
	local plys = player.GetAll()
	for i=1, #plys do
		if plys[ i ]:SteamID() == steamid then
			target_ply = plys[ i ]
			name = target_ply:Nick()
			break
		end
	end

	if target_ply and (target_ply:IsListenServerHost() or target_ply:IsBot()) then
		ULib.tsayError( calling_ply, "This player is immune to banning", true )
		return
	end
-----------------  Супер система от перебана -----------------
	print(ULib.bans[ steamid ])
	if !calling_ply:IsSuperAdmin() and ULib.bans[ steamid ] then
		ULib.tsayError( calling_ply, "Данный игрок уже в бане!", true )
		return
	end
-------------------  А тут она кончилась ------------------------
	local time = "for #s"
	if minutes == 0 then time = "permanently" end
	local str = "#A banned steamid #s "
	displayid = steamid
	if name then
		displayid = displayid .. "(" .. name .. ") "
	end
	str = str .. time
	if reason and reason ~= "" then str = str .. " (#4s)" end
	ulx.fancyLogAdmin( calling_ply, str, displayid, minutes ~= 0 and ULib.secondsToStringTime( minutes * 60 ) or reason, reason )
	-- Delay by 1 frame to ensure any chat hook finishes with player intact. Prevents a crash.
	ULib.queueFunctionCall( ULib.addBan, steamid, minutes, reason, name, calling_ply )
end

разница есть, ибо

ну и

У меня изменения кода не применяются это главная проблема которая не дает мне ничего делать
Есть варианты в чем может быть дело?

addons/anyname/lua/ulx/modules/anti_pereban.lua

hook(ULib.HOOK_COMMAND_CALLED, "banid_filter", function(pl, cmd, args)
	if not ULib.ucl.query(pl, cmd) or cmd ~= "ulx banid" then return end

	-- local targs = ULib.getUsers(args[1], true)
	local bandata = ULib.bans[ args[1] ]
	if bandata then
		pl:ChatPrint("Вы не можете перебанить игрока, который уже в бане")
		return false
	end
end)
2 симпатии

хз почему так, мб у тебя несколько копий ulx установленно - например одна подгружается в воркшопа, а одна установленна на сервере.

Реально я забыл из файлика строчки убрать
Главное с воркшопа удалил и сижу понять не могу что не так :joy: