mirror of
				https://gitlab.com/Kwoth/nadekobot.git
				synced 2025-11-03 16:24:27 -05:00 
			
		
		
		
	Added default value support to medusa system, thanks to kotz
This commit is contained in:
		@@ -459,6 +459,9 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor,
 | 
			
		||||
            pb.WithIsMultiple(paramData.IsParams)
 | 
			
		||||
              .WithIsOptional(paramData.IsOptional)
 | 
			
		||||
              .WithIsRemainder(paramData.IsLeftover);
 | 
			
		||||
 | 
			
		||||
            if (paramData.IsOptional)
 | 
			
		||||
                pb.WithDefault(paramData.DefaultValue);
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
    [MethodImpl(MethodImplOptions.NoInlining)]
 | 
			
		||||
@@ -800,6 +803,7 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor,
 | 
			
		||||
 | 
			
		||||
                var leftoverAttribute = pi.GetCustomAttribute<leftoverAttribute>(true);
 | 
			
		||||
                var hasDefaultValue = pi.HasDefaultValue;
 | 
			
		||||
                var defaultValue = pi.DefaultValue;
 | 
			
		||||
                var isLeftover = leftoverAttribute != null;
 | 
			
		||||
                var isParams = pi.GetCustomAttribute<ParamArrayAttribute>() is not null;
 | 
			
		||||
                var paramType = pi.ParameterType;
 | 
			
		||||
@@ -836,7 +840,7 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor,
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                canInject = false;
 | 
			
		||||
                canInject = false;                                                                                           
 | 
			
		||||
 | 
			
		||||
                if (isParams)
 | 
			
		||||
                {
 | 
			
		||||
@@ -857,7 +861,7 @@ public sealed class MedusaLoaderService : IMedusaLoaderService, IReadyExecutor,
 | 
			
		||||
                    throw new ArgumentException("Leftover attribute error.");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                cmdParams.Add(new ParamData(paramType, paramName, hasDefaultValue, isLeftover, isParams));
 | 
			
		||||
                cmdParams.Add(new ParamData(paramType, paramName, hasDefaultValue, defaultValue, isLeftover, isParams));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,7 @@ public sealed record ParamData(
 | 
			
		||||
    Type Type,
 | 
			
		||||
    string Name,
 | 
			
		||||
    bool IsOptional,
 | 
			
		||||
    object? DefaultValue,
 | 
			
		||||
    bool IsLeftover,
 | 
			
		||||
    bool IsParams
 | 
			
		||||
);
 | 
			
		||||
		Reference in New Issue
	
	Block a user