diff --git a/common/src/commonMain/kotlin/entity/DiscordActivity.kt b/common/src/commonMain/kotlin/entity/DiscordActivity.kt index b233edc206f3..f832a3839632 100644 --- a/common/src/commonMain/kotlin/entity/DiscordActivity.kt +++ b/common/src/commonMain/kotlin/entity/DiscordActivity.kt @@ -31,6 +31,7 @@ import kotlinx.serialization.encoding.Encoder public data class DiscordBotActivity( val name: String, val type: ActivityType, + val state: Optional = Optional.Missing(), val url: Optional = Optional.Missing() ) @@ -68,7 +69,7 @@ public enum class ActivityFlag(public val value: Int) { public class ActivityFlags(public val value: Int) { public val flags: Set - get() = ActivityFlag.values().filter { (it.value and value) == it.value }.toSet() + get() = ActivityFlag.entries.filter { (it.value and value) == it.value }.toSet() public operator fun contains(flag: ActivityFlag): Boolean = (flag.value and value) == flag.value diff --git a/gateway/src/commonMain/kotlin/builder/PresenceBuilder.kt b/gateway/src/commonMain/kotlin/builder/PresenceBuilder.kt index 66204208460c..355d53558708 100644 --- a/gateway/src/commonMain/kotlin/builder/PresenceBuilder.kt +++ b/gateway/src/commonMain/kotlin/builder/PresenceBuilder.kt @@ -36,6 +36,10 @@ public class PresenceBuilder { game = DiscordBotActivity(name, ActivityType.Competing) } + public fun custom(name: String, state: String) { + game = DiscordBotActivity(name, state = Optional(state), type = ActivityType.Custom) + } + public fun toUpdateStatus(): UpdateStatus = UpdateStatus(since, listOfNotNull(game), status, afk) public fun toPresence(): DiscordPresence = DiscordPresence(status, afk, since, game)