mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-05 07:30:09 +08:00
- Simplify ContactListCache configuration
- Add kotlin.Duration support - Disable contact list cache by default for stability
This commit is contained in:
parent
e219fb3a95
commit
c51eea6268
@ -5356,10 +5356,10 @@ public class net/mamoe/mirai/utils/BotConfiguration {
|
|||||||
public static final field Companion Lnet/mamoe/mirai/utils/BotConfiguration$Companion;
|
public static final field Companion Lnet/mamoe/mirai/utils/BotConfiguration$Companion;
|
||||||
public fun <init> ()V
|
public fun <init> ()V
|
||||||
public final fun autoReconnectOnForceOffline ()V
|
public final fun autoReconnectOnForceOffline ()V
|
||||||
|
public final synthetic fun contactListCache (Lkotlin/jvm/functions/Function1;)V
|
||||||
public final fun copy ()Lnet/mamoe/mirai/utils/BotConfiguration;
|
public final fun copy ()Lnet/mamoe/mirai/utils/BotConfiguration;
|
||||||
public final fun disableContactCaches ()V
|
public final fun disableContactCache ()V
|
||||||
public final fun disableFriendListCache ()V
|
public final fun enableContactCache ()V
|
||||||
public final fun disableGroupMemberListCache ()V
|
|
||||||
public final fun fileBasedDeviceInfo ()V
|
public final fun fileBasedDeviceInfo ()V
|
||||||
public final fun fileBasedDeviceInfo (Ljava/lang/String;)V
|
public final fun fileBasedDeviceInfo (Ljava/lang/String;)V
|
||||||
public static synthetic fun fileBasedDeviceInfo$default (Lnet/mamoe/mirai/utils/BotConfiguration;Ljava/lang/String;ILjava/lang/Object;)V
|
public static synthetic fun fileBasedDeviceInfo$default (Lnet/mamoe/mirai/utils/BotConfiguration;Ljava/lang/String;ILjava/lang/Object;)V
|
||||||
@ -5436,9 +5436,11 @@ public final class net/mamoe/mirai/utils/BotConfiguration$ContactListCache {
|
|||||||
public fun <init> ()V
|
public fun <init> ()V
|
||||||
public final fun getFriendListCacheEnabled ()Z
|
public final fun getFriendListCacheEnabled ()Z
|
||||||
public final fun getGroupMemberListCacheEnabled ()Z
|
public final fun getGroupMemberListCacheEnabled ()Z
|
||||||
|
public final synthetic fun getSaveInterval-UwyO8pc ()D
|
||||||
public final fun getSaveIntervalMillis ()J
|
public final fun getSaveIntervalMillis ()J
|
||||||
public final fun setFriendListCacheEnabled (Z)V
|
public final fun setFriendListCacheEnabled (Z)V
|
||||||
public final fun setGroupMemberListCacheEnabled (Z)V
|
public final fun setGroupMemberListCacheEnabled (Z)V
|
||||||
|
public final synthetic fun setSaveInterval-LRDsOJo (D)V
|
||||||
public final fun setSaveIntervalMillis (J)V
|
public final fun setSaveIntervalMillis (J)V
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,9 @@ import java.io.File
|
|||||||
import kotlin.coroutines.CoroutineContext
|
import kotlin.coroutines.CoroutineContext
|
||||||
import kotlin.coroutines.EmptyCoroutineContext
|
import kotlin.coroutines.EmptyCoroutineContext
|
||||||
import kotlin.coroutines.coroutineContext
|
import kotlin.coroutines.coroutineContext
|
||||||
|
import kotlin.time.Duration
|
||||||
|
import kotlin.time.ExperimentalTime
|
||||||
|
import kotlin.time.milliseconds
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [Bot] 配置. 用于 [BotFactory.newBot]
|
* [Bot] 配置. 用于 [BotFactory.newBot]
|
||||||
@ -396,6 +399,9 @@ public open class BotConfiguration { // open for Java
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 联系人信息缓存配置
|
* 联系人信息缓存配置
|
||||||
|
* @see contactListCache
|
||||||
|
* @see enableContactCache
|
||||||
|
* @see disableContactCache
|
||||||
* @since 2.4
|
* @since 2.4
|
||||||
*/
|
*/
|
||||||
public class ContactListCache {
|
public class ContactListCache {
|
||||||
@ -405,32 +411,39 @@ public open class BotConfiguration { // open for Java
|
|||||||
public var saveIntervalMillis: Long = 60_000
|
public var saveIntervalMillis: Long = 60_000
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开启好友列表缓存
|
* 在有修改时自动保存间隔. 默认 60 秒. 在每次登录完成后有修改时都会立即保存一次.
|
||||||
*/
|
*/
|
||||||
public var friendListCacheEnabled: Boolean = true
|
@ExperimentalTime
|
||||||
|
public inline var saveInterval: Duration
|
||||||
|
@JvmSynthetic inline get() = saveIntervalMillis.milliseconds
|
||||||
|
@JvmSynthetic inline set(v) {
|
||||||
|
saveIntervalMillis = v.toLongMilliseconds()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开启群成员列表缓存
|
* 开启好友列表缓存.
|
||||||
*/
|
*/
|
||||||
public var groupMemberListCacheEnabled: Boolean = true
|
public var friendListCacheEnabled: Boolean = false
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开启群成员列表缓存.
|
||||||
|
*/
|
||||||
|
public var groupMemberListCacheEnabled: Boolean = false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 禁用好友列表缓存.
|
* 配置 [ContactListCache]
|
||||||
|
* ```
|
||||||
|
* contactListCache {
|
||||||
|
* saveIntervalMillis = 30_000
|
||||||
|
* friendListCacheEnabled = true
|
||||||
|
* }
|
||||||
|
* ```
|
||||||
* @since 2.4
|
* @since 2.4
|
||||||
*/
|
*/
|
||||||
@ConfigurationDsl
|
@JvmSynthetic
|
||||||
public fun disableFriendListCache() {
|
public inline fun contactListCache(action: ContactListCache.() -> Unit) {
|
||||||
contactListCache.friendListCacheEnabled = false
|
action.invoke(this.contactListCache)
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 禁用群成员列表缓存.
|
|
||||||
* @since 2.4
|
|
||||||
*/
|
|
||||||
@ConfigurationDsl
|
|
||||||
public fun disableGroupMemberListCache() {
|
|
||||||
contactListCache.groupMemberListCacheEnabled = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -438,15 +451,26 @@ public open class BotConfiguration { // open for Java
|
|||||||
* @since 2.4
|
* @since 2.4
|
||||||
*/
|
*/
|
||||||
@ConfigurationDsl
|
@ConfigurationDsl
|
||||||
public fun disableContactCaches() {
|
public fun disableContactCache() {
|
||||||
contactListCache.friendListCacheEnabled = false
|
contactListCache.friendListCacheEnabled = false
|
||||||
contactListCache.groupMemberListCacheEnabled = false
|
contactListCache.groupMemberListCacheEnabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 启用好友列表和群成员列表的缓存.
|
||||||
|
* @since 2.4
|
||||||
|
*/
|
||||||
|
@ConfigurationDsl
|
||||||
|
public fun enableContactCache() {
|
||||||
|
contactListCache.friendListCacheEnabled = true
|
||||||
|
contactListCache.groupMemberListCacheEnabled = true
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// Misc
|
// Misc
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@Suppress("DuplicatedCode")
|
||||||
public fun copy(): BotConfiguration {
|
public fun copy(): BotConfiguration {
|
||||||
return BotConfiguration().also { new ->
|
return BotConfiguration().also { new ->
|
||||||
// To structural order
|
// To structural order
|
||||||
|
Loading…
Reference in New Issue
Block a user