Discord Bot 关于命令
2020-07-04
343
我目前正在编写一个 discord 机器人,我想为该机器人编写一个 about 命令。这是我编写的,但它不起作用。我当前的所有命令都位于命令文件夹中与 index.js 文件不同的文件中。知道为什么这个命令不起作用吗?
const Discord = require('discord.js');
module.exports = {
name: 'about',
description: 'talks about the bot',
execute(message) {
const aboutEmbed = new Discord.MessageEmbed()
.setColor('#0099ff')
.setAuthor('Alien Bot: About')
.setDescription(`Alien Bot, Created By MountainTiger144, Is A Fun Little Bot Used On ${client.guilds.cache.size}Servers With Commands Like <avatar And More! Check Them Out By Doing <help hub.`)
.setThumbnail('https://fiverr-res.cloudinary.com/images/q_auto,f_auto/gigs/125937562/original/4efdc79b0e19dabcb3f6e7bef8318f2794250933/create-a-custom-discord-bot.png', 'https://fiverr-res.cloudinary.com/images/q_auto,f_auto/gigs/125937562/original/4efdc79b0e19dabcb3f6e7bef8318f2794250933/create-a-custom-discord-bot.png')
.addFields(
{ name: 'Guilds', value: `${client.guilds.cache.size}`, inline: true },
{ name: 'Version', value: `${bot_info.version}`, inline: true },
{ name: 'Rating', value: '7/10', inline: true },
{ name: 'Support Server', value: 'If you need help or find a bug, please click the link [here](https://discord.gg/n293gkD) to get to our support server!', inline: true })
channel.send(exampleEmbed);
}
}
这是我执行 <about:
ReferenceError: client is not defined
at Object.execute (C:\Users\kiera\Desktop\Discord Bot\commands\about.js:10:104)
at Client.<anonymous> (C:\Users\kiera\Desktop\Discord Bot\index.js:79:11)
at Client.emit (events.js:315:20)
at MessageCreateAction.handle (C:\Users\kiera\Desktop\Discord Bot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:\Users\kiera\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:\Users\kiera\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (C:\Users\kiera\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
at WebSocketShard.onMessage (C:\Users\kiera\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (C:\Users\kiera\Desktop\Discord Bot\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
时出现的内容
2个回答
您需要通过主文件中的
execute()
函数传递
client
,如果您已经将其传递到那里,则只需将
client
添加到命令文件中的
execute()
函数中,如下所示:
module.exports = {
name: 'about',
description: 'talks about the bot',
execute(message, client) {...}
Syntle
2020-07-04
execute()
不知道客户端是什么,因为它尚未传入或以其他方式定义。通常,当我遇到此问题时,只需在“客户端”之前添加“消息。”,然后使用
message.client.guilds.cache.size
,这应该对您有用,因为消息
已
传入。
或者,您可以从 index.js 文件中传入客户端作为参数,然后基本上执行相同的操作,但这可能会影响您的其他命令,因为它们可能不使用“客户端”参数。
ShadowGamer3
2020-07-26