## How commands from Discord gets executed
```mermaid
flowchart TD
    Program[Program] -->|Register| EventListener
    EventListener[DiscordEventListener] --> A

    A[MessageReceivedHandler] -->|Message| C{Send to correct command by 
            looking at commandName}

    C -->|JoinCommand| D[JoinHandler]
    C -->|PlayCommand| E[PlayHandler]
    C -->|HelloCommand| F[HelloHandler]
    C -->|GoodbyeCommand| G[GoodbyeHandler]
```

Program registers an event listener ```DiscordEventListener``` which publish a message :

```c#
await Mediator.Publish(new MessageReceivedNotification(arg), _cancellationToken);
```
