对于我来说,使用铃心最开始的目的除了抄袭别人的功能,就是制作一个统一的开关系统
编辑于2020.2.7 转载请注明作者
什么叫做开关系统
使用铃心自定义的时候我们会注意到,有些时候,功能会刷屏,引起不适。尽管此时作为主人的你可以选择利用铃心内部的回复关和分群开关系统选择性的关闭功能,但是对于其他你不在的群聊,管理可真的是束手无策。
面对这种情况,大部分的管理选择的方案是禁言——不管你是什么东西,只要你是QQ,那我禁言就一定好使,不是吗?
然而,事实情况是,有些机器人插件是不能被禁言的——如众所周知的骰子插件,一旦禁言就会被拉入云黑名单。
题外话,对于云黑名单的正确性仍处于有待讨论的阶段。早期骰子数量较少的情况下云黑名单的作用是异常重大且合理的。但是现在过多的骰子数量,云黑体系已经无法很好地容纳了。
关于这点,我们以后会在一篇帖子内详细地阐述一下我的看法
好,总的来说,结论就是——有些时候,铃心自带的开关系统是不能满足我们的需求的。我们需要一个自制的开关系统来让普通的群管理员也有开关机器人的权利。
开关的基本思路&基本的嵌套外壳思想
首先,老规矩,我们要知道我们要实现什么功能。
- 能够让没有master的群,也可以选择性的开关机器人
这次的目标就相对简单了些,我们只需要实现这一点就可以了!那说干就干,于是我们稍微用我们之前的想法思考一下,就有了一个利用判断来实现的开关系统。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#开关系统 【判断1>=<【读配置【运行目录】\app\config\Bot.ini>=<Clicker>=<【判空【当前群号】>=<0】>=<1】>=<!null>=<我是会受到开关控制的回复内容哒!】 #由于整个系统只有一个模块,因此解释只能放在后面一通解释了 #【运行目录】\app\config\Bot.ini是存放开关的配置文件,其中有配置项clicker和配置节【当前群号】 #【判空【当前群号】>=<0】目的是为了判断当前窗口是否为私聊,私聊返还的【当前群号】为空值 #如果为私聊则认为当前群号为0,在配置节中可自我配置是否开启私聊 #!null代表如果当前群号的开关不处于1状态,则什么都不返回,直接结束该回复 #如果处于1状态,则运行后面的回复内容 |
为了能够让配置文件中的内容受群管理员的控制,我们还需要两个跟开启和关闭有关的内容。
1 2 3 4 5 6 |
#触发词为关闭 【管理】【写配置【运行目录】\app\config\Bot.ini>=<Clicker>=<【当前群号】>=<0】 #触发词为开启 【管理】【写配置【运行目录】\app\config\Bot.ini>=<Clicker>=<【当前群号】>=<1】 #因为太简单,我就不解释了,看不懂的请面壁 |
好,那么实际使用的时候,情况就是这个样子的

之后对于所有需要开关系统限制的回复,你都可以套上这样的一个开关外壳,它就会受到开关的限制了!
1 2 3 |
【判断1>=<【读配置【运行目录】\app\config\Bot.ini>=<Clicker>=<【判空【当前群号】>=<0】>=<1】>=<!null>=<[参数1]】 #参数1为你原本的需要受到开关系统限制的回复内容 |
开关系统该如何延伸
关于开关系统的延伸方面,其实可以延伸出很多东西。这里我们就稍微看窄一些,讲讲目前结构下开关系统可以自定义的部分。
我们可以注意到,判断那里是认为1是开启,0是关闭。但是我们也可以添加更多的态比如说2或者是3或者是12之类的。这样我们就可以做出来更多层次的限制回复了!
同时,判断也可以改为判含,比如说判含1,这样12和118和1的状态都会对这个开关系统下的回复进行限制。而2就不会被限制。
以此类推。
函数化开关系统
由于铃心新版送给我们了一个极其好用的自定义函数系统,我们也不能不用是吧——
1 2 3 4 5 6 |
#开关函数 #[参数1]为你原本的回复内容 【函数开关>=<【判断1>=<【读配置【运行目录】\app\config\Bot.ini>=<Clicker>=<【判空【当前群号】>=<0】>=<1】>=<!null>=<[参数1]】】 #示例 【开关【随取你好!>=<你好好!>=<你好好好!】】 |
结语
本篇的篇幅虽短,但内容可一点也不糙——
开关系统有一个非常明显的特点,就是——它只是一个外壳,实现的功能与里面套着什么东西无关。
联想我们上一篇学到的非函数好感度系统,我们会发现原本的好感度系统其实是非外壳嵌套的,而在后续我制作的函数好感度系统中给改成了一种外壳形式的结构。
外壳形式的结构极大的降低了用户使用该功能的要求,使其不需要过于了解内容就可以应用自如。因此在以后的书写中,我们应该尤其注意这一点,只要能够写成外壳形式,我们就尽量写成外壳形式。
emmmm,其实是因为函数只能写成外壳形式啊!!!!
当时也没想那么多的阿姨
7 Comments
Bot.ini配置文件怎么写的
@Anonymous Bot.ini是标准的配置文件形式,在这个例子中就是:
[Clicker]
0=1
@Yorunina 感谢
好多铃心教程,后续还有更新吗?想学QAQ
@梦の雨蝶 会有的会有的
小鸟阿姨好。
想请问一下,
读和写,是放在同一个回复框内吗?
以及阿,
配置项是写错了吗?是
还是
呢?
@秋奥多拉斯 我写错了,抱歉抱歉——现已更正