Setting up SetInterval to update server stats in discord.js

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

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x