MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. 250king
    3. 主题
    2
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 5
    • 帖子 13
    • 最佳 2
    • 有争议的 0
    • 群组 0

    250king 创建的主题

    • 2

      使用最新版的打包系统部分Class丢失导致无法使用
      开发交流 • • 250king

      7
      0
      赞同
      7
      帖子
      476
      浏览

      2

      刚刚开始学,有些地方不懂,听说是最新打包系统包压缩特性会把部分Class给去掉,请问怎么强制性加回去?
      缺失Class:org.bson.BsonObjectId

      val result = collection.insertOne(data) NewGroupEvent(result.insertedId).broadcast() class NewGroupEvent(var id: BsonValue?) : AbstractEvent() GlobalEventChannel.subscribeAlways<NewGroupEvent> {event -> val data = Document() .append("group_id", event.id) .append("state", "enable") MAIN_COLLECTION.insertOne(data) } 7月 30 03:09:29 instance-1 java[1154777]: 2022-07-30 03:09:29 W/SafeListener: An exception occurred when processing event. Subscriber scope: '<unnamed>'. Broadcaster scope: 'Plugin net.mamoe.mirai.console.chat-command' 7月 30 03:09:29 instance-1 java[1154777]: org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class org.bson.BsonObjectId. 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.internal.CodecCache.lambda$getOrThrow$1(CodecCache.java:52) 7月 30 03:09:29 instance-1 java[1154777]: at java.base/java.util.Optional.orElseThrow(Optional.java:408) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.internal.CodecCache.getOrThrow(CodecCache.java:51) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.internal.OverridableUuidRepresentationCodecRegistry.get(OverridableUuidRepresentationCodecRegistry.java:72) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.internal.ChildCodecRegistry.get(ChildCodecRegistry.java:52) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.codecs.DocumentCodec.writeValue(DocumentCodec.java:209) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:168) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.codecs.DocumentCodec.encode(DocumentCodec.java:44) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.SplittablePayload$WriteRequestEncoder.encode(SplittablePayload.java:200) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.SplittablePayload$WriteRequestEncoder.encode(SplittablePayload.java:187) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:63) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//org.bson.codecs.BsonDocumentWrapperCodec.encode(BsonDocumentWrapperCodec.java:29) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.BsonWriterHelper.writeDocument(BsonWriterHelper.java:77) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.BsonWriterHelper.writePayload(BsonWriterHelper.java:59) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.CommandMessage.encodeMessageBodyWithMetadata(CommandMessage.java:170) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.RequestMessage.encode(RequestMessage.java:138) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.CommandMessage.encode(CommandMessage.java:63) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.InternalStreamConnection.sendAndReceive(InternalStreamConnection.java:325) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.UsageTrackingInternalConnection.sendAndReceive(UsageTrackingInternalConnection.java:116) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection.sendAndReceive(DefaultConnectionPool.java:643) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.CommandProtocolImpl.execute(CommandProtocolImpl.java:71) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor.execute(DefaultServer.java:240) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.DefaultServerConnection.executeProtocol(DefaultServerConnection.java:226) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.DefaultServerConnection.command(DefaultServerConnection.java:126) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.connection.DefaultServer$OperationCountTrackingConnection.command(DefaultServer.java:354) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.MixedBulkWriteOperation.executeCommand(MixedBulkWriteOperation.java:517) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.MixedBulkWriteOperation.executeBulkWriteBatch(MixedBulkWriteOperation.java:379) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.MixedBulkWriteOperation.lambda$execute$2(MixedBulkWriteOperation.java:300) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.OperationHelper.lambda$withSourceAndConnection$2(OperationHelper.java:575) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.OperationHelper.withSuppliedResource(OperationHelper.java:600) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.OperationHelper.lambda$withSourceAndConnection$3(OperationHelper.java:574) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.OperationHelper.withSuppliedResource(OperationHelper.java:600) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.OperationHelper.withSourceAndConnection(OperationHelper.java:573) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.MixedBulkWriteOperation.lambda$execute$3(MixedBulkWriteOperation.java:272) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.async.function.RetryingSyncSupplier.get(RetryingSyncSupplier.java:65) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:308) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.internal.operation.MixedBulkWriteOperation.execute(MixedBulkWriteOperation.java:85) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.client.internal.MongoClientDelegate$DelegateOperationExecutor.execute(MongoClientDelegate.java:212) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.client.internal.MongoCollectionImpl.executeSingleWriteRequest(MongoCollectionImpl.java:1025) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.client.internal.MongoCollectionImpl.executeInsertOne(MongoCollectionImpl.java:476) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:459) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar[shared]//com.mongodb.client.internal.MongoCollectionImpl.insertOne(MongoCollectionImpl.java:453) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar//com.king250.bot.qq.link.Plugin$onEnable$1.invokeSuspend(Plugin.kt:60) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar//com.king250.bot.qq.link.Plugin$onEnable$1.invoke(Plugin.kt) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-link-1.0.0.mirai2.jar//com.king250.bot.qq.link.Plugin$onEnable$1.invoke(Plugin.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invokeSuspend(EventChannel.kt:511) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.event.EventChannel$subscribeAlways$1.invoke(EventChannel.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.SafeListener$onEvent$2.invokeSuspend(SafeListener.kt:58) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.SafeListener$onEvent$2.invoke(SafeListener.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.SafeListener$onEvent$2.invoke(SafeListener.kt) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:166) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.BuildersKt.withContext(Unknown Source) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.SafeListener.onEvent(SafeListener.kt:58) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.EventListeners.process(EventListeners.kt:125) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.EventListeners.callListeners$mirai_core(EventListeners.kt:73) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.EventChannelImpl.callListeners(EventChannelImpl.kt:85) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.event.EventChannelImpl.broadcastEventImpl(EventChannelImpl.kt:75) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.MiraiImpl.broadcastEvent$suspendImpl(MiraiImpl.kt:325) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.internal.MiraiImpl.broadcastEvent(MiraiImpl.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.event.EventKt.broadcast(Event.kt:156) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-admin-1.0.0.mirai2.jar//com.king250.bot.qq.admin.command.GroupManager.initGroup(GroupManager.kt:38) 7月 30 03:09:29 instance-1 java[1154777]: at mirai-admin-1.0.0.mirai2.jar//com.king250.bot.qq.admin.command.GroupManager.register(GroupManager.kt:63) 7月 30 03:09:29 instance-1 java[1154777]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 7月 30 03:09:29 instance-1 java[1154777]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 7月 30 03:09:29 instance-1 java[1154777]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 7月 30 03:09:29 instance-1 java[1154777]: at java.base/java.lang.reflect.Method.invoke(Method.java:566) 7月 30 03:09:29 instance-1 java[1154777]: at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97) 7月 30 03:09:29 instance-1 java[1154777]: at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113) 7月 30 03:09:29 instance-1 java[1154777]: at kotlin.reflect.jvm.internal.KCallableImpl.call(KCallableImpl.kt:108) 7月 30 03:09:29 instance-1 java[1154777]: at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:159) 7月 30 03:09:29 instance-1 java[1154777]: at kotlin.reflect.full.KCallables.callSuspendBy(KCallables.kt:74) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.internal.command.CommandReflector$findSubCommands$6$1.invokeSuspend(CommandReflector.kt:337) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.internal.command.CommandReflector$findSubCommands$6$1.invoke(CommandReflector.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.internal.command.CommandReflector$findSubCommands$6$1.invoke(CommandReflector.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.command.descriptor.CommandSignatureFromKFunctionImpl.call$suspendImpl(CommandSignature.kt:88) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.command.descriptor.CommandSignatureFromKFunctionImpl.call(CommandSignature.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.internal.command.CommandManagerImplKt.executeCommandImpl(CommandManagerImpl.kt:168) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.command.CommandManager.executeCommand$suspendImpl(CommandManager.kt:130) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.command.CommandManager.executeCommand(CommandManager.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.command.CommandManager$INSTANCE.executeCommand(CommandManager.kt) 7月 30 03:09:29 instance-1 java[1154777]: at net.mamoe.mirai.console.command.CommandManager.executeCommand$default(CommandManager.kt:125) 7月 30 03:09:29 instance-1 java[1154777]: at chat-command-0.5.1.jar//net.mamoe.mirai.console.plugins.chat.command.PluginMain.handleCommand(PluginMain.kt:86) 7月 30 03:09:29 instance-1 java[1154777]: at chat-command-0.5.1.jar//net.mamoe.mirai.console.plugins.chat.command.PluginMain$onEnable$2$1.invokeSuspend(PluginMain.kt:69) 7月 30 03:09:29 instance-1 java[1154777]: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677) 7月 30 03:09:29 instance-1 java[1154777]: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
    • 2

      Suspension functions can be called only within coroutine body
      开发交流 • • 250king

      5
      0
      赞同
      5
      帖子
      744
      浏览

      2

      我因为要把bot与RabbmitMQ结合,就尝试写一个deom——接受到消息,然后转发到群

      package love.hana.bot.qq.subscribe.twitter import com.rabbitmq.client.AMQP import com.rabbitmq.client.ConnectionFactory import com.rabbitmq.client.DefaultConsumer import com.rabbitmq.client.Envelope import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin import net.mamoe.mirai.event.GlobalEventChannel import net.mamoe.mirai.event.events.BotOnlineEvent import net.mamoe.mirai.message.data.PlainText import java.io.IOException object Plugin: KotlinPlugin(JvmPluginDescription("love.hana.bot.qq.subscribe.twitter", "1.0.0", "Twitter订阅推送")) { override fun onEnable() { val auth = ConnectionFactory() auth.host = "127.0.0.1" auth.username = "" auth.password = "" val mq = auth.newConnection() val channel = mq.createChannel() channel.queueDeclare("love.hana.bot.qq.subscribe.twitter", true, false, true, null) channel.queueBind("love.hana.bot.qq.subscribe.twitter", "amq.topic", "subscribe.twitter") GlobalEventChannel.subscribeOnce<BotOnlineEvent> {event -> channel.basicConsume("love.hana.bot.qq.subscribe.twitter", false, object: DefaultConsumer(channel) { @Throws(IOException::class) override fun handleDelivery(consumerTag: String?, envelope: Envelope?, properties: AMQP.BasicProperties?, body: ByteArray?) { if (body != null) { bot.getGroup(891766260L)?.sendMessage(PlainText(String(body))) //提示这边出现问题 } } }) } } }

      但打包成插件后就报错:

      e: C:\path\to\user\Documents\project\qq-bot\plugin\subscribe-twitter\src\main\kotlin\love\hana\bot\qq\subscribe\twitter\Plugin.kt: (30, 51): Suspension functions can be called only within coroutine body

      刚开始用Kotlin,不知怎么解决?

    • 2

      官方插件自配置的Maven太慢,想用别的仓库
      开发交流 • • 250king

      4
      1
      赞同
      4
      帖子
      403
      浏览

      2

      我现在公司局域网内部有个私有仓库,想优先使用企业内部的仓库。结果配置了仓库,编译速度还是慢得出奇。后来经过排查才发现插件已经自己配了仓库——https://dl.bintray.com/him188moe/mirai,而且优先级最高。我可忍受不了这个慢速度,有没有什么办法可以屏蔽插件自配置的仓库?

      plugins { val kotlinVersion = "1.5.10" kotlin("jvm") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion id("net.mamoe.mirai-console") version "2.6.7" } group = "fun.hana.bot.qq" version = "2.0.0" dependencies { implementation("org.mongodb:mongodb-driver-sync:4.3.1") implementation("com.squareup.okhttp3:okhttp:4.9.1") implementation("org.json:json:20210307") implementation("org.jsoup:jsoup:1.14.2") } repositories { mavenLocal() maven("https://10.155.107.100/repository/public") mavenCentral() }

      已配置仓库

      > Task :showRepositories repository: maven #https://dl.bintray.com/him188moe/mirai repository: MavenLocal #本地 repository: maven2 #企业私有库 repository: MavenRepo #中央仓库
    • 2

      Java如何对其他模块发出指令?
      开发交流 • • 250king

      4
      1
      赞同
      4
      帖子
      409
      浏览

      2

      因为要做一个门户站点,方便我的客户自行管理机器人,所以把机器人的每个功能都分了模块,由一个总模块来接受MQ队列发来的指令,并控制其他模块。但由于过于萌新,不知道怎么用Java来给模块发指令,求大神帮助!屏幕截图 2021-06-05 131132.png

    • 1 / 1