mirror of
https://github.com/Myxelium/Lunaris2.0.git
synced 2026-04-13 16:10:36 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e847c1579a | |||
| 1ccc31d3d2 | |||
| 7c4d8c246d | |||
| 43f0191752 |
@@ -8,6 +8,29 @@ flowchart TD
|
|||||||
PlayTrack --> NowPlayingEmbed
|
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
|
## Steps in the code
|
||||||
|
|
||||||
| Name | Description |
|
| Name | Description |
|
||||||
@@ -32,4 +55,4 @@ There is also OnTrackEnd, when it get called an attempt is made to play the next
|
|||||||
| `player` | `LavaPlayer` | An instance of the `LavaPlayer` class, representing a music player connected to a specific voice channel. Used to play, pause, skip, and queue tracks. |
|
| `player` | `LavaPlayer` | An instance of the `LavaPlayer` class, representing a music player connected to a specific voice channel. Used to play, pause, skip, and queue tracks. |
|
||||||
| `guildMessageIds` | `Dictionary<ulong, List<ulong>>` | A dictionary that maps guild IDs to lists of message IDs. Used to keep track of messages sent by the bot in each guild, allowing the bot to delete its old messages when it sends new ones. |
|
| `guildMessageIds` | `Dictionary<ulong, List<ulong>>` | A dictionary that maps guild IDs to lists of message IDs. Used to keep track of messages sent by the bot in each guild, allowing the bot to delete its old messages when it sends new ones. |
|
||||||
| `songName` | `string` | A string that represents the name or URL of a song to play. Used to search for and queue tracks. |
|
| `songName` | `string` | A string that represents the name or URL of a song to play. Used to search for and queue tracks. |
|
||||||
| `searchResponse` | `SearchResponse` | An instance of the `SearchResponse` class, representing the result of a search for tracks. Used to get the tracks that were found and queue them in the player. |
|
| `searchResponse` | `SearchResponse` | An instance of the `SearchResponse` class, representing the result of a search for tracks. Used to get the tracks that were found and queue them in the player. |
|
||||||
|
|||||||
@@ -67,73 +67,23 @@ public class MessageReceivedHandler : INotificationHandler<MessageReceivedNotifi
|
|||||||
### Class Diagram
|
### Class Diagram
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
classDiagram
|
sequenceDiagram
|
||||||
class ClearQueueHandler {
|
participant User as User
|
||||||
+Task Handle(ClearQueueCommand command, CancellationToken cancellationToken)
|
participant DiscordSocketClient as DiscordSocketClient
|
||||||
}
|
participant MessageReceivedHandler as MessageReceivedHandler
|
||||||
class DisconnectHandler {
|
participant MessageReceivedNotification as MessageReceivedNotification
|
||||||
+Task Handle(DisconnectCommand command, CancellationToken cancellationToken)
|
participant EmbedBuilder as EmbedBuilder
|
||||||
}
|
participant Channel as Channel
|
||||||
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
|
|
||||||
|
|
||||||
ClearQueueHandler ..|> IRequestHandler
|
User->>DiscordSocketClient: Send message "!LunarisStats"
|
||||||
DisconnectHandler ..|> IRequestHandler
|
DiscordSocketClient->>MessageReceivedHandler: MessageReceivedNotification
|
||||||
PauseHandler ..|> IRequestHandler
|
MessageReceivedHandler->>MessageReceivedNotification: Handle(notification, cancellationToken)
|
||||||
PlayHandler ..|> IRequestHandler
|
MessageReceivedNotification->>MessageReceivedHandler: BotMentioned(notification, cancellationToken)
|
||||||
ResumeHandler ..|> IRequestHandler
|
MessageReceivedHandler->>DiscordSocketClient: Get guilds and voice channels
|
||||||
SkipHandler ..|> IRequestHandler
|
DiscordSocketClient-->>MessageReceivedHandler: List of guilds and voice channels
|
||||||
MessageReceivedHandler ..|> INotificationHandler
|
MessageReceivedHandler->>EmbedBuilder: Create embed with statistics
|
||||||
ClearQueueHandler --> IAudioService
|
EmbedBuilder-->>MessageReceivedHandler: Embed
|
||||||
DisconnectHandler --> IAudioService
|
MessageReceivedHandler->>Channel: Send embed message
|
||||||
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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Sequence Diagram for PlayHandler
|
### Sequence Diagram for PlayHandler
|
||||||
|
|||||||
Reference in New Issue
Block a user