使用分组过滤器时,或条件达到30以上时,koishi无法处理任何消息

我的需求是实现白名单机制,仅指定的群或人可以使用,我希望只在一处进行管理,同时我的koishi有着多个onebot适配器,用assign切换达成快速秽土转生。

经测试,在Koishi市场的白名单插件并不能拦截所有插件,我开始尝试使用过滤器拦截所有插件,当然这肯定不是好主意,我觉得像assign那样的实现肯定更好。

初步测试成功,但当我增加或条件,如下图到30个或条件

我的koishi开始无法处理任何消息,这时也没有日志所以不提供图片了,当我将任意插件移除这个规则组,就可以成功触发了,所以可以肯定是过滤器的问题

除此之外我还改了全局设置里的监听器数量到640,因为新用户只能上传一张图,所以只口头描述

我不确定还需要提供哪些信息,请告知我

1 个赞

…看着这配置很不舒服,你这还是建议直接使用现成的插件吧, 例如授权插件

1 个赞

这也是我想吐槽的一点,koishi的黑名单/白名单功能做的极其不好,或者说不完善,可能是我不会用,连一个全局拉黑的功能都没有,我分别进几十个插件把这个用户过滤掉?全局黑或者全局白不应该平台提供?插件各自为战,搞麻了,弄一个自作聪明的过滤器,用起来体验很差,真是爱之深,责之切,说话直坛友原谅

1 个赞

准确地说的话,Koishi 没做这样的功能。

打开插件配置,你可以看到 echo 这样的入门指令是由插件提供的,help 这样的指令是由插件提供的,你打开的「插件配置」这个页面本身也是由 config 插件提供的。

Koishi 是一个由插件构成功能的框架,框架本身致力于提供的不是黑名单功能也不是群管功能,而是尽可能多的 API,让插件开发者有尽可能多的能力实现你想要的功能。虽然 Koishi 没做这样的功能,但 Koishi 可以保证 有需求的开发者能够很快写出一个插件来满足这样的需求

理解了这一点就会知道 Koishi 现在的插件系统与你所说的「插件各自为战」情况恰恰相反,插件是可以协同工作的:你可以写一个插件来实现全局黑名单/白名单/权限管理;你还可以写一个插件来实现每天定时的权限管理,甚至写一个插件,根据群内群友最近的发言数量不同给群友开放不同指令的使用权限。在 Koishi 现有的架构下这些需求都是可以由插件轻松实现的。

至于过滤器,虽然过滤器看上去可以当作黑名单用,但一般情况下不建议这么用;过滤器配置的是某个插件的「作用范围」,你可以用过滤器配置某个插件仅在某平台可用,或者仅在私聊可用。


因此,如果现在你希望有一个全局黑名单的功能可用的话,推荐进行 如下两步

  1. 在 Koishi 控制台中打开「插件市场」,搜索「黑名单」「拉黑」等关键词,找找看有没有符合你需求的插件。(我刚粗略搜了一下,看到有两个插件应该符合你的需求,你多换几个关键词搜可能能找到更多

  2. 如果没有找到符合自己需求的插件,在论坛的左侧点击「求插件」版块(论坛任何页面左侧都固定展示着本论坛的所有版块),然后点击右上角创建帖子,详细 地描述你的需求,发一个求插件贴。对需求感兴趣的开发者看到以后就可能会开发相应的插件。

目前论坛没有在公告或者置顶贴里介绍上述的两个步骤,这确实是论坛建设上的不完善。后续论坛可以考虑开一个新的置顶贴,详细介绍遇到「想要某个功能」「反馈某个插件的问题」等常见问题时,应该怎么做。




顺便再说一些;

关于这一点,每个人会有不同的看法,但在 Koishi 和 Nonebot 这样的「Bot 框架」中,全局黑名单这样的 业务功能不会由框架提供。用户的需求是无穷无尽的,每一个需求都可能是合理的,但框架的开发者没有精力实现所有合理的需求。可以试想一下,如果「全局黑名单」应该 Koishi 内置的话,

  • 「临时黑名单」(将用户黑名单一周或指定时长后释放)应该内置吗?
  • 「自动黑名单」(检测到等级低的账号、疑似广告发言的账号就自动拉黑)应该内置吗?
  • 「群白名单」(让机器人只在指定群里发言,忽略其他不认识的群和私聊消息)应该内置吗?

上述需求都是运营一个 bot 非常常见的需求,自然也是社区内呼声很高的需求。如果「全局黑名单」应该内置的话,那么「临时黑名单」似乎必须一起内置,毕竟大多数聊天平台自带的「禁言」功能都支持指定时长。除了「黑名单」以外,「积分」「跨群互联」也都是很多用户需要的功能,然而抛开实用性和内置体积等因素不谈,框架开发者不会有精力做完所有用户想要的功能(即使这些功能确实很重要)。此外,框架开发者的想象力也一样是有限的,很多功能做出来了也可能并不好用,大概率也不如熟悉需求的开发者做一个插件好用。从这个角度来看,框架不内置这部分功能就是更好的选择,至少插件开发者遇到这类需求可以自己写插件解决,用户也可以在插件市场里进行挑选,选择一个最适合自己的插件使用。

3 个赞

你这不是说话直 是说话不过脑

说句不好听的这么多意见你怎么不自己写或者给 Koishi 提个 pr

2 个赞

典,你行你上言论又来了,我看不惯美国就得去当美国总统帮他们改善是吧?

1 个赞