More than likely it will require core changes as that is how we interact primarily with any Java API. There are some ways via Rhino to interact with the Java APIs, but, it depends upon how reactions is implemented and what is desired.
We do not commit to time-frames. We typically consider up-votes as a guideline on what to look at implementing.
Not sure, I would need to look at the code or another developer would have to comment.
Can I throw a thousand up-votes in that direction?
Are there any ways to directly interact with sx.blah.discord.util.DiscordHandler through Rhino?
That would be the simplest solution, otherwise I’m going to have to fire up DiscordUtil and add in some reaction functionality (but I still need to figure out how to keep track of message ID’s).
Biggest reason I want to enable reaction functionality is because you would be able to interact with PhantomBot solely based on clicking emojis next to its messages (this would make interactions x1000 better than anything else).
All Java classes can be interacted with via Rhino. It is a question of ease of use and if it makes sense to do so. You can see in the PhantomBot code that there are places where we call in Java classes and methods.
You may consider a thread-safe linked list for keeping track of message IDs and eventually popping items out of the list and keeping it to a certain size (storing all outgoing messages will just keep taking up memory).
I suppose if I was coding it, I would probably track outgoing messages from the Discord Handler in Java, and generate events to be processed that included the reaction along with any other data required to perform an action. I am assuming that not all output from the bot is worthy of a reaction, so that would have to be taken into consideration.