diff --git a/src/client/rest/RequestHandlers/Sequential.js b/src/client/rest/RequestHandlers/Sequential.js index 9ba3c9ebb..00b713683 100644 --- a/src/client/rest/RequestHandlers/Sequential.js +++ b/src/client/rest/RequestHandlers/Sequential.js @@ -65,7 +65,7 @@ class SequentialRequestHandler extends RequestHandler { }, Number(res.headers['retry-after']) + this.restManager.client.options.restTimeOffset); if (res.headers['x-ratelimit-global']) this.globalLimit = true; } else { - item.reject(err.status === 400 ? new DiscordAPIError(res.body) : err); + item.reject(err.status >= 400 && err.status < 500 ? new DiscordAPIError(res.body) : err); resolve(err); } } else { diff --git a/src/structures/GuildMember.js b/src/structures/GuildMember.js index 3785290eb..b4fa2fcda 100644 --- a/src/structures/GuildMember.js +++ b/src/structures/GuildMember.js @@ -3,6 +3,7 @@ const Role = require('./Role'); const Permissions = require('../util/Permissions'); const Collection = require('../util/Collection'); const Presence = require('./Presence').Presence; +const util = require('util'); /** * Represents a member of a guild on Discord @@ -513,4 +514,7 @@ class GuildMember { TextBasedChannel.applyToClass(GuildMember); +GuildMember.prototype.hasPermissions = util.deprecate(GuildMember.prototype.hasPermissions, + 'GuildMember#hasPermissions is deprecated - use GuildMember#hasPermission, it now takes an array'); + module.exports = GuildMember; diff --git a/src/structures/MessageCollector.js b/src/structures/MessageCollector.js index 8e96187cf..566fb9dbd 100644 --- a/src/structures/MessageCollector.js +++ b/src/structures/MessageCollector.js @@ -1,4 +1,5 @@ const Collector = require('./interfaces/Collector'); +const util = require('util'); /** * @typedef {CollectorOptions} MessageCollectorOptions @@ -50,6 +51,14 @@ class MessageCollector extends Collector { this.on('collect', this._reEmitter); } + // TODO: Remove me in v12 + on(eventName, listener) { + if (eventName === 'message') { + listener = util.deprecate(listener, 'MessageCollector will soon no longer emit "message", use "collect" instead'); + } + super.on(eventName, listener); + } + /** * Handle an incoming message for possible collection. * @param {Message} message The message that could be collected. diff --git a/src/structures/Role.js b/src/structures/Role.js index eb6228a34..4c221bd7d 100644 --- a/src/structures/Role.js +++ b/src/structures/Role.js @@ -1,5 +1,6 @@ const Snowflake = require('../util/Snowflake'); const Permissions = require('../util/Permissions'); +const util = require('util'); /** * Represents a role on Discord @@ -350,4 +351,8 @@ class Role { } } +Role.prototype.hasPermissions = util + .deprecate(Role.prototype.hasPermissions, + 'Role#hasPermissions is deprecated - use Role#hasPermission instead, it now takes an array'); + module.exports = Role; diff --git a/src/util/Permissions.js b/src/util/Permissions.js index bbc4e4d77..2e469abf5 100644 --- a/src/util/Permissions.js +++ b/src/util/Permissions.js @@ -1,4 +1,5 @@ const Constants = require('../util/Constants'); +const util = require('util'); /** * Data structure that makes it easy to interact with a permission bitfield. All {@link GuildMember}s have a set of @@ -18,7 +19,7 @@ class Permissions { * @type {GuildMember} * @deprecated */ - this.member = typeof member === 'object' ? member : null; + this._member = typeof member === 'object' ? member : null; /** * Bitfield of the packed permissions @@ -27,6 +28,14 @@ class Permissions { this.bitfield = typeof permissions === 'number' ? permissions : this.constructor.resolve(permissions); } + get member() { + return this._member; + } + + set member(value) { + this._member = value; + } + /** * Bitfield of the packed permissions * @type {number} @@ -249,4 +258,16 @@ Permissions.DEFAULT = 104324097; * @deprecated */ +Permissions.prototype.hasPermission = util.deprecate(Permissions.prototype.hasPermission, + 'EvaluatedPermissions#hasPermission is deprecated, use Permissions#has instead'); +Permissions.prototype.hasPermissions = util.deprecate(Permissions.prototype.hasPermissions, + 'EvaluatedPermissions#hasPermissions is deprecated, use Permissions#has instead'); +Permissions.prototype.missingPermissions = util.deprecate(Permissions.prototype.missingPermissions, + 'EvaluatedPermissions#missingPermissions is deprecated, use Permissions#missing instead'); +Object.defineProperty(Permissions.prototype, 'member', { + get: util + .deprecate(Object.getOwnPropertyDescriptor(Permissions.prototype, 'member').get, + 'EvaluatedPermissions#member is deprecated'), +}); + module.exports = Permissions;