permissionsOf(memberID) {
        const member = this.guild.members.get(memberID);
        let permission = member.permission.allow;
        if(permission & Permissions.administrator) {
            return new Permission(Permissions.all);
        }
        let overwrite = this.permissionOverwrites.get(this.guild.id);
        if(overwrite) {
            permission = (permission & ~overwrite.deny) | overwrite.allow;
        }
        let deny = 0;
        let allow = 0;
        for(const roleID of member.roles) {
            if((overwrite = this.permissionOverwrites.get(roleID))) {
                deny |= overwrite.deny;
                allow |= overwrite.allow;
            }
        }
        permission = (permission & ~deny) | allow;
        overwrite = this.permissionOverwrites.get(memberID);
        if(overwrite) {
            permission = (permission & ~overwrite.deny) | overwrite.allow;
        }
        return new Permission(permission);
    }
/**
    * Get the channel-specific permissions of a member
    * @arg {String} memberID The ID of the member
    * @returns {Permission}
    */
Get the channel-specific permissions of a member
@arg {String} memberID The ID of the member
@returns {Permission}
Get the channel - specific permissions of a member @arg { String } memberID The ID of the member @returns { Permission }
permissionsOf(memberID) {
        const member = this.guild.members.get(memberID);
        let permission = member.permission.allow;
        if(permission & Permissions.administrator) {
            return new Permission(Permissions.all);
        }
        let overwrite = this.permissionOverwrites.get(this.guild.id);
        if(overwrite) {
            permission = (permission & ~overwrite.deny) | overwrite.allow;
        }
        let deny = 0;
        let allow = 0;
        for(const roleID of member.roles) {
            if((overwrite = this.permissionOverwrites.get(roleID))) {
                deny |= overwrite.deny;
                allow |= overwrite.allow;
            }
        }
        permission = (permission & ~deny) | allow;
        overwrite = this.permissionOverwrites.get(memberID);
        if(overwrite) {
            permission = (permission & ~overwrite.deny) | overwrite.allow;
        }
        return new Permission(permission);
    }
permissionsOf ( memberID ) { const member = this . guild . members . get ( memberID ) ; let permission = member . permission . allow ; if ( permission & Permissions . administrator ) { return new Permission ( Permissions . all ) ; } let overwrite = this . permissionOverwrites . get ( this . guild . id ) ; if ( overwrite ) { permission = ( permission & ~ overwrite . deny ) | overwrite . allow ; } let deny = 0 ; let allow = 0 ; for ( const roleID of member . roles ) { if ( ( overwrite = this . permissionOverwrites . get ( roleID ) ) ) { deny |= overwrite . deny ; allow |= overwrite . allow ; } } permission = ( permission & ~ deny ) | allow ; overwrite = this . permissionOverwrites . get ( memberID ) ; if ( overwrite ) { permission = ( permission & ~ overwrite . deny ) | overwrite . allow ; } return new Permission ( permission ) ; }
Get the channel-specific permissions of a member
 @arg {String} memberID The ID of the member
 @returns {Permission}
Get the channel - specific permissions of a member @arg { String } memberID The ID of the member @returns { Permission }