1 |
rakin |
51 |
import { GuildMember } from "discord.js"; |
2 |
|
|
import DiscordClient from "../client/Client"; |
3 |
|
|
|
4 |
|
|
export default class Auth { |
5 |
|
|
constructor(protected client: DiscordClient) { |
6 |
|
|
|
7 |
|
|
} |
8 |
|
|
|
9 |
|
|
async verify(member: GuildMember, command: string): Promise<boolean> { |
10 |
|
|
const cmds: string[] = await this.client.config.get('global_commands'); |
11 |
|
|
|
12 |
|
|
if (cmds.indexOf(command) !== -1) { |
13 |
|
|
return true; |
14 |
|
|
} |
15 |
|
|
|
16 |
|
|
if (await member.roles.cache.has(await this.client.config.get('mod_role'))) { |
17 |
|
|
let restricted: string[] = []; |
18 |
|
|
const roleCommands: { [key: string]: string[] } = await this.client.config.get('role_commands'); |
19 |
|
|
|
20 |
|
|
for (const roleID in roleCommands) { |
21 |
|
|
if (await member.roles.cache.has(roleID)) { |
22 |
|
|
restricted = await roleCommands[roleID]; |
23 |
|
|
break; |
24 |
|
|
} |
25 |
|
|
} |
26 |
|
|
|
27 |
|
|
return restricted.indexOf(command) === -1; |
28 |
|
|
} |
29 |
|
|
|
30 |
|
|
return false; |
31 |
|
|
} |
32 |
|
|
}; |