function logs.Register(typ, superadmin, color)
	logs.types[typ] = {typ, superadmin, color}
	logs.data[typ] = {}
end

function logs.HasPerms(ply)
	if !IsValid(ply) then return false end
	return logs.cfg.Admins[ply:GetUserGroup()] or false
end

function logs.ResolveOwner(ply, fallback, ply2)
	local isvalid = IsValid(ply)
	local str = isvalid and ply:NameID() or fallback
	return isvalid and ply == ply2 and "sich selbst" or str
end

local c = 0
function logs.AddHook(hook_name, func, priority)
	if SERVER then
		hook.Add(hook_name, "logs_"..c.."."..hook_name, func, priority or HOOK_MONITOR_LOW or 2)
		c = c + 1
	end
end