3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-22 01:05:02 +00:00

Pre-plugin moves

This commit is contained in:
Dark 2021-05-31 21:12:24 +02:00
parent 9509be5e65
commit 92cf7f31f9
13 changed files with 62 additions and 52 deletions

View file

@ -1,9 +1,9 @@
import { Constants, Guild, Member, Role } from "eris";
import { Guild, GuildMember, Permissions, Role } from "discord.js";
import { getMissingPermissions } from "./getMissingPermissions";
import { hasDiscordPermissions } from "./hasDiscordPermissions";
export function canAssignRole(guild: Guild, member: Member, roleId: string) {
if (getMissingPermissions(member.permission, Constants.Permissions.manageRoles)) {
export function canAssignRole(guild: Guild, member: GuildMember, roleId: string) {
if (getMissingPermissions(member.permissions, Permissions.FLAGS.MANAGE_ROLES)) {
return false;
}
@ -11,14 +11,14 @@ export function canAssignRole(guild: Guild, member: Member, roleId: string) {
return false;
}
const targetRole = guild.roles.get(roleId);
const targetRole = guild.roles.cache.get(roleId);
if (!targetRole) {
return false;
}
const memberRoles = member.roles.map(_roleId => guild.roles.get(_roleId)!);
const memberRoles = member.roles.cache;
const highestRoleWithManageRoles = memberRoles.reduce<Role | null>((highest, role) => {
if (!hasDiscordPermissions(role.permissions, Constants.Permissions.manageRoles)) return highest;
if (!hasDiscordPermissions(role.permissions, Permissions.FLAGS.MANAGE_ROLES)) return highest;
if (highest == null) return role;
if (role.position > highest.position) return role;
return highest;