DreamVoid / MiraiMC

适用于Minecraft服务器的Mirai机器人
https://docs.miraimc.dreamvoid.me
GNU Affero General Public License v3.0
181 stars 15 forks source link

安装 PaperBin 时插件启动报错 #122

Closed ApliNi closed 2 years ago

ApliNi commented 2 years ago

问题描述

安装 PaperBin 时插件启动报错, 不使用 PaperBin 时完全正常 使用 MiraiMC 和 Chat2QQ 转发QQ群的消息 仅修改过 Chat2QQ 的配置

复现方法

  1. 安装 PaperBin https://github.com/x4e/PaperBin
  2. 启用服务端

服务端类型

Bukkit(包括Paper)

服务端版本

purpur-1.17.1 [paper的分支]

MiraiMC 插件版本

1.6

服务端日志

Paperbin Agent Loaded
VM INIT
[paperbin 淇℃伅] Registering transformers...
[paperbin 淇℃伅] Make sure to enable queue-light-updates in paper config
[paperbin 淇℃伅] Starting [public static void org.bukkit.craftbukkit.Main.main(java.lang.String[])]...
System Info: Java 17 (OpenJDK 64-Bit Server VM 17.0.1+12-LTS) Host: Windows 10 10.0 (amd64)
Loading libraries, please wait...
[21:34:46 INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[21:34:46 INFO]: Reloading ResourceManager: Default, bukkit
[21:34:47 INFO]: Loaded 7 recipes
[21:34:49 INFO]: Starting minecraft server version 1.17.1
[21:34:49 INFO]: Loading properties
[21:34:49 INFO]: This server is running Purpur version git-Purpur-1428 (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) (Git: 9beb23b on ver/1.17.1)
[21:34:49 INFO]: Server Ping Player Sample Count: 0
[21:34:49 INFO]: Using 8 threads for Netty based IO
[21:34:49 INFO]: Default game type: SURVIVAL
[21:34:49 INFO]: Generating keypair
[21:34:49 INFO]: Starting Minecraft server on *:25565
[21:34:49 INFO]: Using default channel type
[21:34:49 INFO]: Paper: Using Java 11 compression from Velocity.
[21:34:49 INFO]: Paper: Using Java cipher from Velocity.
[21:34:50 INFO]: [MiraiMC] Loading MiraiMC v1.6
[21:34:51 INFO]: [MiraiMC] Verifying maven-metadata-net.mamoe.mirai-core-all.xml
[21:34:51 INFO]: [MiraiMC] Verifying mirai-core-all-2.10.0.jar
[21:34:51 INFO]: [MiraiMC] Loading library mirai-core-all-2.10.0.jar
[21:34:51 INFO]: [MiraiMC] Loading Chat2QQ v1.4.1
[21:34:51 INFO]: Preparing level "world"
[21:34:52 INFO]: [MiraiMC] Enabling MiraiMC v1.6
[21:34:52 INFO]: [MiraiMC] Mirai working dir: default
[21:34:52 INFO]: [MiraiMC] Starting Mirai-Events listener.
[21:34:52 INFO]: [MiraiMC] Loading auto-login file.
[21:34:52 INFO]: [MiraiMC] Registering commands.
[21:34:52 INFO]: [MiraiMC] Registering events.
[21:34:52 INFO]: [MiraiMC] Initializing SQLite database.
[21:34:52 INFO]: [MiraiMC] Initializing bStats metrics.
[21:34:52 WARN]: [MiraiMC] 确保您正在使用开源的MiraiMC插件,未知来源的插件可能会盗取您的账号!
[21:34:52 WARN]: [MiraiMC] 请始终从Github或作者指定的其他途径下载插件: https://github.com/DreamVoid/MiraiMC
[21:34:52 INFO]: [MiraiMC] All tasks done. Welcome to use MiraiMC!
[21:34:52 INFO]: [MiraiMC] Enabling Chat2QQ v1.4.1
[21:34:52 INFO]: Running delayed init tasks
[21:34:52 INFO]: Done (3.876s)! For help, type "help"
[21:34:52 INFO]: Timings Reset
[21:34:52 INFO]: [MiraiMC] [AutoLogin] Starting auto login task.
[21:34:52 INFO]: [MiraiMC] Checking update...
[21:34:52 INFO]: [MiraiMC] [AutoLogin] Auto login bot account: ----- Protocol: ANDROID_PHONE
[21:34:52 INFO]: [MiraiMC] 登录新的机器人账号: -----, 协议: ANDROID_PHONE
[21:34:52 WARN]: [MiraiMC] An error occurred while fetching the latest version, reason: java.net.UnknownHostException: raw.githubusercontent.com
[21:34:53 WARN]: [MiraiMC] Plugin MiraiMC v1.6 generated an exception while executing task 2
java.lang.NoSuchMethodError: 'void kotlin.jvm.internal.FunctionReferenceImpl.<init>(int, java.lang.Class, java.lang.String, java.lang.String, int)'
        at net.mamoe.mirai.utils.PlatformLogger$1.<init>(PlatformLogger.jvm.kt) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.PlatformLogger$1.<clinit>(PlatformLogger.jvm.kt) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.PlatformLogger.<init>(PlatformLogger.jvm.kt:56) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.DefaultFactory.create(MiraiLogger.kt:579) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.MiraiLogger$Factory.create(MiraiLogger.kt:64) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.MiraiLogger$Factory.create(MiraiLogger.kt:79) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.MiraiLogger$Factory$INSTANCE.create(MiraiLogger.kt) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.WindowHelperJvm.<clinit>(SwingSolver.kt:135) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.LoginSolver.<clinit>(LoginSolver.jvm.kt:92) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.BotConfiguration.<init>(BotConfiguration.kt:236) ~[MiraiMC-Bukkit.jar:?]
        at net.mamoe.mirai.utils.BotConfiguration.<clinit>(BotConfiguration.kt:624) ~[MiraiMC-Bukkit.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot.privateBotLogin(MiraiBot.java:221) ~[MiraiMC-Bukkit.jar:?]
        at me.dreamvoid.miraimc.api.MiraiBot.doBotLogin(MiraiBot.java:94) ~[MiraiMC-Bukkit.jar:?]
        at me.dreamvoid.miraimc.bukkit.MiraiAutoLogin.lambda$doStartUpAutoLogin$0(MiraiAutoLogin.java:84) ~[MiraiMC-Bukkit.jar:?]
        at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[patched_1.17.1.jar:git-Purpur-1428]
        at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[patched_1.17.1.jar:git-Purpur-1428]
        at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.17.1.jar:git-Purpur-1428]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
> MiraiMC
[21:35:04 INFO]: This server is running MiraiMC version 1.6 by DreamVoid
[21:35:04 INFO]: For help, type /miraimc help
> miraimc help
[21:35:07 INFO]: MiraiMC 插件帮助菜单
[21:35:07 INFO]: /miraimc bind: 玩家绑定菜单
[21:35:07 INFO]: /miraimc reload: 重新加载插件
> stop
[21:35:08 INFO]: Stopping the server
[21:35:08 INFO]: Stopping server
[21:35:08 INFO]: [MiraiMC] Disabling Chat2QQ v1.4.1
[21:35:08 INFO]: [MiraiMC] Disabling MiraiMC v1.6
[21:35:08 INFO]: [MiraiMC] Stopping bot event listener.
[21:35:08 INFO]: [MiraiMC] Closing all bots
[21:35:09 ERROR]: Error occurred while disabling MiraiMC v1.6 (Is it up to date?)
java.lang.NoClassDefFoundError: Could not initialize class net.mamoe.mirai.utils.LoginSolver
        at me.dreamvoid.miraimc.bukkit.BukkitPlugin.onDisable(BukkitPlugin.java:137) ~[MiraiMC-Bukkit.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:266) ~[patched_1.17.1.jar:git-Purpur-1428]
        at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:399) ~[patched_1.17.1.jar:git-Purpur-1428]
        at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:537) ~[patched_1.17.1.jar:git-Purpur-1428]
        at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:514) ~[patched_1.17.1.jar:git-Purpur-1428]
        at org.bukkit.craftbukkit.v1_17_R1.CraftServer.disablePlugins(CraftServer.java:495) ~[patched_1.17.1.jar:git-Purpur-1428]
        at net.minecraft.server.MinecraftServer.stopServer(MinecraftServer.java:1064) ~[patched_1.17.1.jar:git-Purpur-1428]
        at net.minecraft.server.dedicated.DedicatedServer.stopServer(DedicatedServer.java:855) ~[patched_1.17.1.jar:git-Purpur-1428]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1356) ~[patched_1.17.1.jar:git-Purpur-1428]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:322) ~[patched_1.17.1.jar:git-Purpur-1428]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
[21:35:09 INFO]: Saving players
[21:35:09 INFO]: Saving worlds
[21:35:09 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[21:35:09 INFO]: Saving chunks for level 'ServerLevel[world_nether]'/minecraft:the_nether
[21:35:09 INFO]: Saving chunks for level 'ServerLevel[world_the_end]'/minecraft:the_end
[21:35:09 INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[21:35:09 INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[21:35:09 INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[21:35:09 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
[21:35:09 INFO]: Saving usercache.json

额外说明

java: dragonwell17 插件列表: MiraiMC, Chat2QQ 我的服务器里还有其他很多的插件能兼容PaperBin正常运行, 不过这个问题可能不重要

DreamVoid commented 2 years ago

PaperBin中的Kotlin库与mirai core冲突,由于涉及mirai底层,我可能无法进行修复。 我仍然会尝试在1.7版本解决此问题(我发布大版本的间隔通常是6个月),在此之前,可以暂时停用PaperBin。 另外可以尝试前往 https://github.com/mamoe/mirai 开issue获取帮助。如果要求提供mirai日志,请关闭add-properties下的两个选项和use-bukkit-logger下的两个选项即可获取mirai原生日志。

ApliNi commented 2 years ago

谢谢, 如果无法解决的话, 那有想法实现一个可以与服务器分离的QQ机器人吗? 像Minecraft_QQ那样 [因为Minecraft_QQ的功能不够我才开始使用MiraiMC] [这样能避免冲突?]

DreamVoid commented 2 years ago

谢谢, 如果无法解决的话, 那有想法实现一个可以与服务器分离的QQ机器人吗? 像Minecraft_QQ那样 [因为Minecraft_QQ的功能不够我才开始使用MiraiMC] [这样能避免冲突?]

1.6在Bukkit和Bungee平台支持Mirai-API-Http,可以通过这个功能连接到外部mirai程序。但是我只实现了私聊消息和群消息,而且是个半残废(事件支持不完全,容易报错),Chat2QQ我是做了适配,如果你只是轻度使用的话应该可以正常使用。 在配置文件配置好url,然后用mirai login命令,密码就是api-http插件设置的密钥,但是这不支持启动服务端自动登录,你可以用 https://github.com/DreamVoid/CommandAfterStart

ApliNi commented 2 years ago

我不再使用PaperBin, 在高版本中似乎没用作用