mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-03 16:24:27 -05:00 
			
		
		
		
	Added [user_perm()] support to medusa system
This commit is contained in:
		@@ -418,6 +418,14 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor,
 | 
			
		||||
            foreach (var f in cmd.Filters)
 | 
			
		||||
                cb.AddPrecondition(new FilterAdapter(f, strings));
 | 
			
		||||
 | 
			
		||||
            foreach (var up in cmd.UserPerms)
 | 
			
		||||
            {
 | 
			
		||||
                if (up.GuildPerm is { } gp)
 | 
			
		||||
                    cb.AddPrecondition(new UserPermAttribute(gp));
 | 
			
		||||
                else if (up.ChannelPerm is { } cp)
 | 
			
		||||
                    cb.AddPrecondition(new UserPermAttribute(cp));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            cb.WithPriority(cmd.Priority);
 | 
			
		||||
            
 | 
			
		||||
            // using summary to save method name
 | 
			
		||||
@@ -760,6 +768,7 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor,
 | 
			
		||||
        foreach (var method in methodInfos)
 | 
			
		||||
        {
 | 
			
		||||
            var filters = method.GetCustomAttributes<FilterAttribute>(true).ToArray();
 | 
			
		||||
            var userPerms = method.GetCustomAttributes<user_permAttribute>(false).ToArray();
 | 
			
		||||
            var prio = method.GetCustomAttribute<prioAttribute>(true)?.Priority ?? 0;
 | 
			
		||||
 | 
			
		||||
            var paramInfos = method.GetParameters();
 | 
			
		||||
@@ -847,6 +856,7 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor,
 | 
			
		||||
                method,
 | 
			
		||||
                instance,
 | 
			
		||||
                filters,
 | 
			
		||||
                userPerms,
 | 
			
		||||
                cmdContext,
 | 
			
		||||
                diParams,
 | 
			
		||||
                cmdParams,
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ public sealed class SnekCommandData
 | 
			
		||||
        MethodInfo methodInfo,
 | 
			
		||||
        Snek module,
 | 
			
		||||
        FilterAttribute[] filters,
 | 
			
		||||
        user_permAttribute[] userPerms,
 | 
			
		||||
        CommandContextType contextType,
 | 
			
		||||
        IReadOnlyList<Type> injectedParams,
 | 
			
		||||
        IReadOnlyList<ParamData> parameters,
 | 
			
		||||
@@ -21,6 +22,7 @@ public sealed class SnekCommandData
 | 
			
		||||
        MethodInfo = methodInfo;
 | 
			
		||||
        Module = module;
 | 
			
		||||
        Filters = filters;
 | 
			
		||||
        UserPerms = userPerms;
 | 
			
		||||
        ContextType = contextType;
 | 
			
		||||
        InjectedParams = injectedParams;
 | 
			
		||||
        Parameters = parameters;
 | 
			
		||||
@@ -28,6 +30,8 @@ public sealed class SnekCommandData
 | 
			
		||||
        OptionalStrings = strings;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public user_permAttribute[] UserPerms { get; set; }
 | 
			
		||||
 | 
			
		||||
    public CommandStrings OptionalStrings { get; set; }
 | 
			
		||||
 | 
			
		||||
    public IReadOnlyCollection<string> Aliases { get; }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user