Skip to content

Commit

Permalink
Add a common Color implementation #5
Browse files Browse the repository at this point in the history
  • Loading branch information
HopeBaron committed Jun 17, 2020
1 parent c57252a commit 4d7b634
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 14 deletions.
23 changes: 23 additions & 0 deletions common/src/main/kotlin/com/gitlab/kordlib/common/Color.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.gitlab.kordlib.common


class Color(val rgb: Int) {
constructor(red: Int, green: Int, blue: Int) : this(rgb(red, green, blue))

val red: Int get() = (rgb shr 16) and 0xFF
val green: Int get() = (rgb shr 8) and 0xFF
val blue: Int get() = (rgb shr 0) and 0xFF

init {
if (rgb < 0 || rgb > 0xFFFFFF) throw IllegalArgumentException("Color is invalid.")
}
}


private fun rgb(red: Int, green: Int, blue: Int): Int {
return red and 0xFF shl 16 or
(green and 0xFF shl 8) or
(blue and 0xFF) shl 0
}

val java.awt.Color.kColor get() = Color(rgb)
4 changes: 2 additions & 2 deletions core/src/main/kotlin/com/gitlab/kordlib/core/entity/Embed.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.gitlab.kordlib.core.entity

import com.gitlab.kordlib.common.Color
import com.gitlab.kordlib.core.Kord
import com.gitlab.kordlib.core.KordObject
import com.gitlab.kordlib.core.cache.data.*
import com.gitlab.kordlib.core.toInstant
import com.gitlab.kordlib.rest.builder.message.EmbedBuilder
import java.awt.Color
import java.time.Instant

internal const val embedDeprecationMessage = """
Expand Down Expand Up @@ -49,7 +49,7 @@ data class Embed(val data: EmbedData, override val kord: Kord) : KordObject {
/**
* The color of the embed, if present.
*/
val color: Color? get() = data.color?.let { Color(it, true) }
val color: Color? get() = data.color?.let { Color(it) }

/**
* The footer, if present.
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/kotlin/com/gitlab/kordlib/core/entity/Role.kt
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.gitlab.kordlib.core.entity

import com.gitlab.kordlib.common.Color
import com.gitlab.kordlib.common.entity.Permissions
import com.gitlab.kordlib.common.entity.Snowflake
import com.gitlab.kordlib.core.Kord
import com.gitlab.kordlib.core.behavior.RoleBehavior
import com.gitlab.kordlib.core.cache.data.RoleData
import com.gitlab.kordlib.core.supplier.EntitySupplier
import com.gitlab.kordlib.core.supplier.EntitySupplyStrategy
import java.awt.Color
import java.util.*

data class Role(
Expand All @@ -22,7 +22,7 @@ data class Role(
override val guildId: Snowflake
get() = Snowflake(data.guildId)

val color: Color get() = Color(data.color, true)
val color: Color get() = Color(data.color)

val hoisted: Boolean get() = data.hoisted

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.gitlab.kordlib.rest.builder.message

import com.gitlab.kordlib.common.Color
import com.gitlab.kordlib.common.annotation.KordDsl
import com.gitlab.kordlib.rest.builder.RequestBuilder
import com.gitlab.kordlib.rest.json.request.*
import java.awt.Color
import java.time.Instant
import java.time.format.DateTimeFormatter

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.gitlab.kordlib.rest.builder.role

import com.gitlab.kordlib.common.Color
import com.gitlab.kordlib.common.annotation.KordDsl
import com.gitlab.kordlib.common.entity.Permissions
import com.gitlab.kordlib.rest.builder.AuditRequestBuilder
import com.gitlab.kordlib.common.annotation.KordDsl
import com.gitlab.kordlib.rest.json.request.GuildRoleCreateRequest
import java.awt.Color

@KordDsl
class RoleCreateBuilder : AuditRequestBuilder<GuildRoleCreateRequest>{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.gitlab.kordlib.rest.builder.role

import com.gitlab.kordlib.common.Color
import com.gitlab.kordlib.common.annotation.KordDsl
import com.gitlab.kordlib.common.entity.Permissions
import com.gitlab.kordlib.rest.builder.AuditRequestBuilder
import com.gitlab.kordlib.common.annotation.KordDsl
import com.gitlab.kordlib.rest.json.request.GuildRoleModifyRequest
import java.awt.Color

@KordDsl
class RoleModifyBuilder : AuditRequestBuilder<GuildRoleModifyRequest> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package com.gitlab.kordlib.rest.services

import com.gitlab.kordlib.common.Color
import com.gitlab.kordlib.common.entity.*
import com.gitlab.kordlib.rest.json.request.*
import com.gitlab.kordlib.rest.ratelimit.ExclusionRequestRateLimiter
import com.gitlab.kordlib.rest.request.KtorRequestHandler
import com.gitlab.kordlib.rest.request.RequestHandler
import com.gitlab.kordlib.rest.service.RestClient
import io.ktor.client.HttpClient
import io.ktor.client.engine.cio.CIO
import io.ktor.client.features.defaultRequest
import io.ktor.client.request.header
import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.*
import java.awt.Color
import java.util.*

fun image(path: String): String {
Expand Down Expand Up @@ -254,7 +251,7 @@ class RestServiceTest {
val role = createGuildRole(guildId) {
name = "Sudoers"
permissions = Permissions { +Permission.Administrator }
color = Color.RED
color = Color(0xFF0000)
hoist = true
mentionable = true
}
Expand Down

0 comments on commit 4d7b634

Please sign in to comment.