mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 00:53:31 +01:00
add lots of group dm features (#1208)
* group dm stuff * minor doc changes
This commit is contained in:
@@ -301,6 +301,29 @@ class ClientUser extends User {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* An object containing either a user or access token, and an optional nickname
|
||||
* @typedef {Object} GroupDMRecipientOptions
|
||||
* @property {UserResolvable|Snowflake} [user] User to add to the group dm
|
||||
* (only available if a user is creating the dm)
|
||||
* @property {string} [accessToken] Access token to use to add a user to the group dm
|
||||
* (only available if a bot is creating the dm)
|
||||
* @property {string} [nick] Permanent nickname (only available if a bot is creating the dm)
|
||||
*/
|
||||
|
||||
/**
|
||||
* Create a group dm
|
||||
* @param {GroupDMRecipientOptions[]} recipients The recipients
|
||||
* @returns {Promise<GroupDMChannel>}
|
||||
*/
|
||||
createGroupDM(recipients) {
|
||||
return this.client.rest.methods.createGroupDM({
|
||||
recipients: recipients.map(u => this.client.resolver.resolveUserID(u.user)),
|
||||
accessTokens: recipients.map(u => u.accessToken),
|
||||
nicks: recipients.map(u => u.nick),
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Invite|string} invite Invite or code to accept
|
||||
* @returns {Promise<Guild>} Joined guild
|
||||
|
||||
@@ -58,6 +58,24 @@ class GroupDMChannel extends Channel {
|
||||
*/
|
||||
this.ownerID = data.owner_id;
|
||||
|
||||
/**
|
||||
* If the dm is managed by an application
|
||||
* @type {boolean}
|
||||
*/
|
||||
this.managed = data.managed;
|
||||
|
||||
/**
|
||||
* Application ID of the application that made this group dm, if applicable
|
||||
* @type {?string}
|
||||
*/
|
||||
this.applicationID = data.application_id;
|
||||
|
||||
/**
|
||||
* Nicknames for group members
|
||||
* @type {?Collection<Snowflake, String>}
|
||||
*/
|
||||
if (data.nicks) this.nicks = new Collection(data.nicks.map(n => [n.id, n.nick]));
|
||||
|
||||
if (!this.recipients) {
|
||||
/**
|
||||
* A collection of the recipients of this DM, mapped by their ID.
|
||||
@@ -106,6 +124,20 @@ class GroupDMChannel extends Channel {
|
||||
return equal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a user to the dm
|
||||
* @param {UserResolvable|String} accessTokenOrID Access token or user resolvable
|
||||
* @param {string} [nick] Permanent nickname to give the user (only available if a bot is creating the dm)
|
||||
*/
|
||||
|
||||
addUser(accessTokenOrID, nick) {
|
||||
return this.client.rest.methods.addUserToGroupDM(this, {
|
||||
nick,
|
||||
id: this.client.resolver.resolveUserID(accessTokenOrID),
|
||||
accessToken: accessTokenOrID,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* When concatenated with a string, this automatically concatenates the channel's name instead of the Channel object.
|
||||
* @returns {string}
|
||||
|
||||
Reference in New Issue
Block a user