mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 19:43:29 +01:00
* several things * see my comment * Fixed missing stuff and returned undefined
This commit is contained in:
@@ -122,11 +122,8 @@ class RESTMethods {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (channel instanceof User || channel instanceof GuildMember) {
|
if (channel instanceof User || channel instanceof GuildMember) this.createDM(channel).then(send, reject);
|
||||||
this.createDM(channel).then(send, reject);
|
else send(channel);
|
||||||
} else {
|
|
||||||
send(channel);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -259,7 +256,7 @@ class RESTMethods {
|
|||||||
|
|
||||||
createChannel(guild, channelName, channelType, overwrites) {
|
createChannel(guild, channelName, channelType, overwrites) {
|
||||||
if (overwrites instanceof Collection) overwrites = overwrites.array();
|
if (overwrites instanceof Collection) overwrites = overwrites.array();
|
||||||
return this.rest.makeRequest('post', Endpoints.Guild(guild).channel, true, {
|
return this.rest.makeRequest('post', Endpoints.Guild(guild).channels, true, {
|
||||||
name: channelName,
|
name: channelName,
|
||||||
type: channelType,
|
type: channelType,
|
||||||
permission_overwrites: overwrites,
|
permission_overwrites: overwrites,
|
||||||
@@ -278,9 +275,8 @@ class RESTMethods {
|
|||||||
const data = this.client.user.bot ?
|
const data = this.client.user.bot ?
|
||||||
{ access_tokens: options.accessTokens, nicks: options.nicks } :
|
{ access_tokens: options.accessTokens, nicks: options.nicks } :
|
||||||
{ recipients: options.recipients };
|
{ recipients: options.recipients };
|
||||||
|
|
||||||
return this.rest.makeRequest('post', Endpoints.User('@me').channels, true, data)
|
return this.rest.makeRequest('post', Endpoints.User('@me').channels, true, data)
|
||||||
.then(res => new GroupDMChannel(this.client, res));
|
.then(res => new GroupDMChannel(this.client, res));
|
||||||
}
|
}
|
||||||
|
|
||||||
addUserToGroupDM(channel, options) {
|
addUserToGroupDM(channel, options) {
|
||||||
@@ -288,7 +284,7 @@ class RESTMethods {
|
|||||||
{ nick: options.nick, access_token: options.accessToken } :
|
{ nick: options.nick, access_token: options.accessToken } :
|
||||||
{ recipient: options.id };
|
{ recipient: options.id };
|
||||||
return this.rest.makeRequest('put', Endpoints.Channel(channel).Recipient(options.id), true, data)
|
return this.rest.makeRequest('put', Endpoints.Channel(channel).Recipient(options.id), true, data)
|
||||||
.then(() => channel);
|
.then(() => channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
getExistingDM(recipient) {
|
getExistingDM(recipient) {
|
||||||
@@ -330,24 +326,22 @@ class RESTMethods {
|
|||||||
options.region = options.region || 'us-central';
|
options.region = options.region || 'us-central';
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
this.rest.makeRequest('post', Endpoints.guilds, true, options).then(data => {
|
this.rest.makeRequest('post', Endpoints.guilds, true, options).then(data => {
|
||||||
if (this.client.guilds.has(data.id)) {
|
if (this.client.guilds.has(data.id)) return resolve(this.client.guilds.get(data.id));
|
||||||
resolve(this.client.guilds.get(data.id));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const handleGuild = guild => {
|
const handleGuild = guild => {
|
||||||
if (guild.id === data.id) {
|
if (guild.id === data.id) {
|
||||||
this.client.removeListener('guildCreate', handleGuild);
|
this.client.removeListener(Constants.Events.GUILD_CREATE, handleGuild);
|
||||||
this.client.clearTimeout(timeout);
|
this.client.clearTimeout(timeout);
|
||||||
resolve(guild);
|
resolve(guild);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.client.on('guildCreate', handleGuild);
|
this.client.on(Constants.Events.GUILD_CREATE, handleGuild);
|
||||||
|
|
||||||
const timeout = this.client.setTimeout(() => {
|
const timeout = this.client.setTimeout(() => {
|
||||||
this.client.removeListener('guildCreate', handleGuild);
|
this.client.removeListener(Constants.Events.GUILD_CREATE, handleGuild);
|
||||||
reject(new Error('Took too long to receive guild data.'));
|
reject(new Error('Took too long to receive guild data.'));
|
||||||
}, 10000);
|
}, 10000);
|
||||||
|
return undefined;
|
||||||
}, reject);
|
}, reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -361,11 +355,8 @@ class RESTMethods {
|
|||||||
|
|
||||||
getUser(userID, cache) {
|
getUser(userID, cache) {
|
||||||
return this.rest.makeRequest('get', Endpoints.User(userID), true).then(data => {
|
return this.rest.makeRequest('get', Endpoints.User(userID), true).then(data => {
|
||||||
if (cache) {
|
if (cache) return this.client.actions.UserGet.handle(data).user;
|
||||||
return this.client.actions.UserGet.handle(data).user;
|
else return new User(this.client, data);
|
||||||
} else {
|
|
||||||
return new User(this.client, data);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -470,11 +461,8 @@ class RESTMethods {
|
|||||||
|
|
||||||
getGuildMember(guild, user, cache) {
|
getGuildMember(guild, user, cache) {
|
||||||
return this.rest.makeRequest('get', Endpoints.Guild(guild).Member(user.id), true).then(data => {
|
return this.rest.makeRequest('get', Endpoints.Guild(guild).Member(user.id), true).then(data => {
|
||||||
if (cache) {
|
if (cache) return this.client.actions.GuildMemberGet.handle(guild, data).member;
|
||||||
return this.client.actions.GuildMemberGet.handle(guild, data).member;
|
else return new GuildMember(guild, data);
|
||||||
} else {
|
|
||||||
return new GuildMember(guild, data);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -497,44 +485,48 @@ class RESTMethods {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addMemberRole(member, role) {
|
addMemberRole(member, role) {
|
||||||
return new Promise(resolve => {
|
return new Promise((resolve, reject) => {
|
||||||
if (member._roles.includes(role.id)) {
|
if (member._roles.includes(role.id)) return resolve(member);
|
||||||
resolve(member);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const listener = (oldMember, newMember) => {
|
const listener = (oldMember, newMember) => {
|
||||||
if (!oldMember._roles.includes(role.id) && newMember._roles.includes(role.id)) {
|
if (!oldMember._roles.includes(role.id) && newMember._roles.includes(role.id)) {
|
||||||
this.client.removeListener('guildMemberUpdate', listener);
|
this.client.removeListener(Constants.Events.GUILD_MEMBER_UPDATE, listener);
|
||||||
resolve(newMember);
|
resolve(newMember);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.client.on('guildMemberUpdate', listener);
|
this.client.on(Constants.Events.GUILD_MEMBER_UPDATE, listener);
|
||||||
this.client.setTimeout(() => this.client.removeListener('guildMemberUpdate', listener), 10e3);
|
const timeout = this.client.setTimeout(() =>
|
||||||
|
this.client.removeListener(Constants.Events.GUILD_MEMBER_UPDATE, listener), 10e3);
|
||||||
|
|
||||||
this.rest.makeRequest('put', Endpoints.Member(member).Role(role.id), true);
|
return this.rest.makeRequest('put', Endpoints.Member(member).Role(role.id), true).catch(err => {
|
||||||
|
this.client.removeListener(Constants.Events.GUILD_BAN_REMOVE, listener);
|
||||||
|
this.client.clearTimeout(timeout);
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
removeMemberRole(member, role) {
|
removeMemberRole(member, role) {
|
||||||
return new Promise(resolve => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!member._roles.includes(role.id)) {
|
if (!member._roles.includes(role.id)) return resolve(member);
|
||||||
resolve(member);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const listener = (oldMember, newMember) => {
|
const listener = (oldMember, newMember) => {
|
||||||
if (oldMember._roles.includes(role.id) && !newMember._roles.includes(role.id)) {
|
if (oldMember._roles.includes(role.id) && !newMember._roles.includes(role.id)) {
|
||||||
this.client.removeListener('guildMemberUpdate', listener);
|
this.client.removeListener(Constants.Events.GUILD_MEMBER_UPDATE, listener);
|
||||||
resolve(newMember);
|
resolve(newMember);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
this.client.on('guildMemberUpdate', listener);
|
this.client.on(Constants.Events.GUILD_MEMBER_UPDATE, listener);
|
||||||
this.client.setTimeout(() => this.client.removeListener('guildMemberUpdate', listener), 10e3);
|
const timeout = this.client.setTimeout(() =>
|
||||||
|
this.client.removeListener(Constants.Events.GUILD_MEMBER_UPDATE, listener), 10e3);
|
||||||
|
|
||||||
this.rest.makeRequest('delete', Endpoints.Member(member).Role(role.id), true);
|
return this.rest.makeRequest('delete', Endpoints.Member(member).Role(role.id), true).catch(err => {
|
||||||
|
this.client.removeListener(Constants.Events.GUILD_BAN_REMOVE, listener);
|
||||||
|
this.client.clearTimeout(timeout);
|
||||||
|
reject(err);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,16 +598,8 @@ class RESTMethods {
|
|||||||
data.hoist = typeof _data.hoist !== 'undefined' ? _data.hoist : role.hoist;
|
data.hoist = typeof _data.hoist !== 'undefined' ? _data.hoist : role.hoist;
|
||||||
data.mentionable = typeof _data.mentionable !== 'undefined' ? _data.mentionable : role.mentionable;
|
data.mentionable = typeof _data.mentionable !== 'undefined' ? _data.mentionable : role.mentionable;
|
||||||
|
|
||||||
if (_data.permissions) {
|
if (_data.permissions) data.permissions = Permissions.resolve(_data.permissions);
|
||||||
let perms = 0;
|
else data.permissions = role.permissions;
|
||||||
for (let perm of _data.permissions) {
|
|
||||||
if (typeof perm === 'string') perm = Permissions.FLAGS[perm];
|
|
||||||
perms |= perm;
|
|
||||||
}
|
|
||||||
data.permissions = perms;
|
|
||||||
} else {
|
|
||||||
data.permissions = role.permissions;
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.rest.makeRequest('patch', Endpoints.Guild(role.guild).Role(role.id), true, data).then(_role =>
|
return this.rest.makeRequest('patch', Endpoints.Guild(role.guild).Role(role.id), true, data).then(_role =>
|
||||||
this.client.actions.GuildRoleUpdate.handle({
|
this.client.actions.GuildRoleUpdate.handle({
|
||||||
@@ -686,7 +670,7 @@ class RESTMethods {
|
|||||||
if (_data.name) data.name = _data.name;
|
if (_data.name) data.name = _data.name;
|
||||||
if (_data.roles) data.roles = _data.roles.map(r => r.id ? r.id : r);
|
if (_data.roles) data.roles = _data.roles.map(r => r.id ? r.id : r);
|
||||||
return this.rest.makeRequest('patch', Endpoints.Guild(emoji.guild).Emoji(emoji.id), true, data)
|
return this.rest.makeRequest('patch', Endpoints.Guild(emoji.guild).Emoji(emoji.id), true, data)
|
||||||
.then(newEmoji => this.client.actions.GuildEmojiUpdate.handle(emoji, newEmoji).emoji);
|
.then(newEmoji => this.client.actions.GuildEmojiUpdate.handle(emoji, newEmoji).emoji);
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteEmoji(emoji) {
|
deleteEmoji(emoji) {
|
||||||
@@ -831,11 +815,11 @@ class RESTMethods {
|
|||||||
emoji: Util.parseEmoji(emoji),
|
emoji: Util.parseEmoji(emoji),
|
||||||
channel_id: message.channel.id,
|
channel_id: message.channel.id,
|
||||||
}).reaction
|
}).reaction
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
removeMessageReaction(message, emoji, user) {
|
removeMessageReaction(message, emoji, user) {
|
||||||
let endpoint = Endpoints.Message(message).Reaction(emoji).User(user === this.client.user.id ? '@me' : user.id);
|
const endpoint = Endpoints.Message(message).Reaction(emoji).User(user === this.client.user.id ? '@me' : user.id);
|
||||||
return this.rest.makeRequest('delete', endpoint, true).then(() =>
|
return this.rest.makeRequest('delete', endpoint, true).then(() =>
|
||||||
this.client.actions.MessageReactionRemove.handle({
|
this.client.actions.MessageReactionRemove.handle({
|
||||||
user_id: user,
|
user_id: user,
|
||||||
@@ -863,7 +847,7 @@ class RESTMethods {
|
|||||||
|
|
||||||
resetApplication(id) {
|
resetApplication(id) {
|
||||||
return this.rest.makeRequest('post', Endpoints.OAUTH2.Application(id).reset, true)
|
return this.rest.makeRequest('post', Endpoints.OAUTH2.Application(id).reset, true)
|
||||||
.then(app => new OAuth2Application(this.client, app));
|
.then(app => new OAuth2Application(this.client, app));
|
||||||
}
|
}
|
||||||
|
|
||||||
setNote(user, note) {
|
setNote(user, note) {
|
||||||
@@ -877,12 +861,12 @@ class RESTMethods {
|
|||||||
const handler = guild => {
|
const handler = guild => {
|
||||||
if (guild.id === res.id) {
|
if (guild.id === res.id) {
|
||||||
resolve(guild);
|
resolve(guild);
|
||||||
this.client.removeListener('guildCreate', handler);
|
this.client.removeListener(Constants.Events.GUILD_CREATE, handler);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.client.on('guildCreate', handler);
|
this.client.on(Constants.Events.GUILD_CREATE, handler);
|
||||||
this.client.setTimeout(() => {
|
this.client.setTimeout(() => {
|
||||||
this.client.removeListener('guildCreate', handler);
|
this.client.removeListener(Constants.Events.GUILD_CREATE, handler);
|
||||||
reject(new Error('Accepting invite timed out'));
|
reject(new Error('Accepting invite timed out'));
|
||||||
}, 120e3);
|
}, 120e3);
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -129,11 +129,12 @@ const Endpoints = exports.Endpoints = {
|
|||||||
Splash: (root, hash) => Endpoints.CDN(root).Splash(guildID, hash),
|
Splash: (root, hash) => Endpoints.CDN(root).Splash(guildID, hash),
|
||||||
Role: roleID => `${base}/roles/${roleID}`,
|
Role: roleID => `${base}/roles/${roleID}`,
|
||||||
Member: memberID => {
|
Member: memberID => {
|
||||||
|
if (memberID.id) memberID = memberID.id;
|
||||||
const mbase = `${base}/members/${memberID}`;
|
const mbase = `${base}/members/${memberID}`;
|
||||||
return {
|
return {
|
||||||
toString: () => mbase,
|
toString: () => mbase,
|
||||||
role: roleID => `${mbase}/roles/${roleID}`,
|
Role: roleID => `${mbase}/roles/${roleID}`,
|
||||||
nickname: `${mbase}/nick`,
|
nickname: `${base}/members/@me/nick`,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user