private static void Tick(object discarded) { var song = PlayNextSong(); SkipRequests.Clear(); StartTime = DateTime.Now; Console.WriteLine("Now playing: {0} ({1}:{2})", song.Name, song.Duration.Minutes, song.Duration.Seconds.ToString("00")); if (Program.Configuration.Irc.Enabled) { Program.IrcBot.AnnounceSong(song); } UpdateListeners(); Timer.Change(Timeout.Infinite, Timeout.Infinite); Timer = new Timer(Tick, null, (int)(song.Duration).TotalMilliseconds, Timeout.Infinite); }
public static bool RequestSkip(string user) { if (((StartTime + NowPlaying.Duration) - DateTime.Now).TotalSeconds < 10) { return(false); } if (SkipRequests.Contains(user)) { return(false); } SkipRequests.Add(user); if (SkipRequestsIssued >= SkipRequestsRequired) { Console.WriteLine("Skipping {0}", NowPlaying.Name); Tick(null); return(true); } return(false); }