Esempio n. 1
0
 //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);
     }
 }
Esempio n. 2
0
 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());
     }
 }
Esempio n. 3
0
 //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);
     }
 }
Esempio n. 4
0
 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>());
     }
 }
Esempio n. 5
0
 //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);
     }
 }
Esempio n. 6
0
 //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);
     }
 }
Esempio n. 7
0
 //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);
     }
 }
Esempio n. 8
0
 //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);
     }
 }