@yuxueco3 描述不清楚,你干脆说你用什么命令给的权限算了
配置文件也发下吧
@Niko_Sakura 好,根据我目前的研究,即使是安全级图片也会出r18,但是这个网站的tag对图片描述非常详细,在0.1.1我更新了tag违禁词,你可以先到r18图片地址里面左侧的tags找找有没有不合适的tag添加进违禁词列表作为临时解决方案
先上代码。这可能对大多数人来说没有必要,仅仅是我个人奇怪的操作习惯。
// 添加下面的代码到你继承了 ReadOnlyPluginData 或者 ReadOnlyPluginConfig 的配置类即可
@OptIn(ConsoleExperimentalApi::class)
private lateinit var owner_: PluginDataHolder
@OptIn(ConsoleExperimentalApi::class)
private lateinit var storage_: PluginDataStorage
@OptIn(ConsoleExperimentalApi::class)
override fun onInit(owner: PluginDataHolder, storage: PluginDataStorage) {
owner_ = owner
storage_ = storage
}
// 不需要设为 public,直接调用扩展方法 save 即可
@OptIn(ConsoleExperimentalApi::class)
private fun save() {
kotlin.runCatching {
storage_.store(owner_, this)
}.onFailure { e ->
// 记得处理异常
}
如果你只想关闭定时保存,不想关闭属性修改后自动保存,请用 AutoSavePluginData
或 AutoSavePluginConfig
并重写 shouldPerformAutoSaveWheneverChanged()
使它返回 false
mirai 的只读配置文件曾让我陷入了两难的局地,按照我的个人理解,PluginConfig 是给用户确定插件的一些参数的,插件不应该去修改数值,所以我没用 AutoSavePluginConfig 而是用了 ReadOnlyPluginConfig,在我编写插件调试的过程中我发现一个问题,它真的是只读的 —— 这很正常,因为它就叫只读配置,它在配置文件不存在时会保存默认配置文件,但在我添加新的配置键到类之后,却因为它的只读而没有在配置文件里更新不存在的配置键……
这不符合我的预期,由于我当时没看到 AutoSavePluginData 里可以关定时保存,故着手研究如何保存只读配置,最后在 AutoSavePluginData 里找到了……
重载配置文件时,reload()
再 save()
,即可更新不存在的配置键。
我只能以「简化成了我想要的样子不像 AutoSavePluginData 有我不需要的功能」来安慰自己了 :(
经过讨论,ReadOnlyPluginData 无法保存是在旧版本 mirai 中的问题,在新版本 mirai 可正常保存(具体哪个版本我还没去验证)。添加上述代码可兼容在旧版本 mirai 保存只读配置文件。
@EventHandler
public void onFriendMessage(FriendMessageEvent event){
Optional<FlashImage> flashImage = event.getMessage().stream().filter(it -> it instanceof FlashImage).findFirst()
if (flashImage.isPresent()) {
Image image = flashImage.get().getImage();
event.getSender().sendMessage(new PlainText("你发送了一张闪照\n").plus(image));
}
}
项目地址:https://github.com/MrXiaoM/LoliYouWant
「你想要的插件」系列作品
刑,真是太刑了。
本插件支持使用经济系统(可选) Mirai Economy Core,
如有需要使用金钱功能,请自行安装。若不需要金钱功能可不安装,不影响使用。
论坛又一大涩图插件 (bushi)。本插件使用 Lolibooru 的 API,全是萝莉图,萝莉控狂喜。
由于该站点在大陆内部分地区无法访问 (我在我家的机子和手机都可以访问,但在学校,该站点被 SNI 阻断了),请自备代理或者使用本地反向代理来绕过 SNI 阻断,在这方面我不会提供任何帮助。
其他功能详见配置文件。
0.3.0 新增搜索功能,用户输入的关键词将会使用腾讯交互翻译进行 中译日、日译英 然后在 Lolibooru 查找相关 Tags,再获取图片。
腾讯交互翻译在日文人名这方面翻译得相当不准确,如果是直接中译英,则结果是逐字翻译成英文,故先中译日再日译英。
目前测试和泉纱雾
会以英文习惯把姓名倒过来 (此问题已经过特殊处理解决),绪山真寻
则是根本翻译不出来。这些错误导致翻译结果并不符合tag命名规则,在之后的版本会经过特殊处理尽量规避。
到 Releases 下载插件并放入 plugins 文件夹进行安装
安装完毕后,编辑配置文件作出你想要的修改。在控制台执行 /luwadmin reload
重载配置即可~
配置文件内有详细的注释,详见 源码
配置文件路径是
./config/top.mrxiaom.loliyouwant/config.yml
0.3.0 配置文件大改,如果你是从 0.2.x 升级到 0.3.0 的,请在升级前备份配置文件,升级后修改新加的选项。
新版本将一些配置移动了位置,比如 /loli get
命令的各种回复消息、超时时间、是否保存图片等通通移到了 command
块。
keywords
配置没有改动。
命令 | 解释 |
---|---|
/loli get <[数量] tags> | 根据tags获取N张图片,不输入数量则默认为1张,多个tag用空格分开,tag只能为英文,tag中的空格用下划线代替,不支持模糊搜索 |
/loli search <[数量] 搜索关键词> | 根据关键词搜索到最符合、图片数量最多的 tags,并根据tags获取N张图片,不输入数量则默认为1张。关键词最好用英文,中文会自动翻译但不准确 |
/loliadmin reload | 重载配置文件 |
/loliadmin keywords | 查看已载入的关键词配置 |
权限 | 解释 |
---|---|
top.mrxiaom.loliyouwant:command.loliyouwant | 允许使用 /loli 命令 |
top.mrxiaom.loliyouwant:command.loliyouwantadmin | 允许使用 /loliadmin 命令 |
top.mrxiaom.loliyouwant:random | 允许使用关键词随机图片功能 |
top.mrxiaom.loliyouwant:search | 允许使用关键词搜索功能 (不是 /loli search 命令权限) |
top.mrxiaom.loliyouwant:bypass.cooldown | 无视冷却时间 |
random 和 search 权限,即可以给群,也可以给群员,也可以给好友。如果把权限给到群,群内所有人均可使用关键词
提示:可通过以下命令给权限
/perm permit g群号 权限 /perm permit g群号.群友QQ号 权限 /perm permit m群友QQ号 权限 /perm permit QQ号 权限
给予 random 权限后,发送 @机器人 来只萝莉
即可,空格可不加,剩下的详见配置文件。
添加关键词的方法如下
默认配置文件是这样的
keywords:
来只萝莉:
# 指定该关键词包括的 Tag
tags: []
# 获取图片的最大数量
# 接口每次只能申请40张图片,过滤器会过滤掉一部分,故该数量仅供限制最多发送数量
# 若数量大于等于2,将通过合并转发发送
count: 1
# 单张图片的连接超时时间 (秒)
timeout: 60
# 是否需要 @ 机器人来触发随机发图
at: true
# 返回图片的画质
# PREVIEW - 低画质
# SAMPLE - 中等画质
# FILE - 原画质
quality: SAMPLE
# 获取成功的回复信息
# \$at @发送者
# \$quote 回复发送者
# \$id 图片ID
# \$previewUrl 图片直链 (预览画质)
# \$sampleUrl 图片直链 (中等画质)
# \$fileUrl 图片直链 (原画质)
# \$url 图片直链 (发送的图所选画质)
# \$tags 图片标签
# \$rating 图片分级,q (Questionable) 或者 s (Safe)
# \$pic 下载的图片,下载失败时用 image-fail-download 的值代替
reply-success: \"\$pic\\n图片地址: https://lolibooru.moe/post/show/\$id\\n标签: \$tags\"
# 图片下载失败时的代替文字
image-fail-download: 「图片下载失败」
# 获取成功的回复信息
# \$at @发送者
# \$quote 回复发送者
reply-fail: '\$quote获取失败,稍后再试吧'
# 正在获取的回复信息
# \$at @发送者
# \$quote 回复发送者
reply-fetching: '\$quote正在获取中,请稍等'
# 图片获取完成后撤回正在获取的回复信息
recall-fetching-message: true
# 是否顺便保存图片到本地 (data 文件夹)
download: false
# 重写图片保存路径,该路径相对于 data/top.mrxiaom.loliyouwant/
override-download-path: ''
# 执行命令所需金钱的货币类型
# 留空为不花费金钱
# 该功能需要安装 mirai-economy-core 插件生效
costMoneyCurrency: mirai-coin
# 执行命令所需金钱
costMoney: 10.0
# 是否从全局上下文扣除金钱
# 若关闭该项,将在用户执行命令所在群的上下文扣除金钱
# 私聊执行命令将强制使用全局上下文
costMoneyGlobal: false
# 执行命令金钱不足提醒
# $at 为 @ 发送者,$quote 为回复发送者,$cost 为需要花费的金钱
costMoneyNotEnough: "$quote你没有足够的 Mirai 币 ($cost) 来执行该命令!"
把来只萝莉:
到最后override...
那里复制粘贴一下,然后把 来只萝莉
改成你想要的关键词,然后按照上面注释的中文提示,改下面的选项,改好后保存然后控制台执行命令 /loli reload
或者重启 mirai 就行。改好后的配置如下
keywords:
来只萝莉:
tags: []
count: 1
timeout: 60
at: true
quality: SAMPLE
replySuccess: "$pic\n图片地址: https://lolibooru.moe/post/show/$id\n标签: $tags"
imageFailDownload: 「图片下载失败」
replyFail: '$quote获取失败,稍后再试吧'
replyFetching: '$quote正在获取中,请稍等'
recallFetchingMessage: true
download: false
overrideDownloadPath: ''
costMoneyCurrency: mirai-coin
costMoney: 10.0
costMoneyGlobal: false
costMoneyNotEnough: "$quote你没有足够的 Mirai 币 ($cost) 来执行该命令!"
来点原神:
tags:
- genshin_impact
count: 5
timeout: 60
at: true
quality: SAMPLE
replySuccess: "$pic\n图片地址: https://lolibooru.moe/post/show/$id"
imageFailDownload: 「图片下载失败」
replyFail: '$quote获取失败,稍后再试吧'
replyFetching: '$quote正在获取中,请稍等'
recallFetchingMessage: true
download: false
overrideDownloadPath: ''
costMoneyCurrency: mirai-coin
costMoney: 10.0
costMoneyGlobal: false
costMoneyNotEnough: "$quote你没有足够的 Mirai 币 ($cost) 来执行该命令!"
给予 search 权限后,发送 @机器人 来点和泉纱雾
即可搜索图片。在配置文件找不到关键词时,以 来点
开头将会触发搜索。
建议添加 r16 tag 到配置文件的 hidden-tags
中尽可能避免机器人因发图而封号。以下是默认的 r16 tag,可能会更新,但不会随插件更新而更新,需要自行手动复制
hidden-tags:
- pantie
- pantsu
- underwear
- navel
- breast
- bikini
- stomach
- topless
- bottomless
- groin
- butt
# 加下面这个单纯是我本人不喜欢 3D 渲染的图
- 3dcg
# 下面这个是漫画,可以过滤掉大部分非插画
- comic
- bum
- backside
- fanny
- bunny
- bunny_girl
- less
- bottom
- kiss
- swimsuit
- sukusui
- towel
- naked_towel
- denim
- armpits
- ribs
- bare_shoulders
- translation_request
- no_bra
- blush
- ass
- absurdres
- head_out_of_frame
- spats
- short
- short_under_skrit
- short_skrit
- thighhighs
前往 爱发电 捐助我。
来自群组: SkyNet1748
@helloworld123 这份代码主要是面向用户,比如在配置文件自定义机器人回复信息格式,让用户写 mirai code 似乎并不是很现实,替换变量是我目前想到对用户相对友好的办法