MrXiaoM / Overflow

替换 mirai 实现为 Onebot 以进行无缝迁移
https://mirai.mrxiaom.top
GNU Affero General Public License v3.0
267 stars 21 forks source link

无法识别群成员管理员权限 #51

Open HanamiSeishin opened 1 month ago

HanamiSeishin commented 1 month ago

问题描述

starbot对接mirai-http-api,通过overflow转为onebot链接llonebot v3.24.2

starbot通过get_member获取bot账号的Member对象,Member的permission小于MemberPerm.Administrator 实际上bot账号为管理员权限,不符合预期

想要咨询一下是overflow的问题还是llonebot的问题

复现

尝试at全体

StarBot/starbot/core/sender.py:252

#过滤 Bot 不是群管理员时的 @全体成员 消息
try:
    bot_info = await self.__bot.get_member(message.id, self.qq)
except UnknownTarget:
    return new_chains, exception
if bot_info.permission < MemberPerm.Administrator:
    exception = NoPermissionException()
    chain = chain.exclude(AtAll)

Overflow 版本

overflow-2.16.0-f454a28

其他组件版本

llonebot v3.24.2

系统日志

2024-05-21 22:47:20.030 | WARNING | starbot.core.sender:252 | bot_info.permission =<普通成员>, MemberPerm.Administrator =<管理员>

网络日志

No response

补充信息

No response

NNanfeng commented 3 weeks ago

我是用graia对接mirai-http-api也有类似的问题,我是用如下代码(修改群成员的群名片)时也会提示权限不足 info = MemberInfo(name=f"{username}")

info = MemberInfo(nickname=f"{username}", special_title="特殊头衔")

try:
    await app.modify_member_info(group=group, info=info, member=member)