pupbot-plugin-lottery-wife
Version:
随机抽老公/随机抽老婆的qq机器人pupbot插件.一些需改配置.如:抽老公还是抽老婆.配置会在README展现出来
81 lines (68 loc) • 2.47 kB
JavaScript
/**
* 作者: 爱喝牛奶
* 协议: GPL3.0/later
* 附加条款: 使用后可不使用GPL协议, 但必须开源, 商业内容不能与本插件主要内容相关
*/
const { PupPlugin, PluginDataDir, PupConf, axios, segment } = require('@pupbot/core')
const { version } = require('package.json')
const plugin = new PupPlugin("lottery-wife", )
const config = {
cmd: ["#抽老公", "#抽老婆"], // 触发词
lang: 'zh-cn', // 语言
sex: 0, //抽取的性别 0 -> 女性; 1 -> 男性
"enable-all-g": false, // 启用所有群聊
"enable-g": [], // 启用的群聊(上面选项为false时生效)
}
const language = {
"zh-cn": {
result: "你今天的{sex}是:\n{qq}\n",
sex: {
0: '老婆',
1: '老公'
},
no: "很遗憾, 当前群聊没有足够的{sex}"
}
}
async function main(event, params, plugin, bot) {
reloadConfig()
if (!event.message_type == "group") { // 非群聊消息
return
}
let groupId = event.group_id // 群号
if (!config['enable-g'].includes(groupId)) {
if (!config['enable-all-g']) { // 非法群聊
return
}
}
let gMembers = await bot.getGroupMemberList(groupId, true)
let wifes = []
for (let [key, value] of gMembers.entries()) {
// value.sex 男 -> male; 女 -> female;
if (value.sex == (config.sex == 0 ? 'female' : 'male')) {
wifes.push(key)
}
}
if (wifes.length <= 0) {
let msg = language[config.lang].no.replace('{sex}', language[config.lang].sex[config.sex])
event.reply(msg)
return
}
let index = Math.ceil(Math.random() * (wifes.length - 1)) // 抽取
let { user_id, nickname, sex, age, area } = await bot.getStrangerInfo(wifes[index], true)
let msg = language[config.lang].result.replace('{qq}', `${nickname} (${user_id})`).replace('{sex}', language[config.lang].sex[config.sex])
event.reply(
[
msg,
segment.image(`http://q1.qlogo.cn/g?b=qq&nk=${user_id}&s=100`) // 头像
],
true
)
}
function reloadConfig() {
plugin.saveConfig(Object.assign(config, plugin.loadConfig()))
}
plugin.onMounted((bot, admins) => {
reloadConfig()
plugin.onCmd(config.cmd, (event, params) => main(event, params, plugin, bot))
})
module.exports = { plugin }