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."))
|
||||
};
|
||||
}
|
||||
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)
|
||||
{
|
||||
object value;
|
||||
|
||||
if (option.Value is Optional<object> optional)
|
||||
value = optional.IsSpecified ? optional.Value : default(T);
|
||||
else
|
||||
@@ -52,9 +51,9 @@ namespace Discord.Interactions
|
||||
var converted = Convert.ChangeType(value, typeof(T));
|
||||
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));
|
||||
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