From 2007c40d42fa56fd8a357c9083bba358b2444d59 Mon Sep 17 00:00:00 2001 From: Bsian Date: Wed, 9 Jun 2021 11:47:22 +0100 Subject: [PATCH 1/3] Allow passing a plain object to permissionsOf --- index.d.ts | 7 +++++-- lib/structures/Guild.js | 4 ++-- lib/structures/GuildChannel.js | 5 ++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/index.d.ts b/index.d.ts index aec9f5dcc..fbdc27db5 100644 --- a/index.d.ts +++ b/index.d.ts @@ -796,6 +796,9 @@ declare namespace Eris { id: string; user: User; } + interface MemberRoles extends BaseData { + roles: string; + } interface PartialUser { avatar: string | null; discriminator: string; @@ -2044,7 +2047,7 @@ declare namespace Eris { kickMember(userID: string, reason?: string): Promise; leave(): Promise; leaveVoiceChannel(): void; - permissionsOf(memberID: string | Member): Permission; + permissionsOf(memberID: string | Member | MemberRoles): Permission; pruneMembers(options?: PruneMemberOptions): Promise; removeMemberRole(memberID: string, roleID: string, reason?: string): Promise; searchMembers(query: string, limit?: number): Promise; @@ -2094,7 +2097,7 @@ declare namespace Eris { ): Promise; editPosition(position: number, options?: EditChannelPositionOptions): Promise; getInvites(): Promise; - permissionsOf(memberID: string | Member): Permission; + permissionsOf(memberID: string | Member | MemberRoles): Permission; } export class GuildIntegration extends Base { diff --git a/lib/structures/Guild.js b/lib/structures/Guild.js index 958ab0549..a797bea2b 100644 --- a/lib/structures/Guild.js +++ b/lib/structures/Guild.js @@ -894,11 +894,11 @@ class Guild extends Base { /** * Get the guild permissions of a member - * @arg {String | Member} memberID The ID of the member or a Member instance + * @arg {String | Member | Object} memberID The ID of the member or a Member object * @returns {Permission} */ permissionsOf(memberID) { - const member = memberID instanceof Member ? memberID : this.members.get(memberID); + const member = typeof memberID === "string" ? this.guild.members.get(memberID) : memberID; if(member.id === this.ownerID) { return new Permission(Permissions.all); } else { diff --git a/lib/structures/GuildChannel.js b/lib/structures/GuildChannel.js index 80f950d68..e17ee2ff6 100644 --- a/lib/structures/GuildChannel.js +++ b/lib/structures/GuildChannel.js @@ -2,7 +2,6 @@ const Channel = require("./Channel"); const Collection = require("../util/Collection"); -const Member = require("./Member"); const Permission = require("./Permission"); const {Permissions} = require("../Constants"); const PermissionOverwrite = require("./PermissionOverwrite"); @@ -115,11 +114,11 @@ class GuildChannel extends Channel { /** * Get the channel-specific permissions of a member - * @arg {String | Member} memberID The ID of the member or a Member instance + * @arg {String | Member | Object} memberID The ID of the member or a Member object * @returns {Permission} */ permissionsOf(memberID) { - const member = memberID instanceof Member ? memberID : this.guild.members.get(memberID); + const member = typeof memberID === "string" ? this.guild.members.get(memberID) : memberID; let permission = this.guild.permissionsOf(member).allow; if(permission & Permissions.administrator) { return new Permission(Permissions.all); From 642b6ad28c31a1dcd7742bf1c273d45046dc0340 Mon Sep 17 00:00:00 2001 From: bsian03 Date: Fri, 2 Jul 2021 23:37:52 +0100 Subject: [PATCH 2/3] correct docs --- index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index fbdc27db5..0196e6da4 100644 --- a/index.d.ts +++ b/index.d.ts @@ -797,7 +797,7 @@ declare namespace Eris { user: User; } interface MemberRoles extends BaseData { - roles: string; + roles: string[]; } interface PartialUser { avatar: string | null; From 67911578c31688d0780906dbfcc6535201a730c1 Mon Sep 17 00:00:00 2001 From: bsian03 Date: Tue, 6 Jul 2021 13:45:01 +0100 Subject: [PATCH 3/3] Fix reference --- lib/structures/Guild.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/structures/Guild.js b/lib/structures/Guild.js index a797bea2b..fdb5ab6f6 100644 --- a/lib/structures/Guild.js +++ b/lib/structures/Guild.js @@ -898,7 +898,7 @@ class Guild extends Base { * @returns {Permission} */ permissionsOf(memberID) { - const member = typeof memberID === "string" ? this.guild.members.get(memberID) : memberID; + const member = typeof memberID === "string" ? this.members.get(memberID) : memberID; if(member.id === this.ownerID) { return new Permission(Permissions.all); } else {