Fixed type reader/converter parsing exception (#3084)
This commit is contained in:
@@ -17,9 +17,9 @@ namespace Discord.Interactions
|
|||||||
_ => Task.FromResult(TypeConverterResult.FromError(InteractionCommandError.ConvertFailed, $"{option.Type} doesn't have a convertible value."))
|
_ => Task.FromResult(TypeConverterResult.FromError(InteractionCommandError.ConvertFailed, $"{option.Type} doesn't have a convertible value."))
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
catch (InvalidCastException castEx)
|
catch (Exception ex) when (ex is FormatException or InvalidCastException)
|
||||||
{
|
{
|
||||||
return Task.FromResult(TypeConverterResult.FromError(castEx));
|
return Task.FromResult(TypeConverterResult.FromError(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ namespace Discord.Interactions
|
|||||||
public override Task<TypeConverterResult> ReadAsync(IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
|
public override Task<TypeConverterResult> ReadAsync(IInteractionContext context, IApplicationCommandInteractionDataOption option, IServiceProvider services)
|
||||||
{
|
{
|
||||||
object value;
|
object value;
|
||||||
|
|
||||||
if (option.Value is Optional<object> optional)
|
if (option.Value is Optional<object> optional)
|
||||||
value = optional.IsSpecified ? optional.Value : default(T);
|
value = optional.IsSpecified ? optional.Value : default(T);
|
||||||
else
|
else
|
||||||
@@ -52,9 +51,9 @@ namespace Discord.Interactions
|
|||||||
var converted = Convert.ChangeType(value, typeof(T));
|
var converted = Convert.ChangeType(value, typeof(T));
|
||||||
return Task.FromResult(TypeConverterResult.FromSuccess(converted));
|
return Task.FromResult(TypeConverterResult.FromSuccess(converted));
|
||||||
}
|
}
|
||||||
catch (InvalidCastException castEx)
|
catch (Exception ex) when (ex is FormatException or InvalidCastException)
|
||||||
{
|
{
|
||||||
return Task.FromResult(TypeConverterResult.FromError(castEx));
|
return Task.FromResult(TypeConverterResult.FromError(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ namespace Discord.Interactions
|
|||||||
var converted = Convert.ChangeType(option, typeof(T));
|
var converted = Convert.ChangeType(option, typeof(T));
|
||||||
return Task.FromResult(TypeConverterResult.FromSuccess(converted));
|
return Task.FromResult(TypeConverterResult.FromSuccess(converted));
|
||||||
}
|
}
|
||||||
catch (InvalidCastException castEx)
|
catch (Exception ex) when (ex is FormatException or InvalidCastException)
|
||||||
{
|
{
|
||||||
return Task.FromResult(TypeConverterResult.FromError(castEx));
|
return Task.FromResult(TypeConverterResult.FromError(ex));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user