using DSharpPlus.Entities; using Lavalink4NET; using Lavalink4NET.Player; using TomatenMusic; using TomatenMusic.Music; namespace TomatenMusic_Api.Models { public class PlayerConnectionInfo { public static async Task<PlayerConnectionInfo> Create(GuildPlayer player) { PlayerConnectionInfo response = new PlayerConnectionInfo(); response.PlaybackPosition = player.TrackPosition; response.Channel_Id = (ulong)player.VoiceChannelId; response.Guild_Id = player.GuildId; response.Paused = player.State == PlayerState.Paused; response.CurrentTrack = new BasicTrackInfo(player.CurrentTrack); response.LoopType = player.PlayerQueue.LoopType; response.Queue = player.PlayerQueue.Queue.ToList().ConvertAll(x => new BasicTrackInfo(x)); response.PlayedTracks = player.PlayerQueue.PlayedTracks.ToList().ConvertAll(x => new BasicTrackInfo(x)); response.State = player.State; return response; } // Summary: // Gets the current playback position. public TimeSpan PlaybackPosition { get; internal set; } public PlayerState State { get; set; } // // Summary: // Gets the voice channel associated with this connection. public ulong Channel_Id { get; set; } // // Summary: // Gets the guild associated with this connection. public ulong Guild_Id {get; set; } public bool Paused { get; set; } public BasicTrackInfo CurrentTrack { get; set; } public LoopType LoopType { get; set; } public List<BasicTrackInfo> Queue { get; set; } public List<BasicTrackInfo> PlayedTracks { get; set; } } }