zappyzep/src/plugins/Utility.ts

52 lines
1.2 KiB
TypeScript
Raw Normal View History

2018-07-01 03:35:51 +03:00
import { Plugin, decorators as d } from "knub";
import { Message, TextChannel } from "eris";
import { errorMessage } from "../utils";
2018-07-01 03:35:51 +03:00
export class UtilityPlugin extends Plugin {
getDefaultOptions() {
return {
permissions: {
roles: false,
level: false
2018-07-01 03:35:51 +03:00
},
overrides: [
{
level: ">0",
permissions: {
level: true
}
},
2018-07-01 03:35:51 +03:00
{
level: ">=50",
permissions: {
roles: true
}
}
]
};
}
@d.command("roles")
@d.permission("roles")
async rolesCmd(msg: Message) {
const roles = (msg.channel as TextChannel).guild.roles.map(role => `${role.name} ${role.id}`);
2018-07-01 03:35:51 +03:00
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}**`
);
}
2018-07-01 03:35:51 +03:00
}