【问题标题】:Encountering TypeError: Cannot read property '0' of undefined in Discord.JS遇到 TypeError:无法读取 Discord.JS 中未定义的属性“0”
【发布时间】:2021-07-14 01:07:39
【问题描述】:

我正在尝试执行“巨型命令”,但是当我使用该命令时遇到以下错误:

TypeError: Cannot read property '0' of undefined

这是我的代码:

const Discord = require("discord.js");
const client = new Discord.Client();
const { Client, MessageEmbed } = require("discord.js");

module.exports = {
    name: "jumbo",
    description: "",
    execute(client, message, args) {
        if (!args[0]) return message.channel.send("Debes escribir un emoji.");

        let emoji = message.guild.emojis.cache.find((x) => x.name === args[0].split(":")[1]);

        if (!emoji) return message.channel.send("Ese no es un emoji válido.");

        const embed = new Discord.MessageEmbed().setTitle("Emoji:").setImage(emoji.url).setColor("RANDOM");

        message.channel.send(embed);
    },
};

【问题讨论】:

  • 能否提供执行命令的代码?

标签: javascript node.js discord discord.js


【解决方案1】:

根据Command handling page of the Discord.js Guide,格式良好的导出模块的execute 方法只有两个参数:messageargsclient 似乎不像您认为的那样受支持。这与 args 未定义一致:不会设置此位置的参数,因此将是 undefined,并会导致与您当前遇到的错误相似/相同的错误。

上述页面特别提到了如何获取客户端实例以在代码中使用:

提示

如果您需要从一个命令文件中访问您的客户端实例,您可以通过message.client 访问它。 [...]

【讨论】:

  • 除此之外,如果您有一个权威来源,您认为 client 应该是 execute() 的三个参数中的第一个参数,那么将它链接到原始问题的正文供大家理解。
最近更新 更多