我正在为Discord开发一个机器人程序,它一直在向我显示一个错误,我曾尝试以某些方式解决该错误,但没有成功。当我转到Discord频道并键入-命令时,会发生错误。我哪里错了?我一直在关注CodeLyon关于开发Discord机器人的教程,该教程本身并不老,2021年1月,但我相信Node。JS做了一些更改,比如Discord,现在代码不起作用了。
这是我的代码:main.js
const { Client, Intents, DiscordAPIError, Collection } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
const prefix = '-';
const fs = require('fs');
client.commands = new 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('Pistolito 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 === 'command'){
client.commands.get('command').execute(message, args, Discord);
}
});
client.login('Token Here');
这是我的命令文件-command.js
module.exports = {
name: 'command',
description: "Embeds!",
execute(message, args, Discord){
const newEmbed = new Discord.MessageEmbed()
.setColor('#304281')
.setTitle('Rules')
.setURL('https://youtube.com/tradutorinsano')
.setDescription('Este é um método para as regras do servidor')
.setFields(
{name: 'Regra 1', value: 'Seja legal'},
{name: 'Regra 2', value: 'Peça uma música'},
{name: 'Regra 3', value: 'Siga no Youtube'}
)
.setImage('https://static.nationalgeographicbrasil.com/files/styles/image_3200/public/photo-ark-european-wildcat2501892.jpg?w=1600&h=900')
.setFooter('Tenha certeza que você leu as regras do servidor');
message.channel.send('newEmbed');
}
}
此处错误:
C:UsersMauricioDesktopnovomain.js:29
client.commands.get('command').execute(message, args, Discord);
^
ReferenceError: Discord is not defined
at Client.<anonymous> (C:UsersMauricioDesktopnovomain.js:29:63)
at Client.emit (node:events:390:28)
at MessageCreateAction.handle (C:UsersMauricioDesktopnovonode_modulesdiscord.jssrcclientactionsMessageCreate.js:34:18)
at Object.module.exports [as MESSAGE_CREATE] (C:UsersMauricioDesktopnovonode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:UsersMauricioDesktopnovonode_modulesdiscord.jssrcclientwebsocketWebSocketManager.js:351:31)
at WebSocketShard.onPacket (C:UsersMauricioDesktopnovonode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:UsersMauricioDesktopnovonode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:301:10)
at WebSocket.onMessage (C:UsersMauricioDesktopnovonode_moduleswslibevent-target.js:199:18)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (C:UsersMauricioDesktopnovonode_moduleswslibwebsocket.js:1098:20)
尝试定义不和谐
const Discord = require("discord.js")
或者在导出时调用它。执行
module.exports = {
name: 'command',
description: "Embeds!",
execute(message, args, Discord)
看看这个