Пример #1
0
        internal TrackEndedEventArgs(LavaPlayer player, TrackEndEvent endEvent)
        {
            Player = player;
            Track  = TrackDecoder.Decode(endEvent.Hash);
            Reason = endEvent.Reason;

            if (endEvent.Reason == TrackEndReason.Replaced)
            {
                return;
            }

            player.UpdatePlayer(x =>
            {
                x.PlayerState = PlayerState.Stopped;
                x.Track       = default;
            });
        }
Пример #2
0
        /// <summary>
        ///     Asynchronously triggered when a track ends.
        /// </summary>
        /// <param name="eventArgs">the track event arguments</param>
        /// <returns>a task that represents the asynchronous operation</returns>
        public override async Task OnTrackEndAsync(TrackEndEventArgs eventArgs)
        {
            if (eventArgs.Reason == TrackEndReason.LoadFailed)
            {
                botResponse = "Load failed for song. Retrying.";
                Queue.Insert(0, TrackDecoder.DecodeTrack(eventArgs.TrackIdentifier));
                await SkipAsync();

                return;
            }
            Console.WriteLine($"Track end ran. Args: {eventArgs.Reason}");
            if (eventArgs.Reason != TrackEndReason.Replaced && Queue.IsEmpty)
            {
                DisconnectOnStop = false;
                await base.OnTrackEndAsync(eventArgs);
            }
            if (eventArgs.MayStartNext)
            {
                await SkipAsync();
            }
        }
Пример #3
0
 internal TrackStuckEventArgs(LavaPlayer player, TrackStuckEvent stuckEvent)
 {
     Player    = player;
     Track     = TrackDecoder.Decode(stuckEvent.Hash);
     Threshold = new TimeSpan(stuckEvent.ThresholdMs);
 }
Пример #4
0
 public void TestTrackDecoding(string base64)
 {
     // verify the header of the base64 encoded track
     TrackDecoder.DecodeTrack(base64, verify: true);
 }
Пример #5
0
 internal TrackEndedEventArgs(LavaPlayer player, TrackEndEvent endEvent)
 {
     Player = player;
     Track  = TrackDecoder.Decode(endEvent.Hash);
     Reason = endEvent.Reason;
 }
Пример #6
0
 internal TrackStartEventArgs(LavaPlayer player, TrackStartEvent trackStartEvent)
 {
     Player = player;
     Track  = TrackDecoder.Decode(trackStartEvent.Hash);
 }
Пример #7
0
 internal TrackExceptionEventArgs(LavaPlayer player, TrackExceptionEvent exceptionEvent)
 {
     Player       = player;
     Track        = TrackDecoder.Decode(exceptionEvent.Hash);
     ErrorMessage = exceptionEvent.Error;
 }