47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
import { ActivityType } from "discord.js";
|
|
|
|
const typeMap = {
|
|
Playing: ActivityType.Playing,
|
|
Watching: ActivityType.Watching,
|
|
Listening: ActivityType.Listening,
|
|
Competing: ActivityType.Competing,
|
|
};
|
|
|
|
export default {
|
|
name: "clientReady",
|
|
|
|
async execute(client) {
|
|
client.logger.info(
|
|
`Logged in as ${client.bot.user.tag} on ${client.bot.guilds.cache.size} guilds`
|
|
);
|
|
|
|
var members = 0;
|
|
client.bot.guilds.cache.forEach((guild) => {
|
|
members += guild.memberCount;
|
|
});
|
|
client.logger.info(
|
|
`Serving ${members} users in ${client.bot.channels.cache.size} channels`
|
|
);
|
|
|
|
client.bot.user.setStatus("online");
|
|
|
|
const messages = client.config.statusMessages;
|
|
const intervalSec = client.config.statusInterval ?? 30;
|
|
let index = 0;
|
|
|
|
const updatePresence = () => {
|
|
const { type, text } = messages[index % messages.length];
|
|
client.bot.user.setPresence({
|
|
activities: [{
|
|
name: text,
|
|
type: typeMap[type] ?? ActivityType.Playing,
|
|
}],
|
|
status: "online",
|
|
});
|
|
index++;
|
|
};
|
|
|
|
setInterval(updatePresence, intervalSec * 1000);
|
|
updatePresence();
|
|
},
|
|
}; |