mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
fix(ClientPresence): produce valid activities for set presences (#5799)
This commit is contained in:
@@ -35,11 +35,7 @@ class ClientPresence extends Presence {
|
||||
since: typeof since === 'number' && !Number.isNaN(since) ? since : null,
|
||||
status: status || this.status,
|
||||
};
|
||||
if (activities === null) {
|
||||
data.activities = null;
|
||||
return data;
|
||||
}
|
||||
if (activities && activities.length) {
|
||||
if (activities?.length) {
|
||||
for (const [i, activity] of activities.entries()) {
|
||||
if (typeof activity.name !== 'string') throw new TypeError('INVALID_TYPE', `activities[${i}].name`, 'string');
|
||||
if (!activity.type) activity.type = 0;
|
||||
@@ -50,8 +46,14 @@ class ClientPresence extends Presence {
|
||||
url: activity.url,
|
||||
});
|
||||
}
|
||||
} else if ((status || afk || since) && this.activities.length) {
|
||||
data.activities.push(...this.activities);
|
||||
} else if (!activities && (status || afk || since) && this.activities.length) {
|
||||
data.activities.push(
|
||||
...this.activities.map(a => ({
|
||||
name: a.name,
|
||||
type: ActivityTypes.indexOf(a.type),
|
||||
url: a.url ?? undefined,
|
||||
})),
|
||||
);
|
||||
}
|
||||
|
||||
return data;
|
||||
|
||||
@@ -161,7 +161,7 @@ class ClientUser extends Structures.get('User') {
|
||||
* client.user.setActivity('discord.js', { type: 'WATCHING' });
|
||||
*/
|
||||
setActivity(name, options = {}) {
|
||||
if (!name) return this.setPresence({ activities: null, shardID: options.shardID });
|
||||
if (!name) return this.setPresence({ activities: [], shardID: options.shardID });
|
||||
|
||||
const activity = Object.assign({}, options, typeof name === 'object' ? name : { name });
|
||||
return this.setPresence({ activities: [activity], shardID: activity.shardID });
|
||||
|
||||
Reference in New Issue
Block a user