fix(post): allow editing messages that aren't saved

This commit is contained in:
Dragory 2021-10-17 19:16:47 +03:00
parent 05bd84b1f9
commit 19b7b4a5ee
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
2 changed files with 17 additions and 22 deletions

View file

@ -14,23 +14,21 @@ export const EditCmd = postCmd({
},
async run({ message: msg, args, pluginData }) {
const savedMessage = await pluginData.state.savedMessages.find(args.message.messageId);
if (!savedMessage) {
const targetMessage = await args.message.channel.messages.fetch(args.message.messageId);
console.log({ targetMessage });
if (!targetMessage) {
sendErrorMessage(pluginData, msg.channel, "Unknown message");
return;
}
if (savedMessage.user_id !== pluginData.client.user!.id) {
if (targetMessage.author.id !== pluginData.client.user!.id) {
sendErrorMessage(pluginData, msg.channel, "Message wasn't posted by me");
return;
}
(pluginData.guild.channels.cache.get(savedMessage.channel_id as Snowflake) as TextChannel).messages.edit(
savedMessage.id as Snowflake,
{
content: formatContent(args.content),
},
);
targetMessage.channel.messages.edit(targetMessage.id, {
content: formatContent(args.content),
});
sendSuccessMessage(pluginData, msg.channel, "Message edited");
},
});

View file

@ -23,12 +23,6 @@ export const EditEmbedCmd = postCmd({
},
async run({ message: msg, args, pluginData }) {
const savedMessage = await pluginData.state.savedMessages.find(args.message.messageId);
if (!savedMessage) {
sendErrorMessage(pluginData, msg.channel, "Unknown message");
return;
}
const content = args.content || args.maincontent;
let color: number | null = null;
@ -42,17 +36,20 @@ export const EditEmbedCmd = postCmd({
}
}
const embed: MessageEmbed = savedMessage.data.embeds![0] as MessageEmbed;
const targetMessage = await args.message.channel.messages.fetch(args.message.messageId);
if (!targetMessage) {
sendErrorMessage(pluginData, msg.channel, "Unknown message");
return;
}
const embed = (targetMessage.embeds![0] ?? { fields: [] }) as MessageEmbed;
if (args.title) embed.title = args.title;
if (content) embed.description = formatContent(content);
if (color) embed.color = color;
(pluginData.guild.channels.cache.get(savedMessage.channel_id as Snowflake) as TextChannel).messages.edit(
savedMessage.id as Snowflake,
{
embeds: [embed],
},
);
args.message.channel.messages.edit(targetMessage.id, {
embeds: [embed],
});
await sendSuccessMessage(pluginData, msg.channel, "Embed edited");
if (args.content) {