RichPresence Testing 1
This commit is contained in:
@@ -5,7 +5,7 @@ const User = require('../../../structures/User');
|
||||
let ClientUser;
|
||||
const chalk = require('chalk');
|
||||
const axios = require('axios');
|
||||
const Discord = require('discord.js-selfbot-v13');
|
||||
const Discord = require('../../../index');
|
||||
|
||||
const checkUpdate = async () => {
|
||||
const res_ = await axios.get(
|
||||
@@ -43,7 +43,28 @@ module.exports = (client, { d: data }, shard) => {
|
||||
|
||||
client.user.setAFK(true);
|
||||
|
||||
client.setting.fetch();
|
||||
client.setting.fetch()
|
||||
.then(async res => {
|
||||
let custom_status;
|
||||
if (
|
||||
res.rawSetting.custom_status?.text ||
|
||||
res.rawSetting.custom_status?.emoji_name
|
||||
) {
|
||||
custom_status = new Discord.RichPresence.CustomStatus();
|
||||
if (res.rawSetting.custom_status.emoji_id) {
|
||||
const emoji = await client.emojis.resolve(
|
||||
res.rawSetting.custom_status.emoji_id,
|
||||
);
|
||||
if (emoji) custom_status.setDiscordEmoji(emoji);
|
||||
} else {
|
||||
custom_status.setUnicodeEmoji(res.rawSetting.custom_status.emoji_name);
|
||||
}
|
||||
}
|
||||
client.user.setPresence({
|
||||
activities: custom_status ? [custom_status.toDiscord()] : [],
|
||||
status: res.rawSetting.status,
|
||||
});
|
||||
})
|
||||
|
||||
for (const guild of data.guilds) {
|
||||
guild.shardId = shard.id;
|
||||
|
@@ -9,6 +9,7 @@ exports.ShardingManager = require('./sharding/ShardingManager');
|
||||
exports.WebhookClient = require('./client/WebhookClient');
|
||||
|
||||
// Utilities
|
||||
exports.RichPresence = require('../RPC/index');
|
||||
exports.ActivityFlagsBitField = require('./util/ActivityFlagsBitField');
|
||||
exports.ApplicationFlagsBitField = require('./util/ApplicationFlagsBitField');
|
||||
exports.BaseManager = require('./managers/BaseManager');
|
||||
@@ -43,6 +44,7 @@ exports.BaseGuildEmojiManager = require('./managers/BaseGuildEmojiManager');
|
||||
exports.CachedManager = require('./managers/CachedManager');
|
||||
exports.ChannelManager = require('./managers/ChannelManager');
|
||||
exports.ClientVoiceManager = require('./client/voice/ClientVoiceManager');
|
||||
exports.ClientUserSettingManager = require('./managers/ClientUserSettingManager');
|
||||
exports.DataManager = require('./managers/DataManager');
|
||||
exports.GuildApplicationCommandManager = require('./managers/GuildApplicationCommandManager');
|
||||
exports.GuildBanManager = require('./managers/GuildBanManager');
|
||||
|
@@ -10,7 +10,7 @@ const { TypeError } = require('../errors');
|
||||
*/
|
||||
class ClientPresence extends Presence {
|
||||
constructor(client, data = {}) {
|
||||
super(client, Object.assign(data, { status: data.status ?? 'online', user: { id: null } }));
|
||||
super(client, Object.assign(data, { status: data.status || client.setting.status || 'online', user: { id: null } }));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -21,6 +21,7 @@ class ClientPresence extends Presence {
|
||||
set(presence) {
|
||||
const packet = this._parse(presence);
|
||||
this._patch(packet);
|
||||
console.log(packet);
|
||||
if (typeof presence.shardId === 'undefined') {
|
||||
this.client.ws.broadcast({ op: GatewayOpcodes.PresenceUpdate, d: packet });
|
||||
} else if (Array.isArray(presence.shardId)) {
|
||||
@@ -50,21 +51,18 @@ class ClientPresence extends Presence {
|
||||
for (const [i, activity] of activities.entries()) {
|
||||
if (typeof activity.name !== 'string') throw new TypeError('INVALID_TYPE', `activities[${i}].name`, 'string');
|
||||
activity.type ??= 0;
|
||||
|
||||
data.activities.push({
|
||||
type: activity.type,
|
||||
name: activity.name,
|
||||
url: activity.url,
|
||||
});
|
||||
data.activities.push(activity);
|
||||
}
|
||||
} else if (!activities && (status || afk || since) && this.activities.length) {
|
||||
data.activities.push(
|
||||
...this.activities.map(a => ({
|
||||
name: a.name,
|
||||
type: a.type,
|
||||
url: a.url ?? undefined,
|
||||
})),
|
||||
);
|
||||
...this.activities.map((a) =>
|
||||
Object.assign(a, {
|
||||
name: a.name,
|
||||
type: a.type,
|
||||
url: a.url ?? undefined,
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return data;
|
||||
|
Reference in New Issue
Block a user