Browse Source

Merge cf457a9004 into 170a2e00bd

pull/976/merge
Paulo GitHub 8 years ago
parent
commit
f07994af30
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 20 deletions
  1. +3
    -20
      src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs

+ 3
- 20
src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs View File

@@ -246,7 +246,7 @@ namespace Discord.Commands
builder.Summary = summary.Text; builder.Summary = summary.Text;
break; break;
case OverrideTypeReaderAttribute typeReader: case OverrideTypeReaderAttribute typeReader:
builder.TypeReader = GetTypeReader(service, paramType, typeReader.TypeReader, services);
builder.TypeReader = ReflectionUtils.CreateObject<TypeReader>(typeReader.TypeReader.GetTypeInfo(), service, services);
break; break;
case ParamArrayAttribute _: case ParamArrayAttribute _:
builder.IsMultiple = true; builder.IsMultiple = true;
@@ -274,28 +274,11 @@ namespace Discord.Commands


if (builder.TypeReader == null) if (builder.TypeReader == null)
{ {
builder.TypeReader = service.GetDefaultTypeReader(paramType)
?? service.GetTypeReaders(paramType)?.FirstOrDefault().Value;
builder.TypeReader = service.GetTypeReaders(paramType)?.FirstOrDefault().Value
?? service.GetDefaultTypeReader(paramType);
} }
} }


private static TypeReader GetTypeReader(CommandService service, Type paramType, Type typeReaderType, IServiceProvider services)
{
var readers = service.GetTypeReaders(paramType);
TypeReader reader = null;
if (readers != null)
{
if (readers.TryGetValue(typeReaderType, out reader))
return reader;
}

//We dont have a cached type reader, create one
reader = ReflectionUtils.CreateObject<TypeReader>(typeReaderType.GetTypeInfo(), service, services);
service.AddTypeReader(paramType, reader);

return reader;
}

private static bool IsValidModuleDefinition(TypeInfo typeInfo) private static bool IsValidModuleDefinition(TypeInfo typeInfo)
{ {
return _moduleTypeInfo.IsAssignableFrom(typeInfo) && return _moduleTypeInfo.IsAssignableFrom(typeInfo) &&


Loading…
Cancel
Save