我有一个announce命令,该命令可以帮助Discord上的用户发送自定义嵌入,但是我想创建一个editannounce命令,该命令将帮助用户在该消息ID的帮助下编辑他们发送的嵌入。我的公告代码附在下面,请指导我如何进行编辑公告命令。
const Discord = require('discord.js');
module.exports = {
name: "announce",
category: "Moderation",
aliases: ["announcement", "broadcast"],
description: "Announce a embedded message",
async run(client, message, args) {
if(!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send('You can\'t use that!')
if(!message.guild.me.hasPermission("MANAGE_MESSAGES")) return message.channel.send('I don\'t have the right permissions.')
message.delete();
let split = '|';
if(!args[0]) {
const invalid = new Discord.MessageEmbed()
.setAuthor("Announce", client.user.displayAvatarURL({ format: "png", dynamic: true, size: 2048 }))
.setColor("#eb0936")
.setTitle("Invalid Argument")
.setDescription("**USAGE**\n`announce <embedTitle>|<embedMessage>|<embedColor>|<embedThubmnail>|<embedImage>`\n\n**FOR MORE HELP**\n`helpannounce`")
return message.channel.send({embed: invalid})
}
args = args.join(' ').split(split)
for (var i = 0; i < args.length; i++) args[i].trim();
if (args[5]) args[5] = parseInt(`0x${args[5]}`);
let options = {
title: args[0] ,
message: args[1] || 'Undefined',
embedColor: args[2] || 0xffffff,
thumbnail: args[3],
image: args[4]
}
const embed = new Discord.MessageEmbed()
.setColor(options.embedColor)
.setTitle(options.title)
.setThumbnail(options.thumbnail)
.setImage(options.image)
if (options.message) embed.setDescription(options.message);
message.channel.send(embed)
}
}
答案 0 :(得分:0)
我创建了一个editAnnounce
命令:
const Discord = require('discord.js');
module.exports = {
name: 'editAnnounce',
category: 'Moderation',
aliases: ['editAnnouncement', 'editBroadcast'],
description: 'Edit an announcement',
async run(client, message, args) {
if (!args[0] || !(args[1] || args[2] || args[3] || args[4] || args[5])) {
const invalid = new Discord.MessageEmbed()
.setAuthor('Announce', client.user.displayAvatarURL({ format: 'png', dynamic: true, size: 2048 }))
.setColor('#eb0936')
.setTitle('Invalid Arguments')
.setDescription('**USAGE**\n`announce <messageID> [embedTitle]|[embedMessage]|[embedColor]|[embedThumbnail]|[embedImage]`\n*leaving a field blank will result in that field remaining unmodified.*');
return message.reply(invalid);
}
message.delete();
const msg = await message.channel.messages.fetch(args[0]);
if (!msg) return message.reply('the specified message could not be found.');
if (!msg.embeds[0]) return message.reply('the specified message does not contain an embed.');
const oldFields = msg.embeds[0];
const fields = args.slice(1).join(' ').split('|').map(arg => arg.trim());
let embed = new Discord.MessageEmbed();
if (fields[0] || oldFields.title) embed.setTitle(fields[0] || oldFields.title);
if (fields[1] || oldFields.description) embed.setDescription(fields[1] || oldFields.description);
if (fields[2] || oldFields.color) embed.setColor(fields[2] || oldFields.color);
if (fields[3] || oldFields.thumbnail && oldFields.thumbnail.url) embed.setThumbnail(fields[3] || oldFields.thumbnail.url);
if (fields[4] || oldFields.image && oldFields.image.url) embed.setImage(fields[4] || oldFields.image.url);
msg.edit(embed);
}
};