【问题标题】:Discord Bot About CommandDiscord Bot 关于命令
【发布时间】:2020-10-25 00:24:35
【问题描述】:

我目前正在编写一个不和谐的机器人,我想要一个关于机器人的命令。这是我编码的,但它不起作用。我当前的所有命令都位于命令文件夹中与 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);
            }
        }

这就是我做 时出现的情况

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)

【问题讨论】:

    标签: javascript node.js bots discord discord.js


    【解决方案1】:

    您需要通过您的主文件中的execute() 函数传递client,如果您已经将它传递到那里,那么只需将client 添加到您的命令文件中的execute() 函数中,如下所示:

    module.exports = {
        name: 'about',
        description: 'talks about the bot',
        execute(message, client) {...}
    

    【讨论】:

    • 这没有任何区别。
    【解决方案2】:

    execute() 不知道客户端是什么,因为它没有被传入或以其他方式定义。通常当我遇到这个问题时,只需添加“消息”即可。在“客户端”之前,那么您使用的是message.client.guilds.cache.size,这应该对您有用,因为消息 已传入。

    或者,您可以从 index.js 文件中将 client 作为参数传递,然后基本上做同样的事情,尽管这可能会影响您的其他命令,因为它们可能不使用“client”参数。

    【讨论】:

      猜你喜欢
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 2018-10-21
      • 2021-03-01
      • 1970-01-01
      • 2021-04-11
      • 2021-01-21
      相关资源
      最近更新 更多