//Used to remove a song from the queue. public void RemoveFromQueue(IGuild Guild, String File) { try { var TryQueue = GetQueue(Guild); if (TryQueue.ContainsKey(File)) { TryQueue.Remove(File); } Console.WriteLine("Found and removed specified file."); AudioDataStructure AudioData = new AudioDataStructure { openStream = true, isPlaying = true, queue = TryQueue }; AudioDataStructure PreviousAudioData; AudioQuota.TryRemove(Guild.Id, out PreviousAudioData); AudioQuota.AddOrUpdate(Guild.Id, AudioData, ((Key, PreviousValue) => AudioData)); SaveAudioQuota(); } catch (Exception Error) { Console.WriteLine(Error); } }
public AudioDataStructure GetGuildAudioData(IGuild Guild) { if (AudioQuota.ContainsKey(Guild.Id)) { AudioDataStructure AudioData = new AudioDataStructure(); AudioQuota.TryGetValue(Guild.Id, out AudioData); return(AudioData); } else { return(new AudioDataStructure()); } }
//Used to retrieve the current skip request. public Boolean GetSkipState(IGuild Guild) { if (AudioQuota.ContainsKey(Guild.Id)) { AudioDataStructure AudioData = new AudioDataStructure(); AudioQuota.TryGetValue(Guild.Id, out AudioData); Boolean SkipState = AudioData.skipRequest; return(SkipState); } else { Console.WriteLine("AudioQuota does not contain this guild's reference.\nSkip state defaulting to false."); return(false); } }
public Dictionary <String, QueueStructure> GetQueue(UInt64 Id) { if (AudioQuota.ContainsKey(Id)) { AudioDataStructure AudioData = new AudioDataStructure(); AudioQuota.TryGetValue(Id, out AudioData); Dictionary <string, QueueStructure> Queue = AudioData.queue; return(Queue); } else { Console.WriteLine("AudioQuota does not contain this guild's reference.\nQueue defaulting to empty collection."); return(new Dictionary <string, QueueStructure>()); } }
//Used to retrieve the current output state. public Boolean GetOutputState(IGuild Guild) { if (AudioQuota.ContainsKey(Guild.Id)) { AudioDataStructure AudioData = new AudioDataStructure(); AudioQuota.TryGetValue(Guild.Id, out AudioData); Boolean StreamState = AudioData.isPlaying; return(StreamState); } else { Console.WriteLine("AudioQuota does not contain this guild's reference.\nOutput state defaulting to false."); return(false); } }
//Used to declare if the output is currently playing. public void SetOutputState(IGuild Guild, Boolean State) { try { AudioDataStructure AudioData = new AudioDataStructure { openStream = GetStreamState(Guild), isPlaying = State, queue = GetQueue(Guild) }; AudioDataStructure PreviousAudioData; AudioQuota.TryRemove(Guild.Id, out PreviousAudioData); AudioQuota.AddOrUpdate(Guild.Id, AudioData, ((Key, PreviousValue) => AudioData)); SaveAudioQuota(); } catch (Exception Error) { Console.WriteLine(Error); } }
//Used to add a song to the queue. public void AddToQueue(IGuild Guild, String File, QueueStructure SongInformation) { try { var Queue = GetQueue(Guild); Queue.Add(File, SongInformation); AudioDataStructure AudioData = new AudioDataStructure { openStream = GetStreamState(Guild), isPlaying = GetOutputState(Guild), queue = Queue }; AudioDataStructure PreviousAudioData; AudioQuota.TryRemove(Guild.Id, out PreviousAudioData); AudioQuota.AddOrUpdate(Guild.Id, AudioData, ((Key, PreviousValue) => AudioData)); SaveAudioQuota(); } catch (Exception Error) { Console.WriteLine(Error); } }
//Used to reset the output and stream connections on boot. public void Clean() { try { foreach (var Guild in AudioQuota) { AudioDataStructure AudioData = new AudioDataStructure { openStream = false, isPlaying = false, queue = GetQueue(Guild.Key) }; AudioDataStructure PreviousAudioData; AudioQuota.TryRemove(Guild.Key, out PreviousAudioData); AudioQuota.AddOrUpdate(Guild.Key, AudioData, ((Key, PreviousValue) => AudioData)); } SaveAudioQuota(); } catch (Exception Error) { Console.WriteLine(Error); } }