commonMain.data.GroupHonorListData.kt Maven / Gradle / Ivy
/*
* Copyright 2019-2021 Mamoe Technologies and contributors.
*
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
*
* https://github.com/mamoe/mirai/blob/dev/LICENSE
*/
package net.mamoe.mirai.data
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
import kotlinx.serialization.descriptors.SerialDescriptor
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder
import net.mamoe.mirai.utils.DeprecatedSinceMirai
import net.mamoe.mirai.utils.MiraiExperimentalApi
/**
* 群荣誉信息
*/
@MiraiExperimentalApi
public enum class GroupHonorType(public val value: Int) {
TALKATIVE(1), // 龙王
PERFORMER(2), // 群聊之火
LEGEND(3), // 群聊炽焰
STRONG_NEWBIE(5), // 冒尖小春笋
EMOTION(6), // 快乐源泉
ACTIVE(7), // 活跃头衔
EXCLUSIVE(8), // 特殊头衔
MANAGE(9); // 管理头衔
internal companion object {
@JvmStatic
internal fun deserializeFromInt(value: Int): GroupHonorType = values().first { it.value == value }
}
}
@MiraiExperimentalApi
@Serializable
public data class GroupHonorListData(
@SerialName("gc")
val gc: String?,
@Serializable(with = GroupHonorTypeSerializer::class)
@SerialName("type")
val type: GroupHonorType?,
@SerialName("uin")
val uin: String?,
@SerialName("talkativeList")
val talkativeList: List? = null,
@SerialName("currentTalkative")
val currentTalkative: CurrentTalkative? = null,
@SerialName("actorList")
val actorList: List? = null,
@SerialName("legendList")
val legendList: List? = null,
@SerialName("newbieList")
val newbieList: List? = null,
@SerialName("strongnewbieList")
val strongNewbieList: List? = null,
@SerialName("emotionList")
val emotionList: List? = null,
@SerialName("levelname")
val levelName: LevelName? = null,
@SerialName("manageList")
val manageList: List? = null,
@SerialName("exclusiveList")
val exclusiveList: List? = null,
@SerialName("activeObj")
val activeObj: Map?>? = null, // Key为活跃等级名, 如`冒泡`
@SerialName("showActiveObj")
val showActiveObj: Map? = null,
@SerialName("myTitle")
val myTitle: String?,
@SerialName("myIndex")
val myIndex: Int? = 0,
@SerialName("myAvatar")
val myAvatar: String?,
@SerialName("hasServerError")
val hasServerError: Boolean?,
@SerialName("hwExcellentList")
val hwExcellentList: List? = null
) {
@Deprecated(
message = "Meaningless response",
level = DeprecationLevel.HIDDEN,
replaceWith = ReplaceWith("error(\"Delete me\")"),
)
@DeprecatedSinceMirai(errorSince = "2.7", hiddenSince = "2.10") // maybe 2.7
@Suppress("DEPRECATION_ERROR")
val acceptLanguages: List? get() = null
@Deprecated(
message = "Meaningless response",
level = DeprecationLevel.HIDDEN,
)
@DeprecatedSinceMirai(errorSince = "2.7", hiddenSince = "2.10") // maybe 2.7
public data class Language(
@SerialName("code")
val code: String? = null,
@SerialName("script")
val script: String? = null,
@SerialName("region")
val region: String? = null,
@SerialName("quality")
val quality: Double? = null
)
@Serializable
public data class Actor(
@SerialName("uin")
val uin: Long? = 0,
@SerialName("avatar")
val avatar: String? = null,
@SerialName("name")
val name: String? = null,
@SerialName("desc")
val desc: String? = null,
@SerialName("btnText")
val btnText: String? = null,
@SerialName("text")
val text: String? = null,
@SerialName("icon")
val icon: Int?
)
@Serializable
public data class Talkative(
@SerialName("uin")
val uin: Long? = 0,
@SerialName("avatar")
val avatar: String? = null,
@SerialName("name")
val name: String? = null,
@SerialName("desc")
val desc: String? = null,
@SerialName("btnText")
val btnText: String? = null,
@SerialName("text")
val text: String? = null
)
@Serializable
public data class CurrentTalkative(
@SerialName("uin")
val uin: Long? = 0,
@SerialName("day_count")
val dayCount: Int? = null,
@SerialName("avatar")
val avatar: String? = null,
@SerialName("avatar_size")
val avatarSize: Int? = null,
@SerialName("nick")
val nick: String? = null
)
@Serializable
public data class LevelName(
@SerialName("lvln1")
val lv1: String? = null,
@SerialName("lvln2")
val lv2: String? = null,
@SerialName("lvln3")
val lv3: String? = null,
@SerialName("lvln4")
val lv4: String? = null,
@SerialName("lvln5")
val lv5: String? = null,
@SerialName("lvln6")
val lv6: String? = null
)
@Serializable
public data class Tag(
@SerialName("uin")
val uin: Long? = 0,
@SerialName("avatar")
val avatar: String? = null,
@SerialName("name")
val name: String? = null,
@SerialName("btnText")
val btnText: String? = null,
@SerialName("text")
val text: String? = null,
@SerialName("tag")
val tag: String? = null, // 头衔
@SerialName("tagColor")
val tagColor: String? = null
)
public object GroupHonorTypeSerializer : KSerializer {
override val descriptor: SerialDescriptor =
PrimitiveSerialDescriptor("GroupHonorTypeSerializer", PrimitiveKind.INT)
override fun serialize(encoder: Encoder, value: GroupHonorType) {
encoder.encodeInt(value.value)
}
override fun deserialize(decoder: Decoder): GroupHonorType {
return GroupHonorType.deserializeFromInt(decoder.decodeInt())
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy