Markoudstaal / node-red-contrib-discord-advanced

Recieve, send, edit and delete Discord messages in node-red.
MIT License
46 stars 16 forks source link

Get Previous Message by ID #94

Open JakeStevenson opened 12 months ago

JakeStevenson commented 12 months ago

I have a bot that needs to be able to respond to a previous message when mentioned in a reply. For example:

Joe (message A): I need help with . Moderator, replying to message A: @HelpBot HelpBot, replying to message A: @Joe, You can find help for at .....

Right now, I'm using discordMessage and capturing history of messages by ID, so if the bot sees another message come into the flow that mentions it's name, it will find the original, get the original request, and respond to it. But this can be memory intensive.

Is there a better way to get older messages by id than keeping a bunch of them in memory?

JuliaSoriaSmith commented 2 months ago

You can utilize the discordMessageManager. When you receive a message from discordMessage any message it is replying to is captured within the object, use this to get the previous message. E.g. in your case the message received for the moderator replying to the message, in the object there will be a reply parameter which contains the message id.

Using the discordMessageManager you can then obtain this message, if you set the msg.message parameter to the message id, and msg.action to 'info'. This will retrieve the previous message.