LangBot icon indicating copy to clipboard operation
LangBot copied to clipboard

[Feature]: @handler(GroupMessageReceived)事件监听无法匹配黑白名单

Open sheetung opened this issue 9 months ago • 0 comments

这是一个?

现有功能优化

详细描述

@handler(GroupNormalMessageReceived)只会给插件传递满足响应规则的消息(比如加了前缀ai 或者 / 又或者at),这个受访问控制黑白名单影响

@handler(GroupMessageReceived)不受任何控制,正常传递消息 而我又想要不需要前缀同样不需要at,但是又想要受黑白名单控制,


目前copy了bansess.py的访问控制处理过程,实现了@handler(GroupMessageReceived)跳过响应规则的情况下满足系统黑白名单规则

        found = False

        mode = self.ap.pipeline_cfg.data['access-control']['mode']

        sess_list = self.ap.pipeline_cfg.data['access-control'][mode]

        if (query.launcher_type.value == 'group' and 'group_*' in sess_list) \
            or (query.launcher_type.value == 'person' and 'person_*' in sess_list):
            found = True
        else:
            for sess in sess_list:
                if sess == f"{query.launcher_type.value}_{query.launcher_id}":
                    found = True
                    break
            
        ctn = False

        if mode == 'whitelist':
            ctn = found
        else:
            ctn = not found

sheetung avatar Mar 24 '25 01:03 sheetung