😰Reactions

They're great to add a bit of personality to messages and are easy to deal with!

Sometimes you want to add a bit of a touch of personality, or even interactiveness with the user when responding to a message. Reactions are there for you! You can add any reaction you want to a message, for example, using interaction commands, you can do it this way:

client.on("interactionCreate", async interaction => {
    if (!(interaction instanceof CommandInteraction)) return;
    if (interaction.data.name === "hi") {
        const message = await interaction.createMessage({ content: "Hi!" });
        await message.createReaction(90001206) // wave emoji;
    }
});

As easy as it sounds like, right?

But! If you have a message and want to remove a reaction from it, you can do it this way

// We assume that you have a declared "message" constant in this scope
await message.deleteReaction(90001206) // removes the wave emoji;

Though, this only deletes the wave emoji that has been added by your app.

If you want to target a specific user and remove their reaction, you'll have to pass their user ID in method arguments.

// We assume that you have a declared "message" constant in this scope
await message.deleteReaction(90001206, "their user id") // removes the wave emoji;

Like this :)

Overall, it is pretty easy to put and remove any reaction from a message! You can still do it manually by using REST, if you miss some information: not having a message instance.

By either, getting the message through REST with:

client.rest.channels.getMessage(channelID, messageID);

and then performing your action on it, or, just performing it directly through REST:

client.rest.channels.createReaction(
channelID, 
channelType, 
targetID,
reaction
);
client.rest.channels.deleteReaction(
channelID, 
channelType, 
targetID,
reaction, 
targetUserID? (optional)
);

Last updated

Was this helpful?