【问题标题】:Why am I receiving TypeError: cannot read property 'execute' of undefined为什么我收到 TypeError:无法读取未定义的属性“执行”
【发布时间】:2020-12-05 14:27:18
【问题描述】:

嘿,所以我一直在尝试制作一个 Discord 机器人,本着圣诞节的精神,它会有一个命令“.suggestgift”,它将启动一个提示,为这个人找出一个很好的匹配。我不断收到错误消息,“TypeError: Cannot read property 'execute' of undefined...我不知道为什么,其他命令的编写方式似乎都一样。这是我的代码...

const Discord = require('discord.js');
const WOKCommands = require ('wokcommands');
const client = new Discord.Client();

const prefix = '.';

const fs = require('fs');

client.commands = new Discord.Collection();
client.commands.giftsuggest = new Discord.Collection()


const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'));
for(const file of commandFiles){
    const command = require(`./commands/${file}`);

    client.commands.set(command.name, command);
}


client.once('ready', () => {
    console.log('Santa bot is online');
});

client.on('message', message =>{
    if(!message.content.startsWith(prefix) || message.author.bot) return;

    const args = message.content.slice(prefix.length).split(/ +/);
    const command = args.shift().toLowerCase();

    if(command === 'clear'){
        client.commands.get('clear').execute(message, args, Discord);
    } else if(command === 'kick'){
        client.commands.get('kick').execute(message, args, Discord);
    } else if(command === 'ban'){
        client.commands.get('ban').execute(message, args, Discord);
    }else if(command === 'ping'){
        client.commands.get('ping').execute(message, args, Discord);
    }else if(command == 'giftprompt'){
        client.commands.giftsuggest.get('giftprompt').execute(message, args);
    }

    
});



client.login('my token would be here')

文件代码:

module.exports = {
    name: 'suggestprompt',
    description: 'testing',
    execute(message, args){
        message.channel.send('This is testing to see that the command works')
    }
}

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    module.exports 返回一个对象,这是一个键值对,你缺少执行函数的关键部分

    尝试将module.exports 更改为以下

    module.exports = {
        name: 'suggestprompt',
        description: 'testing',
        execute: function(message, args){
            message.channel.send('This is testing to see that the command works')
        }
    }
    

    欢迎来到 StackOverflow :)

    【讨论】:

      猜你喜欢
      • 2020-06-12
      • 2021-10-28
      • 2021-06-27
      • 2021-06-06
      • 2021-10-02
      • 2019-01-15
      • 1970-01-01
      • 2021-07-03
      相关资源
      最近更新 更多