aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--discord/colour.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/discord/colour.py b/discord/colour.py
index 8f042687..d91aa2a1 100644
--- a/discord/colour.py
+++ b/discord/colour.py
@@ -24,6 +24,8 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
"""
+import colorsys
+
class Colour:
"""Represents a Discord role colour. This class is similar
to an (red, green, blue) :class:`tuple`.
@@ -105,6 +107,12 @@ class Colour:
return cls((r << 16) + (g << 8) + b)
@classmethod
+ def from_hsv(cls, h, s, v):
+ """Constructs a :class:`Colour` from an HSV tuple."""
+ rgb = colorsys.hsv_to_rgb(h, s, v)
+ return cls.from_rgb(*(int(x * 255) for x in rgb))
+
+ @classmethod
def default(cls):
"""A factory method that returns a :class:`Colour` with a value of 0."""
return cls(0)