diff --git a/src/plugins/Utility.ts b/src/plugins/Utility.ts index a484fdb9..d6c21cf0 100644 --- a/src/plugins/Utility.ts +++ b/src/plugins/Utility.ts @@ -1,13 +1,21 @@ import { Plugin, decorators as d } from "knub"; import { Message, TextChannel } from "eris"; +import { errorMessage } from "../utils"; export class UtilityPlugin extends Plugin { getDefaultOptions() { return { permissions: { - roles: false + roles: false, + level: false }, overrides: [ + { + level: ">0", + permissions: { + level: true + } + }, { level: ">=50", permissions: { @@ -24,4 +32,20 @@ export class UtilityPlugin extends Plugin { const roles = (msg.channel as TextChannel).guild.roles.map(role => `${role.name} ${role.id}`); msg.channel.createMessage("```" + roles.join("\n") + "```"); } + + @d.command("level", "[userId:string]") + @d.permission("level") + async levelCmd(msg: Message, args) { + const member = args.userId ? this.guild.members.get(args.userId) : msg.member; + + if (!member) { + msg.channel.createMessage(errorMessage("Member not found")); + return; + } + + const level = this.getMemberLevel(member); + msg.channel.createMessage( + `The permission level of ${member.username}#${member.discriminator} is **${level}**` + ); + } }