示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public async ValueTask DisposeAsync()
        {
            Queue.Clear();
            await VoiceChannel.DisconnectAsync().ConfigureAwait(false);

            GC.SuppressFinalize(this);
        }
示例#2
0
        /// <summary>
        /// Disposes <see cref="LavaPlayer"/>, sends a stop and destroy request to Lavalink server and disconnects from <see cref="VoiceChannel"/>.
        /// </summary>
        public async ValueTask DisposeAsync()
        {
            IsPlaying = false;
            Queue.Clear();
            Queue        = null;
            CurrentTrack = null;
            var stopPayload    = new StopPayload(VoiceChannel.GuildId);
            var destroyPayload = new DestroyPayload(VoiceChannel.GuildId);
            await _socketHelper.SendPayloadAsync(stopPayload);

            await _socketHelper.SendPayloadAsync(destroyPayload);

            await VoiceChannel.DisconnectAsync().ConfigureAwait(false);

            GC.SuppressFinalize(this);
        }
示例#3
0
        internal async Task DisconnectAsync()
        {
            await VoiceChannel.DisconnectAsync();

            Dispose();
        }