我尝试更改每个命令已经发送的嵌入。 我得到了一个命令,可以进行嵌入并将其发送到用户定义的通道 (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);
}
}
我做错了什么?
答案 0 :(得分:0)
您可能应该将嵌入分配给变量作为消息对象,然后您可以使用
换句话说,您需要向 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
我希望这有效! (没测试过)