本帖最后由 Bert-18 于 2022-6-23 20:39 编辑
WhiteListMirai-OnlyBukkit Edition 2.0发布!
(注:此前在MCBBS发布的WhiteListMirai——一个简单高效的白名单群机器人 - 服务端插件 - Minecraft(我的世界)中文论坛 - (mcbbs.net)自此帖发布起将定为WhiteListMirai-DoubleClient Edition(双端版),下文也将以该名称称呼该版本
效果图

Q:什么是WhiteListMirai-OnlyBukkit Edition?
A:WhiteListMirai-OnlyBukkit Edition是WhiteListMirai系列的一大分支版本。它与双端版的不同是它只需要在Bukkit拖入插件就可以完成安装,旨在解决面板服服主们对白名单机器人的需求(VPS服主也可使用)。
Q:如何使用WhiteListMirai-OnlyBukkit Edition?
A:首先,下载插件,拖入plugins,启动服务端(如果你没有启动)或执行reload(如果你已经启动)
待插件加载完成后,键入指令/login qq password(qq是准备好的机器人账号的QQ号,password是机器人账号的密码)
(只有在login后,插件才会正式生效!)
首次登陆会提示登陆验证,请按照指引完成。如有问题请参阅mamoe/mirai: 高效率 QQ 机器人支持库 (github.com)相关文档
然后,玩家就可以在QQ群内(如果机器人在群内)通过”#申请白名单 ID“”#查询白名单“”#注销白名单 ID“来操作自己的白名单了!
注意事项
1.为了兼容一些不设置正版验证的服务器,本插件不提供对玩家提交的MCID进行正版核验的功能。请服主提前告知玩家,自行处理一切由提供非正版ID导致的无法进服等后果。
2.机器人功能可能会导致使用的机器人QQ账号被封禁。若出现以上情况,请服主自行处理。
您使用本插件后,视为您已阅读并悉知上述事项!
文件目录说明
首次login后,插件会在服务端目录下新建"WhiteListMirai"文件夹。其中会包含players.json和device.json
其中,players.json是存储玩家QQ与MCID绑定关系的,device.json存储了机器人账号登陆的设备信息。
(注:在本插件及其他Mirai软件中持有正确的device.json,可以跳过验证步骤、正确的设备信息一般由第一次验证通过后自动生成)
开源
我们已将源代码开放于WutzuBert/WhiteListMirai-OnlyBukkit (github.com) 欢迎各位开发者添砖加瓦
附件下载方式
由于论坛等级限制,暂时无法上传至附件,请悉知。
下载链接请移步https://wwc.lanzoul.com/b03d3y3qd 密码:f0qm
非常不错的插件

我想问一下接插件定制吗?
啊,登录插件也用的/login 咋办
Fan_Zai 发表于 2022-6-24 15:54
啊,登录插件也用的/login 咋办
我把登录插件删了之后输入/login 账号 密码 之后显示An internal error occurred while attempting to perform this command 咋办
Fan_Zai 发表于 2022-6-24 16:17
我把登录插件删了之后输入/login 账号 密码 之后显示An internal error occurred while attempting to pe ...
具体请查阅百度,开发测试时没发生此问题

希望可以支持QQ群内一键登录
Bert-18 发表于 2022-6-24 17:35
接的,只不过作者学生党,平时没太多时间就可能鸽一段时间
可以给个联系方式吗
大米我这呢 发表于 2022-6-25 19:26
可以给个联系方式吗
QQ 2138681574
不错,支持一下
非常不错的插件
qaqaqaqaqaqaqaqaqaq
qaqaqaqaqaqaqaqaqaq
qaqaqaqaqaqaqaq
qaqaqaqaqaqaqaq
Fan_Zai 发表于 2022-6-24 16:17
我把登录插件删了之后输入/login 账号 密码 之后显示An internal error occurred while attempting to pe ...
解决了吗
org.bukkit.command.CommandException: Unhandled exception executing command 'login' in plugin WhiteListMirai v0.2.0
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchCommand(CraftServer.java:940) ~[purpur-1.19.jar:git-Purpur-1735]
at org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchServerCommand(CraftServer.java:903) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.dedicated.DedicatedServer.handleConsoleInputs(DedicatedServer.java:512) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:486) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1442) ~[purpur-1.19.jar:git-Purpur-1735] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1209) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:308) ~[purpur-1.19.jar:git-Purpur-1735]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.io.FileNotFoundException: .\.\WhiteListMirai\device.json (系统找不到指定的路径。)
at java.io.FileOutputStream.open0(Native Method) ~[?:?]
at java.io.FileOutputStream.open(FileOutputStream.java:293) ~[?:?]
at java.io.FileOutputStream.<init>(FileOutputStream.java:235) ~[?:?]
at java.io.FileOutputStream.<init>(FileOutputStream.java:184) ~[?:?]
at kotlin.io.FilesKt__FileReadWriteKt.writeBytes(FileReadWrite.kt:108) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.io.FilesKt__FileReadWriteKt.writeText(FileReadWrite.kt:134) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.io.FilesKt__FileReadWriteKt.writeText$default(FileReadWrite.kt:134) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.DeviceInfo$Companion.from(DeviceInfo.kt:111) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.LoginSolverKt$getFileBasedDeviceInfoSupplier$1.invoke(LoginSolver.kt:88) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.LoginSolverKt$getFileBasedDeviceInfoSupplier$1.invoke(LoginSolver.kt:86) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.components.SsoProcessorContextKt.createDeviceInfo(SsoProcessorContext.kt:47) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.components.SsoProcessorContextImpl.<init>(SsoProcessorContext.kt:42) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.createBotLevelComponents(QQAndroidBot.kt:195) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$defaultBotLevelComponents$2.invoke(QQAndroidBot.kt:163) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$defaultBotLevelComponents$2.invoke(QQAndroidBot.kt:162) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.LateinitMutableProperty.getValue(LateinitMutableProperty.kt:38) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.getDefaultBotLevelComponents(QQAndroidBot.kt:162) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.createNetworkLevelComponents(QQAndroidBot.kt:249) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$createNetworkHandler$1.invoke(QQAndroidBot.kt:261) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$createNetworkHandler$1.invoke(QQAndroidBot.kt:254) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.AbstractKeepAliveNetworkHandlerSelectorKt$KeepAliveNetworkHandlerSelector$1.createInstance(AbstractKeepAliveNetworkHandlerSelector.kt:229) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.AbstractKeepAliveNetworkHandlerSelector.refreshInstance(AbstractKeepAliveNetworkHandlerSelector.kt:200) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.AbstractKeepAliveNetworkHandlerSelector.getCurrentInstanceOrCreate(AbstractKeepAliveNetworkHandlerSelector.kt:58) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.SelectorNetworkHandler.getContext(SelectorNetworkHandler.kt:47) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.getComponents(QQAndroidBot.kt:160) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.AbstractBot.login(AbstractBot.kt:135) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.Bot$login$1.invoke(Bot.kt:65535) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.Bot$login$1.invoke(Bot.kt) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at me.him188.kotlin.jvm.blocking.bridge.internal.RunSuspendKt.$runSuspend$(RunSuspend.kt:18) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.Bot.login(Bot.kt) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at top.berthua.whitelistmirai.WhiteList.login(WhiteList.java:131) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at top.berthua.whitelistmirai.WhiteListMirai$2.run(WhiteListMirai.java:33) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at top.berthua.whitelistmirai.WhiteListMirai.onCommand(WhiteListMirai.java:35) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
... 9 more
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchCommand(CraftServer.java:940) ~[purpur-1.19.jar:git-Purpur-1735]
at org.bukkit.craftbukkit.v1_19_R1.CraftServer.dispatchServerCommand(CraftServer.java:903) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.dedicated.DedicatedServer.handleConsoleInputs(DedicatedServer.java:512) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:486) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1442) ~[purpur-1.19.jar:git-Purpur-1735] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1209) ~[purpur-1.19.jar:git-Purpur-1735]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:308) ~[purpur-1.19.jar:git-Purpur-1735]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.io.FileNotFoundException: .\.\WhiteListMirai\device.json (系统找不到指定的路径。)
at java.io.FileOutputStream.open0(Native Method) ~[?:?]
at java.io.FileOutputStream.open(FileOutputStream.java:293) ~[?:?]
at java.io.FileOutputStream.<init>(FileOutputStream.java:235) ~[?:?]
at java.io.FileOutputStream.<init>(FileOutputStream.java:184) ~[?:?]
at kotlin.io.FilesKt__FileReadWriteKt.writeBytes(FileReadWrite.kt:108) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.io.FilesKt__FileReadWriteKt.writeText(FileReadWrite.kt:134) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.io.FilesKt__FileReadWriteKt.writeText$default(FileReadWrite.kt:134) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.DeviceInfo$Companion.from(DeviceInfo.kt:111) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.LoginSolverKt$getFileBasedDeviceInfoSupplier$1.invoke(LoginSolver.kt:88) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.LoginSolverKt$getFileBasedDeviceInfoSupplier$1.invoke(LoginSolver.kt:86) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.components.SsoProcessorContextKt.createDeviceInfo(SsoProcessorContext.kt:47) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.components.SsoProcessorContextImpl.<init>(SsoProcessorContext.kt:42) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.createBotLevelComponents(QQAndroidBot.kt:195) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$defaultBotLevelComponents$2.invoke(QQAndroidBot.kt:163) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$defaultBotLevelComponents$2.invoke(QQAndroidBot.kt:162) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.utils.LateinitMutableProperty.getValue(LateinitMutableProperty.kt:38) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.getDefaultBotLevelComponents(QQAndroidBot.kt:162) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.createNetworkLevelComponents(QQAndroidBot.kt:249) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$createNetworkHandler$1.invoke(QQAndroidBot.kt:261) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot$createNetworkHandler$1.invoke(QQAndroidBot.kt:254) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.AbstractKeepAliveNetworkHandlerSelectorKt$KeepAliveNetworkHandlerSelector$1.createInstance(AbstractKeepAliveNetworkHandlerSelector.kt:229) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.AbstractKeepAliveNetworkHandlerSelector.refreshInstance(AbstractKeepAliveNetworkHandlerSelector.kt:200) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.AbstractKeepAliveNetworkHandlerSelector.getCurrentInstanceOrCreate(AbstractKeepAliveNetworkHandlerSelector.kt:58) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.network.handler.selector.SelectorNetworkHandler.getContext(SelectorNetworkHandler.kt:47) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.QQAndroidBot.getComponents(QQAndroidBot.kt:160) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.internal.AbstractBot.login(AbstractBot.kt:135) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.Bot$login$1.invoke(Bot.kt:65535) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.Bot$login$1.invoke(Bot.kt) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at me.him188.kotlin.jvm.blocking.bridge.internal.RunSuspendKt.$runSuspend$(RunSuspend.kt:18) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at net.mamoe.mirai.Bot.login(Bot.kt) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at top.berthua.whitelistmirai.WhiteList.login(WhiteList.java:131) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at top.berthua.whitelistmirai.WhiteListMirai$2.run(WhiteListMirai.java:33) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at top.berthua.whitelistmirai.WhiteListMirai.onCommand(WhiteListMirai.java:35) ~[WhiteListMirai-OnlyBukkit-2.0.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[purpur-api-1.19-R0.1-SNAPSHOT.jar:?]
... 9 more
没,只能把这个插件删掉了
指令和登录插件冲突了怎么办啊
感谢分享
神乎其技!6的飞起
1.6.4服务端 为什么插件在运行都没有配置文件
虽然没用但感觉还不错 辛苦了