From 6a7745353207290303c1fd62967f7ee6c67c754a Mon Sep 17 00:00:00 2001 From: ManEatingTapir <47439009+ManEatingTapir@users.noreply.github.com> Date: Sat, 26 Dec 2020 03:59:16 -0600 Subject: [PATCH] chore(RoleManager): change parameter of create to be one unnamed object (#5026) * chore(RoleManager): change parameter of create to be one unnamed object * chore(RoleManager): update src/managers/RoleManager.js * chore(RoleManager): update typings/index.d.ts * chore(RoleManager): update src/managers/RoleManager.js Co-authored-by: Noel --- src/managers/RoleManager.js | 33 +++++++++++++++++++++++---------- typings/index.d.ts | 2 +- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/managers/RoleManager.js b/src/managers/RoleManager.js index 279e43b99..667085b6b 100644 --- a/src/managers/RoleManager.js +++ b/src/managers/RoleManager.js @@ -89,7 +89,12 @@ class RoleManager extends BaseManager { * Creates a new role in the guild with given information. * The position will silently reset to 1 if an invalid one is provided, or none. * @param {Object} [options] Options - * @param {RoleData} [options.data] The data to create the role with + * @param {string} [options.name] The name of the new role + * @param {ColorResolvable} [options.color] The data to create the role with + * @param {boolean} [options.hoist] Whether or not the new role should be hoisted. + * @param {PermissionResolvable} [options.permissions] The permissions for the new role + * @param {number} [options.position] The position of the new role + * @param {boolean} [options.mentionable] Whether or not the new role should be mentionable. * @param {string} [options.reason] Reason for creating this role * @returns {Promise} * @example @@ -100,28 +105,36 @@ class RoleManager extends BaseManager { * @example * // Create a new role with data and a reason * guild.roles.create({ - * data: { - * name: 'Super Cool People', - * color: 'BLUE', - * }, + * name: 'Super Cool Blue People', + * color: 'BLUE', * reason: 'we needed a role for Super Cool People', * }) * .then(console.log) * .catch(console.error); */ - create({ data = {}, reason } = {}) { - if (data.color) data.color = resolveColor(data.color); - if (data.permissions) data.permissions = Permissions.resolve(data.permissions); + create(options = {}) { + let { name, color, hoist, permissions, position, mentionable, reason } = options; + if (color) color = resolveColor(color); + if (permissions) permissions = Permissions.resolve(permissions); return this.client.api .guilds(this.guild.id) - .roles.post({ data, reason }) + .roles.post({ + data: { + name, + color, + hoist, + permissions, + mentionable, + }, + reason, + }) .then(r => { const { role } = this.client.actions.GuildRoleCreate.handle({ guild_id: this.guild.id, role: r, }); - if (data.position) return role.setPosition(data.position, reason); + if (position) return role.setPosition(position, reason); return role; }); } diff --git a/typings/index.d.ts b/typings/index.d.ts index f01379476..35643d584 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -2021,7 +2021,7 @@ declare module 'discord.js' { public guild: Guild; public readonly premiumSubscriberRole: Role | null; public botRoleFor(user: UserResolvable): Role | null; - public create(options?: { data?: RoleData; reason?: string }): Promise; + public create(options?: RoleData & { reason?: string }): Promise; public fetch(id: Snowflake, cache?: boolean, force?: boolean): Promise; public fetch(id?: Snowflake, cache?: boolean, force?: boolean): Promise>; }