mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-12 10:40:21 +08:00
enum Gender
This commit is contained in:
parent
8d1a12d53f
commit
748581b14f
@ -185,25 +185,25 @@ internal object RequestProfileDetailsPacket : SessionPacketFactory<RequestProfil
|
||||
//map.mapValues { it.value.encodeToString() }.printTLVMap("Profile(qq=$qq) str=")
|
||||
val profile = Profile(
|
||||
qq = qq,
|
||||
nickname = map[0x4E22u]?.encodeToString() ?: "",//error("Cannot determine nickname")
|
||||
englishName = map[0x4E54u]?.encodeToString(),
|
||||
chineseName = map[0x4E2Au]?.encodeToString(),
|
||||
qAge = map[0x6597u]?.get(0)?.toInt(),
|
||||
zipCode = map[0x4E25u]?.encodeToString(),
|
||||
phone = map[0x4E27u]?.encodeToString(),
|
||||
gender = when (map[0x4E29u]?.let { it[0] }?.toUInt()) {
|
||||
nickname = map[0x4E22]?.encodeToString() ?: "",//error("Cannot determine nickname")
|
||||
englishName = map[0x4E54]?.encodeToString(),
|
||||
chineseName = map[0x4E2A]?.encodeToString(),
|
||||
qAge = map[0x6597]?.get(0)?.toInt(),
|
||||
zipCode = map[0x4E25]?.encodeToString(),
|
||||
phone = map[0x4E27]?.encodeToString(),
|
||||
gender = when (map[0x4E29]?.let { it[0] }?.toUInt()) {
|
||||
null -> Gender.SECRET //error("Cannot determine gender, entry 0x4E29u not found")
|
||||
0x02u -> Gender.FEMALE
|
||||
0x01u -> Gender.MALE
|
||||
else -> Gender.SECRET // 猜的
|
||||
//else -> error("Cannot determine gender, bad value of 0x4E29u: ${map[0x4729u]!![0].toHexString()}")
|
||||
},
|
||||
birthday = map[0x4E3Fu]?.let { GMTDate(it.toUInt().toLong()) },
|
||||
personalStatement = map[0x4E33u]?.encodeToString(),
|
||||
homepage = map[0x4E2Du]?.encodeToString(),
|
||||
company = map[0x5DC8u]?.encodeToString(),
|
||||
school = map[0x4E35u]?.encodeToString(),
|
||||
email = map[0x4E2Bu]?.encodeToString()
|
||||
birthday = map[0x4E3F]?.let { GMTDate(it.toUInt().toLong()) },
|
||||
personalStatement = map[0x4E33]?.encodeToString(),
|
||||
homepage = map[0x4E2D]?.encodeToString(),
|
||||
company = map[0x5DC8]?.encodeToString(),
|
||||
school = map[0x4E35]?.encodeToString(),
|
||||
email = map[0x4E2B]?.encodeToString()
|
||||
)
|
||||
map.clear()
|
||||
|
||||
|
@ -31,14 +31,14 @@ internal object GroupMessageEventParserAndHandler : KnownEventParserAndHandler<G
|
||||
|
||||
var senderPermission: MemberPermission = MemberPermission.MEMBER
|
||||
var senderName = ""
|
||||
val map = readTLVMap(true)
|
||||
if (map.containsKey(18u)) {
|
||||
map.getValue(18u).read {
|
||||
val tlv = readTLVMap(true)
|
||||
senderPermission = when (tlv.takeIf { it.containsKey(0x04u) }?.get(0x04u)?.getOrNull(3)?.toUInt()) {
|
||||
val map = readTLVMap(true, 1)
|
||||
if (map.containsKey(18)) {
|
||||
map.getValue(18).read {
|
||||
val tlv = readTLVMap(true, 1)
|
||||
senderPermission = when (tlv.takeIf { it.containsKey(0x04) }?.get(0x04)?.getOrNull(3)?.toInt()) {
|
||||
null -> MemberPermission.MEMBER
|
||||
0x08u -> MemberPermission.OWNER
|
||||
0x10u -> MemberPermission.ADMINISTRATOR
|
||||
0x08 -> MemberPermission.OWNER
|
||||
0x10 -> MemberPermission.ADMINISTRATOR
|
||||
else -> {
|
||||
tlv.printTLVMap("TLV(tag=18) Map")
|
||||
MiraiLogger.warning("Could not determine member permission, default permission MEMBER is being used")
|
||||
@ -47,8 +47,8 @@ internal object GroupMessageEventParserAndHandler : KnownEventParserAndHandler<G
|
||||
}
|
||||
|
||||
senderName = when {
|
||||
tlv.containsKey(0x01u) -> kotlinx.io.core.String(tlv.getValue(0x01u))//这个人的qq昵称
|
||||
tlv.containsKey(0x02u) -> kotlinx.io.core.String(tlv.getValue(0x02u))//这个人的群名片
|
||||
tlv.containsKey(0x01) -> kotlinx.io.core.String(tlv.getValue(0x01))//这个人的qq昵称
|
||||
tlv.containsKey(0x02) -> kotlinx.io.core.String(tlv.getValue(0x02))//这个人的群名片
|
||||
else -> {
|
||||
tlv.printTLVMap("TLV(tag=18) Map")
|
||||
MiraiLogger.warning("Could not determine senderName")
|
||||
|
@ -6,6 +6,7 @@ import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import net.mamoe.mirai.Bot
|
||||
import net.mamoe.mirai.timpc.TIMPC
|
||||
import net.mamoe.mirai.utils.MiraiInternalAPI
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
@ -31,6 +32,7 @@ const val qqList = "" +
|
||||
"\n" +
|
||||
"\n"
|
||||
|
||||
@UseExperimental(MiraiInternalAPI::class)
|
||||
suspend fun main() {
|
||||
val goodBotList = Collections.synchronizedList(mutableListOf<Bot>())
|
||||
|
||||
@ -58,5 +60,5 @@ suspend fun main() {
|
||||
}
|
||||
|
||||
println("Filtering finished")
|
||||
println(goodBotList.joinToString("\n") { it.account.id.toString() + " " + it.account.passwordMd5 })
|
||||
println(goodBotList.joinToString("\n") { it.uin.toString() + " " + it.account.passwordMd5 })
|
||||
}
|
||||
|
@ -45,10 +45,8 @@ data class Profile(
|
||||
/**
|
||||
* 性别
|
||||
*/ // 在 Android 中 enum 的使用被严格控制.
|
||||
inline class Gender(val value: Byte) {
|
||||
companion object {
|
||||
val SECRET = Gender(0)
|
||||
val MALE = Gender(2)
|
||||
val FEMALE = Gender(1)
|
||||
}
|
||||
enum class Gender(val value: Byte) {
|
||||
SECRET(0),
|
||||
MALE(1),
|
||||
FEMALE(2)
|
||||
}
|
Loading…
Reference in New Issue
Block a user