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

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 лайка

Возвращаемся в прошлую тему с перебаном
Нашел проблему что бан не работает через консоль и вот вопрос
Как добавить проверку на консоль?

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

Сработало! Спасибо)

1 лайк

Достаточно вот так

--  Анти перебан
hook.Add(ULib.HOOK_COMMAND_CALLED, "banid_filter", function(pl, cmd, args)
	if not IsValid(pl) or 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)

Можете дать подобное для sam админки?

Не могу

Печально, спасибо за ответ

hook.Add("SAM.CanRunCommand", "SAM.AntiSecondBan", function(ply, cmd_name, args)
	if sam.isconsole(ply) or cmd_name ~= "banid" then return end
	
	local target = args[2]
	sam.player.is_banned(target, function(bBanned)
		if bBanned then
			ply:sam_send_message("Вы не можете перебанить игрока, который уже в бане!")
			return false
		end
	end)
end)
1 лайк

Спасибо большое! Проверю

Я делал с проверкой на SAM админке, все работает)

1 лайк