Skip to content Skip to sidebar Skip to footer

Cannot Read Property 'send' Of Underfined

const mudaeon = require('./mudaetime.json'); const cron = require('cron'); const Discord = require('discord.js'); const client = new Discord.Client(); module.exports = { name: 'm

Solution 1:

The problem is that you are creating a new Discord.Client() instance, which does not share the same channels, members, roles, etc. as the original. Instead of creating a new Discord.Client(), you should pass the original one as an argument to your execute() function.

For example, you could change async execute(message, args){ to async execute(message, args, client){. Then, in your command handler, change command.execute(message, args) to command.execute(message, args, client)

However, there is an even easier way. client is actually a valid property of the message object, referring to:

The client that instantiated the message

(Message#client docs)

So, instead of writing:

const channel = client.channels.cache.get('id');

You could write:

const channel = message.client.channels.cache.get('id')

And it will work perfectly!

Solution 2:

You should not use the cache to access the channels but the (async) .fetch method:

module.exports = {
    name: 'mudaetime',
    description: '...',
    asyncexecute(message, args){
        if(mudaeon){
            const channel = await client.channels.fetch('222109930545610754')
            let scheduledMessage = new cron.CronJob("* * * * *", () => {
                scheduledMessage.start()},
                message.react('✅'),
                channel.send("check $tu ! <@&id"))
        } else(!mudaeon);{
            cancel();
        }
    }
}; 

This should work better, a lot of methods are async in discord.js so becareful to properly await the values when calling such methods :)

https://discord.js.org/#/docs/main/stable/class/ChannelManager?scrollTo=fetch

Post a Comment for "Cannot Read Property 'send' Of Underfined"