From 210c360fca85268c4697c4c4669af904f0e298af Mon Sep 17 00:00:00 2001 From: Christopher F Date: Sat, 26 Nov 2016 21:32:21 -0500 Subject: [PATCH 1/2] Throw an exception when creating a Color with an invalid float value This prevents a 400 when sending a malformed color to Discord. --- src/Discord.Net.Core/Entities/Roles/Color.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Discord.Net.Core/Entities/Roles/Color.cs b/src/Discord.Net.Core/Entities/Roles/Color.cs index 563917959..d518d6edd 100644 --- a/src/Discord.Net.Core/Entities/Roles/Color.cs +++ b/src/Discord.Net.Core/Entities/Roles/Color.cs @@ -32,6 +32,12 @@ namespace Discord } public Color(float r, float g, float b) { + if (r <= 0.0f && r >= 1.0f) + throw new ArgumentOutOfRangeException(nameof(r), "A float value must be within [0,1]"); + if (g <= 0.0f || g >= 1.0f) + throw new ArgumentOutOfRangeException(nameof(g), "A float value must be within [0,1]"); + if (b <= 0.0f || b >= 1.0f) + throw new ArgumentOutOfRangeException(nameof(b), "A float value must be within [0,1]"); RawValue = ((uint)(r * 255.0f) << 16) | ((uint)(g * 255.0f) << 8) | From 9d4339e6952b10c010ec9f2e2197cc8a78aaf803 Mon Sep 17 00:00:00 2001 From: Christopher F Date: Sat, 26 Nov 2016 22:13:43 -0500 Subject: [PATCH 2/2] Fix a few typos in Color constraint logic --- src/Discord.Net.Core/Entities/Roles/Color.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Discord.Net.Core/Entities/Roles/Color.cs b/src/Discord.Net.Core/Entities/Roles/Color.cs index d518d6edd..ead46fd8a 100644 --- a/src/Discord.Net.Core/Entities/Roles/Color.cs +++ b/src/Discord.Net.Core/Entities/Roles/Color.cs @@ -32,11 +32,11 @@ namespace Discord } public Color(float r, float g, float b) { - if (r <= 0.0f && r >= 1.0f) + if (r < 0.0f || r > 1.0f) throw new ArgumentOutOfRangeException(nameof(r), "A float value must be within [0,1]"); - if (g <= 0.0f || g >= 1.0f) + if (g < 0.0f || g > 1.0f) throw new ArgumentOutOfRangeException(nameof(g), "A float value must be within [0,1]"); - if (b <= 0.0f || b >= 1.0f) + if (b < 0.0f || b > 1.0f) throw new ArgumentOutOfRangeException(nameof(b), "A float value must be within [0,1]"); RawValue = ((uint)(r * 255.0f) << 16) |