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!
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
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))
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0