diff --git a/README.md b/README.md index f8b4647..394f87f 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,45 @@ https://gitee.com/ikechan/yunzai-meme/raw/main/meme.js 0626更新:`#meme更新`进行在线更新 +## 禁用表情 +在某些人多的大群里,如果你认为部分表情不适合进行meme,你可以使用以下方式来禁用部分表情(只限制群聊,私聊不限制) + +方式一(适用于自己搭建meme-generator): +- 第一步:获取需要禁用的表情的【代码】,如“舔”,在群内发送【舔详情】,则机器人会返回“舔”的【代码】为“prpr” +- 第二步:在meme-generator的【meme_generator/memes】目录下,将“prpr”文件夹删除或移动到其他目录,这样可以从根源上直接移除“舔”,机器人所在的所有群里都无法再进行“舔”,【meme列表】中也不会包含“舔” + +方式二(只在部分群里进行meme限制): +- 第一步:同方式一,先获取表情代码 +- 第二步:将本插件meme.js中的openBlackList从false修改为true +``` +let openBlackList = true +``` +- 第三步: + +  如果你想让你机器人所在的所有群聊都禁用“舔”和其他一些表情,则在memeBlackList中配置: +``` +let memeBlackList = [ + { + groupId: 'all', + blackList: ['prpr', 'do', 'little_do'] + } +] +``` +  如果你想让你的机器人在群123和群456之中禁用“舔”和其他一些表情,则在memeBlackList中配置: +``` +let memeBlackList = [ + { + groupId: 123, + blackList: ['prpr', 'do'] + }, + { + groupId: 456, + blackList: ['prpr', 'do', 'little_do', 'shoot'] + } +] +``` +  备注:方式二无法禁用【meme列表】中的表情(使用方式二禁用“舔”后,虽然【meme列表】中由“舔”,但是机器人不会触发“舔”),【meme列表】由meme-generator根据【meme_generator/memes】目录生成,如果想在【meme列表】不显示“舔”,目前仅支持方式一进行禁用 + > 如果觉得有帮助,请帮我点一个免费的Star,谢谢! ## 致谢 diff --git a/meme.js b/meme.js index 12925d4..0df4454 100644 --- a/meme.js +++ b/meme.js @@ -36,6 +36,29 @@ let infos = {} * 主人保护list 如['lash','do','beat_up','little_do'] */ let protectList = [] + +/** + * 是否开启meme黑名单 + * @type {boolean} true-开启 默认关闭 + */ +let openBlackList = false +/** + * meme黑名单 在指定群聊中禁用某些meme表情(只限制群聊,私聊不限制) + * { + * groupId: 群号(如果想要所有群都禁用,则群号这里填 'all') + * blackList:禁用的meme表情 + * } + */ +let memeBlackList = [ + { + groupId: '123', + blackList: ['do', 'little_do'] + }, + { + groupId: '456', + blackList: ['do', 'little_do', 'shoot'] + } +] export class memes extends plugin { constructor () { let option = { @@ -263,6 +286,22 @@ export class memes extends plugin { target = '小丑面具' } let targetCode = keyMap[target] + // 检查meme黑名单 + if (openBlackList) { + let groupId = e.group_id + if (groupId) { + for (let black of memeBlackList) { + // 黑名单列表中包含该表情 + if (black.blackList.includes(targetCode)) { + if ('all' === black.groupId) {// 所有群都禁用该表情 + return + } else if (groupId == black.groupId) { //群号等于黑名单中的群号时禁用该表情 + return + } + } + } + } + } // let target = e.msg.replace(/^#?meme(s)?/, '') let text1 = _.trimStart(e.msg, '#').replace(target, '') if (text1.trim() === '详情' || text1.trim() === '帮助') {