【问题标题】:DiscordJS: Create Thread for bot's own messageDiscordJS:为机器人自己的消息创建线程
【发布时间】:2022-01-31 23:16:15
【问题描述】:

我希望机器人为它自己的消息创建一个线程,但我不知道该怎么做。我已经设法让它为用户的消息创建一个线程,但仅此而已。

client.on('messageCreate', async message => {
    if(message.author.bot) return;

    if(message.channel.id == config.suggestChannelID) {
        const suggestEmbed = new MessageEmbed()
            .setColor('#FEE75C')
            .setTitle(`${message.content}`)
            .setAuthor({
                name: `${message.member.displayName}`,
                iconURL: `[REDACTED]`,
                url: `[REDACTED]`
            })
            .setTimestamp()
            .setFooter({
                text: 'SuggestManager',
                iconURL: '[REDACTED]',
            });

        const discussThread = await message.startThread({
            name: 'name',
            autoArchiveDuration: 60,
            type: 'GUILD_PUBLIC_THREAD',
            reason: 'test'
        });

        await message.reply({embeds: [suggestEmbed]}).then(sentEmbed => {
            sentEmbed.react("????")
            sentEmbed.react("????")
        });

        message.delete(message.id);
    };
});

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    添加了 const threadAuthor 以保存原始消息作者并将 sendEmbed 替换为函数(消息)

    client.on('messageCreate', async message => {
        if(message.author.bot) return;
    
        if(message.channel.id == config.suggestChannelID) {
            //added this
            const threadAuthor = message.member.displayName;
    
            const suggestEmbed = new MessageEmbed()
                .setColor('#FEE75C')
                .setTitle(`${message.content}`)
                .setAuthor({
                    name: `${message.member.displayName}`,
                    iconURL: `[REDACTED]`,
                    url: `[REDACTED]`
                })
                .setTimestamp()
                .setFooter({
                    text: 'SuggestManager',
                    iconURL: '[REDACTED]',
                });
            
            //changed this
            await message.reply({embeds: [suggestEmbed]}).then(function (message) {
                message.react("?")
                message.react("?")
                message.startThread({
                    name: `${threadAuthor}-${message.createdTimestamp}`,
                    autoArchiveDuration: 60,
                    type: 'GUILD_PUBLIC_THREAD'
                });
            });
    
            message.delete(message.id);
        };
    });
    

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 1970-01-01
    相关资源
    最近更新 更多