潜伏!特工bot!【水插件】

还在为你的bot刷屏而烦恼吗?还在因为测试bot的时候不能用大号而抓耳挠腮吗?还在因为机器人不小心被误触后提出群聊而义愤难平吗?快来试试新的插件吧!特工机器人,把自己潜伏起来!你值得拥有!

现在就来商城下载吧!

image

使用方式

在guiledList中添加潜伏据点,潜伏即可开始!

5 个赞

好耶,试试

1 个赞

用户群友好!
话说如果使用过滤器指定用户禁用,会不会顺便就实现了
特定群内仅特定用户可调用机器人!

2 个赞

极好的,可以更加简单的推给群内的机器人主人了!

2 个赞

请教一下,我刚刚看了npm上的代码,想知道这个潜伏插件潜伏的原理是怎么实现的,是添加一个空的中间件函数吗?他是怎么实现“拦截”或“过滤”的效果的

function apply(ctx, config) {
    for (let id of config.guildList) {
        ctx.guild(id).middleware(s => undefined, true);
    }
}

在koishi里面,消息会先经过所有的中间件,再到具体的函数吗

在koishi里面,中间件函数的执行顺序是什么样的

1 个赞

从数据结构上,这些中间件都是队列。
前置和正常的中间件不在同一个队列里。
尽管理论上插件是异步同时加载的,但js没有多线程,如果所有apply逻辑都比较简单的话,可以近似看成按照koishi.yml文件上的顺序加入队列。越前面的优先级越高。也就是说这个潜伏插件理论上放在koishi.yml(插件配置页面同理)最前面屏蔽效果最好。

2 个赞

小修正:插件加载的顺序是无关的,中间件也是(意图)顺序无关的,注册的顺序并不会影响到消息处理的结果

可以加入白名单模式吗

1 个赞

好棒的插件

1 个赞

可以考虑下个版本加。

2 个赞

可以加一个潜伏某个频道 id 的选项吗,因为 qq 频道里两个子频道的群组 id 是一样的,但是频道 id 不一样。我试过填频道 id ,不生效,填群组 id 就所有子频道都被屏蔽了
我想屏蔽其中一个子频道

3 个赞

确实,一般控制消息类的插件都请控制 channel

3 个赞