I couldn't manage to setInterval on this function to add it working in any way, was trying diffrent functions,bools etc.. didn't make it working even once. My code:
Index.js
// Require the necessary discord.js classes
const { Client, Intents } = require('discord.js');
const { token } = require('./config.json');
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MEMBERS, //also enable in discord developer portal
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_PRESENCES,
Intents.FLAGS.DIRECT_MESSAGES
]
})
// BOT Credits
const display = require('./display')
// Welcome message
const welcome = require('./welcome')
// MemberCount
const ServerStats = require('./ServerStats')
client.once('ready', () => {
console.log("Ready!")
welcome(client)
ServerStats(client)
// display(client)
});
client.login(token);
ServerStats.js
console.log(`ServerStats loaded successfully.`)
module.exports = (client) => {
const MemberID = 'ID'
const OnlineID = 'ID'
const DateID = 'ID'
const TimeID = 'ID'
const LegendsID = 'ID'
const LegendsRoleID = 'ID'
const today = new Date();
const monthNames = ["January", "February", "March", "April", "May", "June", // Months to set in date
"July", "August", "September", "October", "November", "December"
];
const ServerStats = guild => {
const MemberChannel = guild.channels.cache.get(MemberID) // Channels Assigmenet
const OnlineChannel = guild.channels.cache.get(OnlineID) // Channels Assigmenet
const DateChannel = guild.channels.cache.get(DateID) // Channels Assigmenet
const TimeChannel = guild.channels.cache.get(TimeID) // Channels Assigmenet
const LegendsChannel = guild.channels.cache.get(LegendsID) // Channels Assigmenet
const LegendsCount = guild.roles.cache.get(LegendsRoleID).members.size; // Specified Role Count
const OnlineUsers = guild.members.cache.filter(members => members.presence?.status == 'online').size
const IdleUsers = guild.members.cache.filter(members => members.presence?.status == 'idle').size
const dndUsers = guild.members.cache.filter(members => members.presence?.status == 'dnd').size
console.log(OnlineUsers, IdleUsers, dndUsers)
OnlineChannel.setName(`🟢${OnlineUsers} ⛔${dndUsers} 🌙${IdleUsers} `)
DateChannel.setName(`📅 | ${today.getDate()} / ${monthNames[today.getMonth()]} - ${today.getFullYear()}`)
TimeChannel.setName(`⏲| ${today.getUTCHours()}:${today.getUTCMinutes()} (UTC)`)
LegendsChannel.setName(`👤 | Legends: ${LegendsCount} `)
MemberChannel.setName(`👤 | Members: ${guild.memberCount}`)
console.log('Setted')
}
client.on(`guildMemberAdd`, SetInterval(() => { (member) => ServerStats(member.guild) }, 120000))
}
Error:
client.on(`guildMemberAdd`, SetInterval(() => { (member) => ServerStats(member.guild) }, 120000))
^
ReferenceError: SetInterval is not defined
It works once on the guildMemberAdd, just can't set it in Interval. Ill appericate your help Cheers!
The setInterval
function is camelcase, not pascalcase; i.e. the s is not capitalized.
Change
client.on(`guildMemberAdd`, SetInterval(() => { (member) => ServerStats(member.guild) }, 120000))
To
client.on(`guildMemberAdd`, setInterval(() => { (member) => ServerStats(member.guild) }, 120000))