mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 11:33:30 +01:00
Fix ban/unban with IDs
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -365,28 +365,40 @@ class RESTMethods {
|
|||||||
|
|
||||||
banGuildMember(guild, member, deleteDays) {
|
banGuildMember(guild, member, deleteDays) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const user = this.rest.client.resolver.resolveUser(member);
|
const id = this.rest.client.resolver.resolveUserID(member);
|
||||||
if (!user) throw new Error('Couldn\'t resolve the user to ban.');
|
if (!id) throw new Error('Couldn\'t resolve the user ID to ban.');
|
||||||
this.rest.makeRequest('put', `${Constants.Endpoints.guildBans(guild.id)}/${user.id}`, true, {
|
|
||||||
|
this.rest.makeRequest('put', `${Constants.Endpoints.guildBans(guild.id)}/${id}`, true, {
|
||||||
'delete-message-days': deleteDays,
|
'delete-message-days': deleteDays,
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
resolve(member instanceof GuildMember ? member : user);
|
if (member instanceof GuildMember) {
|
||||||
|
resolve(member);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const user = this.rest.client.resolver.resolveUser(id);
|
||||||
|
if (user) {
|
||||||
|
member = this.rest.client.resolver.resolveGuildMember(guild, user);
|
||||||
|
resolve(member || user);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
resolve(id);
|
||||||
}).catch(reject);
|
}).catch(reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
unbanGuildMember(guild, member) {
|
unbanGuildMember(guild, member) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
member = this.rest.client.resolver.resolveUser(member);
|
const id = this.rest.client.resolver.resolveUserID(member);
|
||||||
if (!member) throw new Error('Couldn\'t resolve the user to unban.');
|
if (!id) throw new Error('Couldn\'t resolve the user ID to ban.');
|
||||||
|
|
||||||
const listener = (eGuild, eUser) => {
|
const listener = (eGuild, eUser) => {
|
||||||
if (guild.id === guild.id && member.id === eUser.id) {
|
if (eGuild.id === guild.id && eUser.id === id) {
|
||||||
this.rest.client.removeListener(Constants.Events.GUILD_BAN_REMOVE, listener);
|
this.rest.client.removeListener(Constants.Events.GUILD_BAN_REMOVE, listener);
|
||||||
resolve(eUser);
|
resolve(eUser);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
this.rest.client.on(Constants.Events.GUILD_BAN_REMOVE, listener);
|
this.rest.client.on(Constants.Events.GUILD_BAN_REMOVE, listener);
|
||||||
this.rest.makeRequest('del', `${Constants.Endpoints.guildBans(guild.id)}/${member.id}`, true).catch(reject);
|
this.rest.makeRequest('del', `${Constants.Endpoints.guildBans(guild.id)}/${id}`, true).catch(reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -381,7 +381,9 @@ class Guild {
|
|||||||
* @param {UserResolvable} user The user to ban
|
* @param {UserResolvable} user The user to ban
|
||||||
* @param {number} [deleteDays=0] The amount of days worth of messages from this user that should
|
* @param {number} [deleteDays=0] The amount of days worth of messages from this user that should
|
||||||
* also be deleted. Between `0` and `7`.
|
* also be deleted. Between `0` and `7`.
|
||||||
* @returns {Promise<GuildMember|User>}
|
* @returns {Promise<GuildMember|User|string>} Result object will be resolved as specifically as possible.
|
||||||
|
* If the GuildMember cannot be resolved, the User will instead be attempted to be resolved. If that also cannot
|
||||||
|
* be resolved, the user ID will be the result.
|
||||||
* @example
|
* @example
|
||||||
* // ban a user
|
* // ban a user
|
||||||
* guild.ban('123123123123');
|
* guild.ban('123123123123');
|
||||||
|
|||||||
Reference in New Issue
Block a user