Compare commits

...

1 Commits

Author SHA1 Message Date
1ccc31d3d2 Update readme.md 2024-10-25 21:50:41 +02:00

View File

@@ -9,72 +9,23 @@ flowchart TD
``` ```
```mermaid ```mermaid
classDiagram sequenceDiagram
class PlayHandler { participant User as User
-MusicEmbed _musicEmbed participant DiscordSocketClient as DiscordSocketClient
-DiscordSocketClient _client participant MessageReceivedHandler as MessageReceivedHandler
-IAudioService _audioService participant MessageReceivedNotification as MessageReceivedNotification
-SocketSlashCommand _context participant EmbedBuilder as EmbedBuilder
-const int MaxTrackDuration participant Channel as Channel
-LavalinkTrack? _previousTrack
-static HashSet~ulong~ SubscribedGuilds
+PlayHandler(DiscordSocketClient client, MusicEmbed musicEmbed, IAudioService audioService)
+Task Handle(PlayCommand command, CancellationToken cancellationToken)
-void PlayMusic()
-Task OnTrackEnded(object sender, TrackEndedEventArgs eventargs)
-Task OnTrackStarted(object sender, TrackStartedEventArgs eventargs)
-void RegisterTrackStartedEventListerner(PlayCommand command)
-static Task ApplyFilters(CancellationToken cancellationToken, QueuedLavalinkPlayer player)
-static Task ConfigureSponsorBlock(CancellationToken cancellationToken, QueuedLavalinkPlayer player)
}
class PlayCommand { User->>DiscordSocketClient: Send message "!LunarisStats"
+SocketSlashCommand Message DiscordSocketClient->>MessageReceivedHandler: MessageReceivedNotification
} MessageReceivedHandler->>MessageReceivedNotification: Handle(notification, cancellationToken)
MessageReceivedNotification->>MessageReceivedHandler: BotMentioned(notification, cancellationToken)
class TrackEndedEventArgs { MessageReceivedHandler->>DiscordSocketClient: Get guilds and voice channels
} DiscordSocketClient-->>MessageReceivedHandler: List of guilds and voice channels
MessageReceivedHandler->>EmbedBuilder: Create embed with statistics
class TrackStartedEventArgs { EmbedBuilder-->>MessageReceivedHandler: Embed
} MessageReceivedHandler->>Channel: Send embed message
class QueuedLavalinkPlayer {
+LavalinkTrack? CurrentTrack
+Task PlayAsync(LavalinkTrack track, CancellationToken cancellationToken)
+Task Queue.AddRangeAsync(List~TrackQueueItem~ queueTracks, CancellationToken cancellationToken)
+Task Filters.SetFilter(NormalizationFilter normalizationFilter)
+Task Filters.CommitAsync(CancellationToken cancellationToken)
+Task UpdateSponsorBlockCategoriesAsync(ImmutableArray~SegmentCategory~ categories, CancellationToken cancellationToken)
}
class LavalinkTrack {
+string Identifier
}
class NormalizationFilter {
+NormalizationFilter(double gain, bool enabled)
}
class SegmentCategory {
+static SegmentCategory Intro
+static SegmentCategory Sponsor
+static SegmentCategory SelfPromotion
+static SegmentCategory Outro
+static SegmentCategory Filler
}
class TrackQueueItem {
+TrackQueueItem(LavalinkTrack track)
}
PlayHandler --> PlayCommand
PlayHandler --> TrackEndedEventArgs
PlayHandler --> TrackStartedEventArgs
PlayHandler --> QueuedLavalinkPlayer
PlayHandler --> LavalinkTrack
PlayHandler --> NormalizationFilter
PlayHandler --> SegmentCategory
PlayHandler --> TrackQueueItem
``` ```
## Steps in the code ## Steps in the code