【问题标题】:Discord JS | Edit Embed with command不和谐 JS |使用命令编辑嵌入
【发布时间】:2021-05-08 04:49:40
【问题描述】:

我尝试更改已发送的每个命令的嵌入。 我得到了一个命令,它可以进行嵌入并将其发送到用户定义的频道(selchannel)中。 但是当我尝试编辑嵌入时,我得到:

DiscordAPIError:无法编辑由其他用户创作的消息

但是消息是由机器人发送的,为什么会这样说?

我如何发送原始嵌入:

// constructing Embed...
let messageEmbed = await client.channels.cache.get(selchannel).send({embed: EmbedMessage})
module.exports = {
        messageEmbed,
        EmbedMessage
    }

我如何尝试编辑它:

module.exports = {
name: 'edit-embed',
description: 'Edits send Embed',
async execute(message, args) {
    const Discord = require('discord.js');
    const { messageEmbed } = require('./embed');
    const { EmbedMessage } = require('./embed');
    const { prefix } = require('/home/ubuntu/discord-bot/main.js');
    const sender = `${message.author.tag}`;
    const InputSlice = message.content.slice(prefix.length).trim().split(' ');
    const sEmbed = args.shift().toLowerCase();
    const newEmbed = new Discord.MessageEmbed()

    .setColor('#8022FF')
    .setTitle('.........:')
    .addFields(
        {name: '\u200B', value: '\u200B'},
        {name: '........: ', value: ' ............' }, 
        {name: '\u200B', value: '\u200B'}
    )
    .setImage('...........')
    .setFooter(`............  -(${sender})-`);  

    message.edit(sEmbed).then(newEmbed);
}

}

我做错了什么?

【问题讨论】:

  • message.edit 尝试使用来自用户而非机器人的命令编辑消息。不应该是messageEmbed.edit(newEmbed)吗?
  • 现在它说“TypeError: Cannot read property 'edit' of undefined”...

标签: javascript node.js discord discord.js


【解决方案1】:

您可能应该将嵌入作为消息对象分配给变量,然后您可以使用 .edit(your other variable)

换句话说,您需要在 execute() 函数中添加另一个变量(将消息作为消息对象)

如果你愿意,这将是你如何做到的一个例子(我认为)

// constructing Embed...
let messageEmbed = await client.channels.cache.get(selchannel).send({embed: EmbedMessage})
module.exports = {
        messageEmbed,
        EmbedMessage
    }

module.exports = {
name: 'edit-embed',
description: 'Edits send Embed',
async execute(message, args, botEmbed) { //add botEmbed (which is a message object)
    const Discord = require('discord.js');
    const { messageEmbed } = require('./embed');
    const { EmbedMessage } = require('./embed');
    const { prefix } = require('/home/ubuntu/discord-bot/main.js');
    const sender = `${message.author.tag}`;
    const InputSlice = message.content.slice(prefix.length).trim().split(' ');
    const sEmbed = args.shift().toLowerCase();
    const newEmbed = new Discord.MessageEmbed()

    .setColor('#8022FF')
    .setTitle('.........:')
    .addFields(
        {name: '\u200B', value: '\u200B'},
        {name: '........: ', value: ' ............' }, 
        {name: '\u200B', value: '\u200B'}
    )
    .setImage('...........')
    .setFooter(`............  -(${sender})-`);  

    botEmbed.edit(sEmbed).then(newEmbed); //change message to botEmbed
}

然后当您调用编辑函数时,只需传入另一个属性,即您发送的嵌入的message object

我希望这行得通! (没测试过)

【讨论】:

    猜你喜欢
    • 2021-02-01
    • 2021-06-30
    • 2021-07-17
    • 2018-06-08
    • 2021-04-19
    • 2020-11-22
    • 1970-01-01
    • 2021-01-25
    • 2020-11-12
    相关资源
    最近更新 更多