UNPKG

pupbot-plugin-lottery-wife

Version:

随机抽老公/随机抽老婆的qq机器人pupbot插件.一些需改配置.如:抽老公还是抽老婆.配置会在README展现出来

81 lines (68 loc) 2.47 kB
/** * 作者: 爱喝牛奶 * 协议: 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 }