I have been trying to code a bot that copies 1 embed from 1 channel to another channel.
But what I want it to do before posting it to the other channel, I want it to remove 1 element from the embed object.
How I have it currently:
client.on("message", (message) => { if (message.channel.id == channel1) { const embed = message.embeds[0]; var params = { embeds: , }; fetch("WEBHOOK URL", { //send channel 2 method: "POST", headers: { "Content-type": "application/json", }, body: JSON.stringify(params), }).then((res) => {}); } });
As you can see i straight use message.embeds[0].
So i don’t even know if it possible to remove 1 element from it like the footer text for example.
If anyone knows if it can be done or not, please say so.
Thank you for reading.
EDIT:
Would it be something like:
const embed = message.embeds[0]; embed.footer.text = []; // or embed.footer[0].text
Advertisement
Answer
You can use the delete
operator to remove a property from an object.
const embed = message.embeds[0]; if (!embed) return; delete embed.footer; message.channel.send({ content: "Footer removed!", embeds: });
Note that you can’t remove only the text
property and keep the icon. The footer won’t show without a text
property.
These work too:
// Remove only text from footer (footer won't be visible including icon) embed.footer.text = ""; // Or embed.footer = {}; // Or embed.footer = null; // Or ...