【问题标题】:Cannot read property 'MessageEmbed' of undefined无法读取未定义的属性“MessageEmbed”
【发布时间】:2021-01-18 16:29:15
【问题描述】:

创建了一个禁止成员的不和谐机器人 我更喜欢在禁止某人后使用嵌入的消息进行回复,但我所能做的只是一条普通消息 我不知道为什么即使我的 discord.js 是最新的 (v12) 也无法创建嵌入

我得到错误:

C:\Users\oussa\OneDrive\Bureau\Discord Bot\index.js:45
  const BanEmbed = new Discord.MessageEmbed()
                               ^

TypeError: Cannot read property 'MessageEmbed' of undefined

这是我的代码:

const { Client, Attachment, Message, Discord } = require("discord.js");
const { prefix, token } = require("./config.json");
const bot = new Client();

const ytdl = require("ytdl-core");
const request = require("request");
const cheerio = require("cheerio");

const queue = new Map();

bot.on("ready", () => {
    console.log("Client is online!");
    bot.user.setActivity("osu!");
    bot.user.setUsername("RevolverSnake412");
});

bot.on("message", (msg) => {
    const BanEmbed = new Discord.MessageEmbed()
        .setColor("#5300A6")
        .setTitle("title")
        .setAuthor("author")
        .setDescription("description")
        .setThumbnail("https://image.freepik.com/free-icon/sail-boat_318-1522.jpg")
        .setImage("https://img.ifunny.co/images/01b86faa3cedc450bffac646492c3a8717d30f74f41434761d45c66b9545d8c6_1.jpg")
        .setFooter("footer");

    switch (args[1]) {
        case "ban":
            const user = msg.mentions.users.first();

            if (user) {
                const member = msg.guild.member(user);

                if (member) {
                    member.ban({ ression: "..." }).then(() => {
                        msg.channel.send(BanEmbed);
                    });
                } else {
                    msg.channel.send("...");
                }
            } else {
                msg.channel.send("...");
            }

            break;
    }
});

bot.login(token);

【问题讨论】:

  • 隔离Discord要自己定义

标签: javascript node.js discord.js


【解决方案1】:

错误在于您的解构分配。 Discord 不是 discord.js 上的属性,因此它是未定义的。您很可能想要:

const { Client, Attachment, Message, MessageEmbed } = require("discord.js");

然后像这样实现

const BanEmbed = new MessageEmbed()

旁注,Attachment 也不是 discord.js 的有效属性,因此您很可能希望将其更改为 MessageAttachment

API 文档:https://discord.js.org/#/docs/main/stable/class/MessageAttachment

【讨论】:

    猜你喜欢
    • 2021-08-07
    • 2021-04-18
    • 2020-09-22
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 2020-10-30
    • 2019-10-09
    相关资源
    最近更新 更多