All Discord bots function by listening to events sent by Discord, for example on_message, on_reaction_add, e.t.c. Bot features are reliant on these events and so as a user,
if you do something in a Discord channel that a bot has permissions to see, the bot will have access to information about the message, or reaction for example, and who sent/ added it.
Ser Aymeric (as all bots do) uses these events to respond to commands. If a message is sent that starts with a "command prefix" then the bot will match the rest of the message against registered
code that has been written to handle a command with paramters you give it.
If you would like more detailed information about these events, how bots work and the data they contain please refer to Discord.py's documentation
Discord.py is the only framework that Ser Aymeric uses to interact with Discord's API and is endorsed & recommended by Discord here
Many Discord API frameworks operate an internal message cache. This message cache stores all messages a bot sees on the server so that events related to them can be received with all information about that message.
Ser Aymeric has disabled this feature in Discord.py and does not operate an internal message cache. You can view details about this here
So how does Ser Aymeric respond to the aforementioned events if it does not operate an internal message cache? Well, Discord's Gateway fires off "raw" events that do not contain message content. An example of which can be found