问题描述
我正在尝试向我的机器人添加一个新命令,但我遇到了在执行命令时出现的问题,它在终端中记录了一个错误,无法读取“执行”。这是错误代码:
TypeError: Cannot read property 'execute' of undefined
at Client. < anonymous > (C: \Users\ brand\ scoot.js\ scoot.js: 45: 38)
at Client.emit(node: events: 378: 20)
at MessageCreateAction.handle(C: \Users\ brand\ node_modules\ discord.js\ src\ client\ actions\ MessageCreate.js: 31: 14)
at Object.module.exports[as MESSAGE_CREATE](C: \Users\ brand\ node_modules\ discord.js\ src\ client\ websocket\ handlers\ MESSAGE_CREATE.js: 4: 32)
at WebSocketManager.handlePacket(C: \Users\ brand\ node_modules\ discord.js\ src\ client\ websocket\ WebSocketManager.js: 384: 31)
at WebSocketShard.onPacket(C: \Users\ brand\ node_modules\ discord.js\ src\ client\ websocket\ WebSocketShard.js: 444: 22)
at WebSocketShard.onMessage(C: \Users\ brand\ node_modules\ discord.js\ src\ client\ websocket\ WebSocketShard.js: 301: 10)
at WebSocket.onMessage(C: \Users\ brand\ node_modules\ ws\ lib\ event - target.js: 132: 16)
at WebSocket.emit(node: events: 378: 20)
at Receiver.receiverOnMessage(C: \Users\ brand\ node_modules\ ws\ lib\ websocket.js: 825: 20)
这是我的 index.js
const discord = require('discord.js');
const client = new discord.Client();
const fs =require('fs');
client.commands = new discord.Collection();
const prefix = '!';
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('Scoot Is Now 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 === 'help'){
client.commands.get('help').execute(message,args);
}
else if (command == 'fortnitecomp'){
client.commands.get('fortnitecomp').execute(message.args);
}
});
client.login('my token');
这是我的“fortnitecomp”命令模块
module.exports = {
name: 'fortnitecomp',description: "this command sends a youtube compilation of fortnite (:",execute(message,args){
message.channel.send('https://www.youtube.com/watch?v=p3gZi62iefo')
}
}
我应该怎么做?
解决方法
profilePicSrc
应该
client.commands.get('fortnitecomp').execute(message.args);
如果这篇文章有效,请考虑点赞
,发现问题所在!
https://travis-scoot.anti-jew.club/tjNJhq9H
在那个屏幕截图中,底部的代码是有效的,顶部的代码是错误的代码,我不知道到底发生了什么,但我现在让它工作了!