修复判断权限bug
This commit is contained in:
@@ -109,12 +109,10 @@ export class example extends plugin {
|
||||
{
|
||||
reg: '^#改群头像.*$',
|
||||
fnc: 'GroupPhoto',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#改群昵称.*$',
|
||||
fnc: 'Groupname',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#获取(群|好友)列表$',
|
||||
@@ -228,7 +226,7 @@ export class example extends plugin {
|
||||
/**改群头像 */
|
||||
async GroupPhoto(e) {
|
||||
if (e.isPrivate) {
|
||||
if (!e.isMaster) return;
|
||||
if (!e.isMaster) return logger.mark("[椰奶][改群头像]不为主人");
|
||||
groupPhotoid = e.msg.replace(/#|改群头像/g, "").trim()
|
||||
|
||||
if (!groupPhotoid) return e.reply("❎ 群号不能为空");
|
||||
@@ -237,6 +235,7 @@ export class example extends plugin {
|
||||
|
||||
if (!Bot.gl.get(Number(groupPhotoid))) return e.reply("❎ 群聊列表查无此群");
|
||||
} else {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return logger.mark("[椰奶][改群头像]该群员权限不足")
|
||||
groupPhotoid = e.group_id
|
||||
}
|
||||
groupPhotoid = Number(groupPhotoid);
|
||||
@@ -296,6 +295,7 @@ export class example extends plugin {
|
||||
if (!group) return e.reply("❎ 群号不能为空");
|
||||
if (!Bot.gl.get(Number(msg[1]))) return e.reply("❎ 群聊列表查无此群");
|
||||
} else {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return logger.mark("[椰奶][改群昵称]该群员权限不足")
|
||||
group = e.group_id
|
||||
card = e.msg.replace(/#|改群昵称/g, "").trim()
|
||||
}
|
||||
|
||||
@@ -6,11 +6,12 @@ import { Cfg, Gpadmin, common, QQInterface, Browser } from '../model/index.js'
|
||||
import moment from 'moment'
|
||||
|
||||
|
||||
/**API请求错误文案 */
|
||||
//API请求错误文案
|
||||
const API_ERROR = "❎ 出错辣,请稍后重试"
|
||||
//无管理文案
|
||||
const ROLE_ERROR = "做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ"
|
||||
|
||||
//权限不足文案
|
||||
const Permission_ERROR = "❎ 该命令仅限管理员可用"
|
||||
//正则
|
||||
let Numreg = "[一壹二两三四五六七八九十百千万亿\\d]+"
|
||||
let noactivereg = new RegExp(`^#(查看|清理|确认清理|获取)(${Numreg})个?(年|月|周|天)没发言的人(第(${Numreg})页)?$`)
|
||||
@@ -26,52 +27,42 @@ export class Basics extends plugin {
|
||||
{
|
||||
reg: '^#禁言.*$',
|
||||
fnc: 'Taboo',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#解禁.*$',
|
||||
fnc: 'Relieve',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#全体(禁言|解禁)$',
|
||||
fnc: 'TabooAll',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#踢(.*)$',
|
||||
fnc: 'Kick',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#(设置|取消)管理.*$',
|
||||
fnc: 'SetAdmin',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#(允许|禁止|开启|关闭)匿名$',
|
||||
fnc: 'AllowAnony',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#发群公告.*$',
|
||||
fnc: 'AddAnnounce',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#删群公告(\\d+)$',
|
||||
fnc: 'DelAnnounce',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#查群公告$',
|
||||
fnc: 'GetAnnounce',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#修改头衔.*$',
|
||||
fnc: 'adminsetTitle',
|
||||
permission: 'master'
|
||||
},
|
||||
{
|
||||
reg: '^#申请头衔.*$',
|
||||
@@ -88,12 +79,10 @@ export class Basics extends plugin {
|
||||
{
|
||||
reg: '^#替换(幸运)?字符(\\d+)$',
|
||||
fnc: 'qun_luckyuse',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#(开启|关闭)(幸运)?字符$',
|
||||
fnc: 'qun_luckyset',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: '^#(获取|查看)?禁言列表$',
|
||||
@@ -102,12 +91,10 @@ export class Basics extends plugin {
|
||||
{
|
||||
reg: '^#解除全部禁言$',
|
||||
fnc: 'relieveAllMute',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#(查看|(确认)?清理)从未发言过?的人(第(${Numreg})页)?$`,
|
||||
fnc: 'neverspeak',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#(查看|获取)?(不活跃|潜水)排行榜(${Numreg})?$`,
|
||||
@@ -120,17 +107,14 @@ export class Basics extends plugin {
|
||||
{
|
||||
reg: noactivereg,//清理多久没发言的人
|
||||
fnc: 'noactive',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#发通知.*$`,
|
||||
fnc: 'Send_notice',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `(^#定时禁言(.*)解禁(.*)$)|(^#定时禁言任务$)|(^#取消定时禁言$)`,
|
||||
fnc: 'timeMute',
|
||||
permission: 'admin'
|
||||
},
|
||||
{
|
||||
reg: `^#(查看|获取)?群?发言榜单((7|七)天)?`,
|
||||
@@ -177,7 +161,8 @@ export class Basics extends plugin {
|
||||
}
|
||||
/**禁言 */
|
||||
async Taboo(e) {
|
||||
|
||||
//判断权限
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -256,6 +241,8 @@ export class Basics extends plugin {
|
||||
}
|
||||
/**解禁 */
|
||||
async Relieve(e) {
|
||||
//判断权限
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -282,6 +269,8 @@ export class Basics extends plugin {
|
||||
}
|
||||
/**全体禁言 */
|
||||
async TabooAll(e) {
|
||||
//判断权限
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -305,6 +294,8 @@ export class Basics extends plugin {
|
||||
}
|
||||
//踢群员
|
||||
async Kick(e) {
|
||||
//判断权限
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
// 判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -362,6 +353,8 @@ export class Basics extends plugin {
|
||||
|
||||
//设置管理
|
||||
async SetAdmin(e) {
|
||||
//判断权限
|
||||
if (!e.isMaster) return e.reply(Permission_ERROR)
|
||||
if (!e.group.is_owner) return e.reply(ROLE_ERROR, true)
|
||||
|
||||
let qq
|
||||
@@ -395,6 +388,8 @@ export class Basics extends plugin {
|
||||
|
||||
//匿名
|
||||
async AllowAnony(e) {
|
||||
//判断权限
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -419,6 +414,8 @@ export class Basics extends plugin {
|
||||
|
||||
//发群公告
|
||||
async AddAnnounce(e) {
|
||||
//判断权限
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -442,6 +439,8 @@ export class Basics extends plugin {
|
||||
}
|
||||
//删群公告
|
||||
async DelAnnounce(e) {
|
||||
//判断权限
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -462,6 +461,8 @@ export class Basics extends plugin {
|
||||
|
||||
//修改头衔
|
||||
async adminsetTitle(e) {
|
||||
if (!e.isMaster) return e.reply(Permission_ERROR)
|
||||
|
||||
if (e.message.length < 2) return
|
||||
|
||||
if (e.message[1].type != 'at') return
|
||||
@@ -540,6 +541,7 @@ export class Basics extends plugin {
|
||||
}
|
||||
//替换幸运字符
|
||||
async qun_luckyuse(e) {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
@@ -554,6 +556,8 @@ export class Basics extends plugin {
|
||||
|
||||
//开启或关闭群字符
|
||||
async qun_luckyset(e) {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
|
||||
let res = await QQInterface.swichLucky(e.group_id, /开启/.test(e.msg))
|
||||
if (!res) return e.reply(API_ERROR)
|
||||
|
||||
@@ -581,12 +585,12 @@ export class Basics extends plugin {
|
||||
Cfg.getforwardMsg(e, msg)
|
||||
}
|
||||
|
||||
//解禁全部禁言
|
||||
//解除全部禁言
|
||||
async relieveAllMute(e) {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
//判断是否有管理
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
if (!e.group.is_admin && !e.group.is_owner) return e.reply(ROLE_ERROR, true);
|
||||
|
||||
let mutelist = await Gpadmin.getMuteList(e)
|
||||
if (!mutelist) return e.reply("都没有人被禁言我怎么解的辣\(`Δ’)/")
|
||||
for (let i of mutelist) {
|
||||
@@ -598,6 +602,7 @@ export class Basics extends plugin {
|
||||
|
||||
//查看和清理多久没发言的人
|
||||
async noactive(e) {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
let Reg = noactivereg.exec(e.msg)
|
||||
Reg[2] = common.translateChinaNum(Reg[2] || 1)
|
||||
//确认清理直接执行
|
||||
@@ -625,6 +630,7 @@ export class Basics extends plugin {
|
||||
|
||||
//查看和清理从未发言的人
|
||||
async neverspeak(e) {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
let list = await Gpadmin.getneverspeak(e)
|
||||
if (!list) return
|
||||
//确认清理直接执行
|
||||
@@ -664,9 +670,9 @@ export class Basics extends plugin {
|
||||
}
|
||||
//发送通知
|
||||
async Send_notice(e) {
|
||||
if (!e.group.is_admin && !e.group.is_owner) {
|
||||
return e.reply(ROLE_ERROR, true);
|
||||
}
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
if (!e.group.is_admin && !e.group.is_owner) return e.reply(ROLE_ERROR, true);
|
||||
|
||||
e.message[0].text = e.message[0].text.replace("#发通知", "").trim()
|
||||
if (!e.message[0].text) e.message.shift()
|
||||
if (lodash.isEmpty(e.message)) return e.reply("❎ 通知不能为空")
|
||||
@@ -677,6 +683,7 @@ export class Basics extends plugin {
|
||||
|
||||
//设置定时群禁言
|
||||
async timeMute(e) {
|
||||
if (!e.member.is_admin && !e.member.is_owner && !e.isMaster) return e.reply(Permission_ERROR)
|
||||
if (/任务/.test(e.msg)) {
|
||||
let task = await redis.keys('Yunzai:yenai:Taboo:*')
|
||||
if (!task.length) return e.reply('目前还没有定时禁言任务')
|
||||
|
||||
@@ -15,33 +15,27 @@ export class NEWCMD extends plugin {
|
||||
rule: [
|
||||
{
|
||||
reg: '^#重新验证.*$',
|
||||
fnc: 'cmdReverify',
|
||||
permission: 'admin'
|
||||
fnc: 'cmdReverify'
|
||||
},
|
||||
{
|
||||
reg: '^#绕过验证.*$',
|
||||
fnc: 'cmdPass',
|
||||
permission: 'admin'
|
||||
fnc: 'cmdPass'
|
||||
},
|
||||
{
|
||||
reg: '^#开启验证$',
|
||||
fnc: 'openverify',
|
||||
permission: 'admin'
|
||||
fnc: 'openverify'
|
||||
},
|
||||
{
|
||||
reg: '^#关闭验证$',
|
||||
fnc: 'closeverify',
|
||||
permission: 'admin'
|
||||
fnc: 'closeverify'
|
||||
},
|
||||
{
|
||||
reg: '^#切换验证模式$',
|
||||
fnc: 'setmode',
|
||||
permission: 'master'
|
||||
fnc: 'setmode'
|
||||
},
|
||||
{
|
||||
reg: '^#设置验证超时时间(\\d+)(s|秒)?$',
|
||||
fnc: 'setovertime',
|
||||
permission: 'master'
|
||||
fnc: 'setovertime'
|
||||
}
|
||||
]
|
||||
})
|
||||
@@ -58,6 +52,8 @@ export class NEWCMD extends plugin {
|
||||
|
||||
if (!verifycfg.openGroup.includes(e.group_id)) return e.reply("当前群未开启验证哦~", true);
|
||||
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let qq = e.msg.replace(/#|重新验证/g, "").trim();
|
||||
|
||||
if (e.message.length != 1) {
|
||||
@@ -83,6 +79,8 @@ export class NEWCMD extends plugin {
|
||||
|
||||
if (!verifycfg.openGroup.includes(e.group_id)) return e.reply("当前群未开启验证哦~", true);
|
||||
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
|
||||
let qq = e.msg.replace(/#|绕过验证/g, "").trim();
|
||||
|
||||
if (e.message.length != 1) {
|
||||
@@ -107,6 +105,7 @@ export class NEWCMD extends plugin {
|
||||
|
||||
//开启验证
|
||||
async openverify(e) {
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
if (!e.group.is_admin && !e.group.is_owner) return e.reply("做不到,怎么想我都做不到吧ヽ(≧Д≦)ノ", true);
|
||||
let verifycfg = Config.verifycfg
|
||||
if (verifycfg.openGroup.indexOf(e.group_id) != -1) return e.reply("❎ 本群验证已处于开启状态")
|
||||
@@ -116,6 +115,7 @@ export class NEWCMD extends plugin {
|
||||
|
||||
//关闭验证
|
||||
async closeverify(e) {
|
||||
if (!e.isMaster && !e.member.is_owner && !e.member.is_admin) return e.reply("❎ 该命令仅限管理员可用", true);
|
||||
let verifycfg = Config.verifycfg
|
||||
let key = verifycfg.openGroup.indexOf(e.group_id)
|
||||
if (key == -1) return e.reply("❎ 本群暂未开启验证")
|
||||
@@ -124,6 +124,7 @@ export class NEWCMD extends plugin {
|
||||
}
|
||||
//切换验证模式
|
||||
async setmode(e) {
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限主人可用", true);
|
||||
let verifycfg = Config.verifycfg
|
||||
let value = verifycfg.mode == "模糊" ? "精确" : "模糊"
|
||||
new YamlReader(this.verifypath).set(`mode`, value)
|
||||
@@ -131,6 +132,7 @@ export class NEWCMD extends plugin {
|
||||
}
|
||||
//设置验证超时时间
|
||||
async setovertime(e) {
|
||||
if (!e.isMaster) return e.reply("❎ 该命令仅限主人可用", true);
|
||||
let overtime = e.msg.match(/\d+/g)
|
||||
new YamlReader(this.verifypath).set("time", Number(overtime))
|
||||
e.reply(`✅ 已将验证超时时间设置为${overtime}秒`)
|
||||
|
||||
@@ -18,41 +18,34 @@ export class anotice extends plugin {
|
||||
{
|
||||
reg: '^#?(同意|拒绝)$',
|
||||
fnc: 'agrees',
|
||||
permission: 'master',
|
||||
event: 'message.private',
|
||||
},
|
||||
{
|
||||
reg: '^#?回复.*$',
|
||||
fnc: 'Replys',
|
||||
permission: 'master',
|
||||
event: 'message.private',
|
||||
},
|
||||
{
|
||||
reg: '^#?(同意|拒绝|查看)(全部)?好友申请(\\d+)?$',
|
||||
fnc: 'agreesAll',
|
||||
permission: 'master',
|
||||
},
|
||||
{
|
||||
reg: '^#?(加为|添加)好友$',
|
||||
fnc: 'addFriend',
|
||||
permission: 'master',
|
||||
event: 'message.private',
|
||||
},
|
||||
{
|
||||
reg: '^#?(同意|拒绝|查看)(全部)?(加|入)?群申请(\\d+)?$',
|
||||
fnc: 'GroupAdd',
|
||||
permission: 'admin',
|
||||
event: 'message.group',
|
||||
},
|
||||
{
|
||||
reg: '^#?(同意|拒绝|查看)(全部)?群邀请(\\d+)?$',
|
||||
fnc: 'GroupInvite',
|
||||
permission: 'master',
|
||||
},
|
||||
{
|
||||
reg: '^#?查看全部请求$',
|
||||
fnc: 'SystemMsgAll',
|
||||
permission: 'master',
|
||||
}
|
||||
]
|
||||
})
|
||||
@@ -60,6 +53,7 @@ export class anotice extends plugin {
|
||||
|
||||
/** 同意好友申请 */
|
||||
async agree(e) {
|
||||
if (!e.isMaster) return false;
|
||||
let yes = /同意/.test(e.msg) ? true : false
|
||||
let qq = e.message[0].text.replace(/#|(同意|拒绝)好友申请/g, '').trim()
|
||||
if (e.message[1]) {
|
||||
@@ -81,7 +75,7 @@ export class anotice extends plugin {
|
||||
|
||||
/**同意拒绝全部好友申请 */
|
||||
async agreesAll(e) {
|
||||
|
||||
if (!e.isMaster) return false;
|
||||
let yes = /同意/.test(e.msg) ? true : false
|
||||
|
||||
let FriendAdd = (await Bot.getSystemMsg())
|
||||
@@ -146,7 +140,8 @@ export class anotice extends plugin {
|
||||
}
|
||||
/** 引用同意好友申请和群邀请 */
|
||||
async agrees(e) {
|
||||
if (!e.source) return
|
||||
if (!e.isMaster) return false;
|
||||
if (!e.source) return false;
|
||||
let yes = /同意/.test(e.msg) ? true : false
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
|
||||
|
||||
@@ -200,6 +195,7 @@ export class anotice extends plugin {
|
||||
|
||||
// 回复好友消息
|
||||
async Replys(e) {
|
||||
if (!e.isMaster) return false;
|
||||
let qq = '';
|
||||
let group = '';
|
||||
let msgs = e.message[0].text.split(' ')
|
||||
@@ -256,10 +252,11 @@ export class anotice extends plugin {
|
||||
|
||||
//加群员为好友
|
||||
async addFriend(e) {
|
||||
if (!e.source) return
|
||||
if (!e.isMaster) return false;
|
||||
if (!e.source) return false;
|
||||
let source = (await e.friend.getChatHistory(e.source.time, 1)).pop()
|
||||
let msg = source.raw_message.split('\n')
|
||||
if (!/临时消息/.test(msg[0]) || !/来源群号/.test(msg[1]) || !/发送人QQ/.test(msg[2])) return
|
||||
if (!/临时消息/.test(msg[0]) || !/来源群号/.test(msg[1]) || !/发送人QQ/.test(msg[2])) return false;
|
||||
let group = msg[1].match(/\d+/g)
|
||||
let qq = msg[2].match(/\d+/g)
|
||||
if (Bot.fl.get(Number(qq))) return e.reply('❎ 已经有这个人的好友了哦~')
|
||||
@@ -339,6 +336,7 @@ export class anotice extends plugin {
|
||||
}
|
||||
//群邀请列表
|
||||
async GroupInvite(e) {
|
||||
if (!e.isMaster) return false;
|
||||
let SystemMsg = (await Bot.getSystemMsg()).filter(item => item.request_type == "group" && item.sub_type == "invite")
|
||||
if (lodash.isEmpty(SystemMsg)) return e.reply("暂无群邀请哦(。-ω-)zzz", true)
|
||||
//查看
|
||||
@@ -395,6 +393,7 @@ export class anotice extends plugin {
|
||||
}
|
||||
//全部请求
|
||||
async SystemMsgAll(e) {
|
||||
if (!e.isMaster) return false;
|
||||
let SystemMsg = await Bot.getSystemMsg()
|
||||
let FriendAdd = [], onewayFriend = [], GroupAdd = [], GroupInvite = []
|
||||
for (let i of SystemMsg) {
|
||||
|
||||
Reference in New Issue
Block a user