Nova-Committee / McBot

A mod allowed you to connect minecraft and QQ
Other
115 stars 15 forks source link

[Bug/漏洞] OpenShamrock 框架在设置了鉴权 Token 的情况下会导致无法正常连接 / 后台被刷屏 / 发送消息时出现的卡顿问题 #126

Closed Moetazhxi closed 4 months ago

Moetazhxi commented 5 months ago

Checks / 检查

Java Version / Java版本

17.0.10

Minecraft Version / Minecraft版本

1.20.1 / Fabric

McBot Version / McBot版本

McBot-fabric-2.1.9.jar

Description / 描述

因为文档打不开,我也不知道文档中有没有相应的解决方法,就先在这里反馈啦。

一、我在 Shamrock 中设置了鉴权 Token:(下图)

mcbot1

我先按照 /mcbot help 中的方法进行了第 4 步的 /mcbot setAuthKey \<AuthKey>,然后再进行连接,但是还是发现连接失败。

(/mcbot help 的内容) 群服互联使用说明: 如果你是第一次使用请按照以下步骤设置 1.请先开启机器人框架,go-cqhttp或者mirai 2.请使用/mcbot addGroup \<GroupId> 添加互通的群 3.请使用/mcbot setBot \<BotId> 设置机器人的qq号 4.如果打开了鉴权验证,请输入/mcbot setAuthKey \<AuthKey> 设置 5.准备工作完成,请使用/mcbot connect \<cqhttp/mirai> \<host:port> 与框架对接

服务器后台提示: mcbot3 Shamrock 端提示: mcbot2

已尝试过重载插件配置,重启服务器,但是都没用,还是会连接失败。 从配置文件中是可以看到刚刚通过指令设置的 Token 的。

当不在 Shamrock 中设置鉴权 Token 时,是可以正常连接的。


二、通过不设置 Shamrock 的鉴权 Token,成功连接之后,虽可以正常使用,但后台被日志刷屏:

mcbot4

并没有开启 debug 模式。


三、还有就是发消息时候的卡顿问题,看到相似的问题在 mcmod 已有反馈了。

image


辛苦作者了!模组一直在用,特别棒,支持~

To Reproduce / 重现

见上

Log / 日志

见上

Config / 配置

# 通用
[common]
group-on = true  # 开启q群功能
guild-on = false  # 是否开启频道
guild-id = ""  # 频道id
bot-id = *******  # 机器人qq
enable = true  # 是否启用
debug = false  # 是否开发模式,将显示事件信息操作
language-select = "zh_cn"  # 选择语言系统
auto-open = true  # 自动连接
image-on = true  # 是否开启聊天栏图片功能
group-id-list = [********]  # 支持多个q群
channel-id-list = []  # 子频道列表

# 状态
[status]
r-enable = true  # 全局接收
r-cmd-enable = true  # 命令接收
r-chat-enable = true  # 消息接收
s-enable = true  # 发送消息
s-qq-welcome-enable = false  # 发送欢迎玩家入群消息
s-qq-leave-enable = false  # 发送玩家退群消息
s-join-enable = true  # 发送加入服务器消息
s-leave-enable = true  # 发送离开服务器消息
s-death-enable = false  # 发送玩家死亡消息
s-chat-enable = true  # 发送服务器聊天
s-advance-enable = false  # 发送成就消息

# 命令
[cmd]
welcome-notice = ""  # 自定义q群加入事件消息
leave-notice = ""  # 自定义q群离开消息
cmd-start = "!"  # q群中使用命令的关键符号
game-prefix-on = true  # 是否开启显示到游戏中的前缀
id-game-prefix-on = true  # 是否开启显示到游戏中的id前缀
qq-game-prefix = "群聊"  # 来自q群显示到游戏中的前缀
guild-game-prefix = "频道"  # 来自频道显示到游戏中的前缀
group-nick-on = false  # 是否开启显示到游戏中的昵称为群昵称
mc-prefix-on = true  # 是否开启来自游戏的消息显示到群中的前缀
mc-prefix = "MC"  # 来自游戏的消息显示到群中的前缀
mc-chat-prefix-on = false  # 是否开启游戏中自定义关键词
qq-chat-prefix-on = false  # 是否开启qq中自定义关键词
mc-chat-prefix = "q"  # 游戏中自定义的消息头文本
qq-chat-prefix = "m"  # qq中自定义的消息头文本

# 机器人
[bot_config]
url = "ws://***.***.***.***:****"
token = "**********"
bot-id = ********
is-access-token = false  # 我把这里改成 true 之后重启服务器也还是连不上,虽然我也不知道这个是干什么的,感觉有点关系?
mirai-http = false
reconnect = true
max-reconnect-attempts = 20
msg-type = "string"
setwhite commented 5 months ago

同样后台被heartbeat刷屏

cnlimiter commented 5 months ago

在重写了qwq

cnlimiter commented 4 months ago

卡顿大概好了

cnlimiter commented 4 months ago

鉴权修复了,心跳包修复了,卡顿大概好了

TeoZler commented 4 months ago

请问目前fabric版本是还没有更新吗,我看5天前更新的似乎只有forge

cnlimiter commented 4 months ago

更新了,action里有

cnlimiter commented 4 months ago

如有后续问题可重开