Compare commits

...

4 Commits

Author SHA1 Message Date
e847c1579a Update readme.md 2024-10-25 21:51:44 +02:00
1ccc31d3d2 Update readme.md 2024-10-25 21:50:41 +02:00
7c4d8c246d Update README.md 2024-10-25 21:49:24 +02:00
43f0191752 Update readme.md 2024-10-25 21:47:54 +02:00
2 changed files with 40 additions and 67 deletions

View File

@@ -8,6 +8,29 @@ flowchart TD
PlayTrack --> NowPlayingEmbed
```
```mermaid
sequenceDiagram
participant User
participant Bot
participant DiscordSocketClient
participant IAudioService
participant SocketSlashCommand
participant LavalinkPlayer
User->>Bot: /play [song]
Bot->>DiscordSocketClient: Get user voice channel
DiscordSocketClient-->>Bot: Voice channel info
Bot->>IAudioService: Get or create player
IAudioService-->>Bot: Player instance
Bot->>SocketSlashCommand: Get search query
SocketSlashCommand-->>Bot: Search query
Bot->>IAudioService: Load tracks
IAudioService-->>Bot: Track collection
Bot->>LavalinkPlayer: Play track
LavalinkPlayer-->>Bot: Track started
Bot->>User: Now playing embed
```
## Steps in the code
| Name | Description |

View File

@@ -67,73 +67,23 @@ public class MessageReceivedHandler : INotificationHandler<MessageReceivedNotifi
### Class Diagram
```mermaid
classDiagram
class ClearQueueHandler {
+Task Handle(ClearQueueCommand command, CancellationToken cancellationToken)
}
class DisconnectHandler {
+Task Handle(DisconnectCommand command, CancellationToken cancellationToken)
}
class PauseHandler {
+Task Handle(PauseCommand command, CancellationToken cancellationToken)
}
class PlayHandler {
+Task Handle(PlayCommand command, CancellationToken cancellationToken)
}
class ResumeHandler {
+Task Handle(ResumeCommand command, CancellationToken cancellationToken)
}
class SkipHandler {
+Task Handle(SkipCommand command, CancellationToken cancellationToken)
}
class MessageReceivedHandler {
+Task Handle(MessageReceivedNotification notification, CancellationToken cancellationToken)
}
class IAudioService
class DiscordSocketClient
class SocketSlashCommand
class CancellationToken
class Task
class IRequestHandler
class INotificationHandler
sequenceDiagram
participant User as User
participant DiscordSocketClient as DiscordSocketClient
participant MessageReceivedHandler as MessageReceivedHandler
participant MessageReceivedNotification as MessageReceivedNotification
participant EmbedBuilder as EmbedBuilder
participant Channel as Channel
ClearQueueHandler ..|> IRequestHandler
DisconnectHandler ..|> IRequestHandler
PauseHandler ..|> IRequestHandler
PlayHandler ..|> IRequestHandler
ResumeHandler ..|> IRequestHandler
SkipHandler ..|> IRequestHandler
MessageReceivedHandler ..|> INotificationHandler
ClearQueueHandler --> IAudioService
DisconnectHandler --> IAudioService
PauseHandler --> IAudioService
PlayHandler --> IAudioService
ResumeHandler --> IAudioService
SkipHandler --> IAudioService
ClearQueueHandler --> DiscordSocketClient
DisconnectHandler --> DiscordSocketClient
PauseHandler --> DiscordSocketClient
PlayHandler --> DiscordSocketClient
ResumeHandler --> DiscordSocketClient
SkipHandler --> DiscordSocketClient
ClearQueueHandler --> SocketSlashCommand
DisconnectHandler --> SocketSlashCommand
PauseHandler --> SocketSlashCommand
PlayHandler --> SocketSlashCommand
ResumeHandler --> SocketSlashCommand
SkipHandler --> SocketSlashCommand
ClearQueueHandler --> CancellationToken
DisconnectHandler --> CancellationToken
PauseHandler --> CancellationToken
PlayHandler --> CancellationToken
ResumeHandler --> CancellationToken
SkipHandler --> CancellationToken
ClearQueueHandler --> Task
DisconnectHandler --> Task
PauseHandler --> Task
PlayHandler --> Task
ResumeHandler --> Task
SkipHandler --> Task
User->>DiscordSocketClient: Send message "!LunarisStats"
DiscordSocketClient->>MessageReceivedHandler: MessageReceivedNotification
MessageReceivedHandler->>MessageReceivedNotification: Handle(notification, cancellationToken)
MessageReceivedNotification->>MessageReceivedHandler: BotMentioned(notification, cancellationToken)
MessageReceivedHandler->>DiscordSocketClient: Get guilds and voice channels
DiscordSocketClient-->>MessageReceivedHandler: List of guilds and voice channels
MessageReceivedHandler->>EmbedBuilder: Create embed with statistics
EmbedBuilder-->>MessageReceivedHandler: Embed
MessageReceivedHandler->>Channel: Send embed message
```
### Sequence Diagram for PlayHandler