2018-07-01 03:35:51 +03:00
|
|
|
import { Plugin, decorators as d } from "knub";
|
|
|
|
import { Message, TextChannel } from "eris";
|
2018-07-14 20:56:08 +03:00
|
|
|
import { errorMessage } from "../utils";
|
2018-07-01 03:35:51 +03:00
|
|
|
|
|
|
|
export class UtilityPlugin extends Plugin {
|
|
|
|
getDefaultOptions() {
|
|
|
|
return {
|
|
|
|
permissions: {
|
2018-07-14 20:56:08 +03:00
|
|
|
roles: false,
|
|
|
|
level: false
|
2018-07-01 03:35:51 +03:00
|
|
|
},
|
|
|
|
overrides: [
|
2018-07-14 20:56:08 +03:00
|
|
|
{
|
|
|
|
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) {
|
2018-07-12 01:45:26 +03:00
|
|
|
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") + "```");
|
|
|
|
}
|
2018-07-14 20:56:08 +03:00
|
|
|
|
|
|
|
@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
|
|
|
}
|