mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-10 10:30:13 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
5f7b72229c
14
.github/workflows/main.yml
vendored
Normal file
14
.github/workflows/main.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Gradle Android
|
||||||
|
uses: Raul6469/android-gradle-action@1.0.0
|
||||||
|
|
@ -4,7 +4,11 @@
|
|||||||
|
|
||||||
开发版本. 频繁更新, 不保证高稳定性
|
开发版本. 频繁更新, 不保证高稳定性
|
||||||
|
|
||||||
### `0.8.1` *2019/12/15*
|
### `0.8.2` *2019/12/15*
|
||||||
|
- 修复 GroupId.toGroupInternalId 错误
|
||||||
|
- 修复解析群消息时小概率出现的一个错误
|
||||||
|
|
||||||
|
### `0.8.1` *2019/12/15*
|
||||||
- 修复有时群资料无法获取的情况
|
- 修复有时群资料无法获取的情况
|
||||||
- 现在 `At.qq`, `Long.qq` 等函数不再是 `suspend`
|
- 现在 `At.qq`, `Long.qq` 等函数不再是 `suspend`
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# style guide
|
# style guide
|
||||||
kotlin.code.style=official
|
kotlin.code.style=official
|
||||||
# config
|
# config
|
||||||
mirai_version=0.8.1
|
mirai_version=0.8.2
|
||||||
kotlin.incremental.multiplatform=true
|
kotlin.incremental.multiplatform=true
|
||||||
kotlin.parallel.tasks.in.project=true
|
kotlin.parallel.tasks.in.project=true
|
||||||
# kotlin
|
# kotlin
|
||||||
|
@ -117,7 +117,6 @@ internal class BotImpl @PublishedApi internal constructor(
|
|||||||
@JvmSynthetic
|
@JvmSynthetic
|
||||||
override fun getQQ(id: UInt): QQ = qqs.delegate.getOrAdd(id) { QQ(this, id, coroutineContext) }
|
override fun getQQ(id: UInt): QQ = qqs.delegate.getOrAdd(id) { QQ(this, id, coroutineContext) }
|
||||||
|
|
||||||
// NO INLINE!! to help Java
|
|
||||||
@UseExperimental(MiraiInternalAPI::class)
|
@UseExperimental(MiraiInternalAPI::class)
|
||||||
override fun getQQ(@PositiveNumbers id: Long): QQ = getQQ(id.coerceAtLeastOrFail(0).toUInt())
|
override fun getQQ(@PositiveNumbers id: Long): QQ = getQQ(id.coerceAtLeastOrFail(0).toUInt())
|
||||||
|
|
||||||
@ -139,7 +138,6 @@ internal class BotImpl @PublishedApi internal constructor(
|
|||||||
return groups.delegate.getOrAdd(id.value) { Group(this, id, info, coroutineContext) }
|
return groups.delegate.getOrAdd(id.value) { Group(this, id, info, coroutineContext) }
|
||||||
}
|
}
|
||||||
|
|
||||||
// NO INLINE!! to help Java
|
|
||||||
@UseExperimental(MiraiInternalAPI::class)
|
@UseExperimental(MiraiInternalAPI::class)
|
||||||
override suspend fun getGroup(@PositiveNumbers id: Long): Group = id.coerceAtLeastOrFail(0).toUInt().let {
|
override suspend fun getGroup(@PositiveNumbers id: Long): Group = id.coerceAtLeastOrFail(0).toUInt().let {
|
||||||
groups.delegate.getOrNull(it) ?: inline {
|
groups.delegate.getOrNull(it) ?: inline {
|
||||||
|
@ -13,20 +13,22 @@ fun GroupId.toInternalId(): GroupInternalId {
|
|||||||
if (this.value <= `10EXP6`) {
|
if (this.value <= `10EXP6`) {
|
||||||
return GroupInternalId(this.value)
|
return GroupInternalId(this.value)
|
||||||
}
|
}
|
||||||
val left: Long = this.value.toString().dropLast(6).toLong()
|
val stringValue = this.value.toString()
|
||||||
val right: Long = this.value.toString().takeLast(6).toLong()
|
|
||||||
|
fun plusLeft(leftIncrement: Int, rightLength: Int): String =
|
||||||
|
stringValue.let { (it.dropLast(rightLength).toLong() + leftIncrement).toString() + it.takeLast(rightLength) }
|
||||||
|
|
||||||
return GroupInternalId(
|
return GroupInternalId(
|
||||||
when (left) {
|
when (stringValue.dropLast(6).toInt()) {
|
||||||
in 1..10 -> ((left + 202).toString() + right.toString()).toUInt()
|
in 1..10 -> plusLeft(202, 6)
|
||||||
in 11..19 -> ((left + 469).toString() + right.toString()).toUInt()
|
in 11..19 -> plusLeft(469, 6)
|
||||||
in 20..66 -> ((left + 208).toString() + right.toString()).toUInt()
|
in 20..66 -> plusLeft(208, 7)
|
||||||
in 67..156 -> ((left + 1943).toString() + right.toString()).toUInt()
|
in 67..156 -> plusLeft(1943, 6)
|
||||||
in 157..209 -> ((left + 199).toString() + right.toString()).toUInt()
|
in 157..209 -> plusLeft(1997, 7)
|
||||||
in 210..309 -> ((left + 389).toString() + right.toString()).toUInt()
|
in 210..309 -> plusLeft(389, 7)
|
||||||
in 310..499 -> ((left + 349).toString() + right.toString()).toUInt()
|
in 310..499 -> plusLeft(349, 7)
|
||||||
else -> this.value
|
else -> null
|
||||||
}
|
}?.toUInt() ?: this.value
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,13 +183,13 @@ internal object PacketDebugger {
|
|||||||
* 7. 运行完 `mov eax,dword ptr ss:[ebp+10]`
|
* 7. 运行完 `mov eax,dword ptr ss:[ebp+10]`
|
||||||
* 8. 查看内存, `eax` 到 `eax+10` 的 16 字节就是 `sessionKey`
|
* 8. 查看内存, `eax` 到 `eax+10` 的 16 字节就是 `sessionKey`
|
||||||
*/
|
*/
|
||||||
val sessionKey: SessionKey = SessionKey("F3 4A 4E F4 79 C4 92 62 EF 0F D8 6E D3 AB E3 80".hexToBytes())
|
val sessionKey: SessionKey = SessionKey("95 F3 24 8E 7B B6 62 AA 98 C0 EE 45 CE CE 2B 69".hexToBytes())
|
||||||
// TODO: 2019/12/7 无法访问 internal 是 kotlin bug, KT-34849
|
// TODO: 2019/12/7 无法访问 internal 是 kotlin bug, KT-34849
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* null 则不筛选
|
* null 则不筛选
|
||||||
*/
|
*/
|
||||||
val qq: UInt? = null
|
val qq: UInt? = 761025446u
|
||||||
/**
|
/**
|
||||||
* 打开后则记录每一个包到文件.
|
* 打开后则记录每一个包到文件.
|
||||||
*/
|
*/
|
||||||
|
@ -4,9 +4,17 @@ import net.mamoe.mirai.test.shouldBeEqualTo
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
|
@UseExperimental(ExperimentalUnsignedTypes::class)
|
||||||
internal class GroupIdConversionsKtTest {
|
internal class GroupIdConversionsKtTest {
|
||||||
|
|
||||||
@UseExperimental(ExperimentalUnsignedTypes::class)
|
@Test
|
||||||
|
fun checkToInternalId() {
|
||||||
|
GroupId(221056495u).toInternalId().value shouldBeEqualTo 4111056495u
|
||||||
|
// 61 056495
|
||||||
|
//4111 056495
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun toInternalId() {
|
fun toInternalId() {
|
||||||
repeat(1000000) { _ ->
|
repeat(1000000) { _ ->
|
||||||
|
Loading…
Reference in New Issue
Block a user