discord.js UnhandledPromiseRejectionWarning:TypeError:无法读取未定义错误的属性“通道”

时间:2021-08-01 14:07:46

标签: javascript discord.js

错误:

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'channel' of undefined error

代码:

module.exports = {
    name: "ticket",
    aliases: [],
    permissions: ["SEND_MESSAGES"],
    description: "open a ticket!",
    async execute(message, args, cmd, client, discord) {
        const channel = await message.guild.channel.create(`ticket: ${message.author.tag}`);

        channel.setParent('871385981465530409');

        channel.updateOverwrite(message.guild.id, {
            SEND_MESSAGE: false,
            VIEW_CHANNEL: false,
        });
        channel.updateOverwrite(message.author, {
            SEND_MESSAGE: true,
            VIEW_CHANNEL: true,
        });

        const reactionMessage = await channel.send("Thank you for contacting support!");

        try {
            await reactionMessage.react("?");
            await reactionMessage.react("⛔");
        } catch (err) {
            channel.send("Error sending emojis!");
            throw err;
        }

        const collector = reactionMessage.createReactionCollector(
            (reaction, user) => message.guild.members.cache.find((member) => member.id === user.id).hasPermission("ADMINISTRATOR"),
            { dispose: true }
        );

        collector.on("collect", (reaction, user) => {
            switch (reaction.emoji.name) {
                case "?":
                    channel.updateOverwrite(message.author, { SEND_MESSAGES: false });
                    break;
                case "⛔":
                    channel.send("Deleting this channel in 5 seconds!");
                    setTimeout(() => channel.delete(), 5000);
                    break;
            }
        });

        message.channel
            .send(`We will be right with you! ${channel}`)
            .then((msg) => {
                setTimeout(() => msg.delete(), 7000);
                setTimeout(() => message.delete(), 3000);
            })
            .catch((err) => {
                throw err;
            });
    },
};

1 个答案:

答案 0 :(得分:0)

在你的第一行,我可以看到两件事:

  1. 您的执行很可能不正确。确保参数的顺序正确。在您的 index.js、Message.js 或您执行此操作的任何文件中,参数为 message, args, cmd, client, discord
  2. 它不是Guild.channel,它实际上是带有“s”的Guild.channels
const channel = await message.guild.channels.create(`ticket: ${message.author.tag}`)