public void ReInitialize() { if (config.UseDebugMessages) { Adverts.Register("Every Ten Seconds!?!?!?!?!?", Color.Chartreuse, TimeSpan.FromSeconds(10)); Adverts.Register("Every Fifteen Seconds!?!?!?!?!?", Color.OrangeRed, TimeSpan.FromSeconds(15)); } foreach (Advert.Message msg in adverts) { Adverts.Deregister(msg.Index); } adverts.Clear(); foreach (var adv in config.Adverts) { string message = adv.Text; Color color = (Color)typeof(Color) .GetConstructor(new Type[] { typeof(int), typeof(int), typeof(int) }) .Invoke(adv.Color.Cast <object>().ToArray()); TimeSpan delay = adv.Time.ToTimeSpan(); TimeSpan offset = adv.Offset.ToTimeSpan(); if (adv.RunOnce) { offset = delay; delay = TimeSpan.MaxValue - TimeSpan.FromDays(1); } adverts.Add(Adverts.Register(message, color, delay, offset)); } }
private void RemindCommand(CommandArgs args) { if (args.Parameters.Count < 2) { args.Player.SendMessage("Syntax: <message> <time>\nWhere 'time'is in the format '<num><unit>+', with unit being one of 'd', 'h', 'm', 's', or 'ms'.", Color.Red); return; } string message = args.Parameters[0]; string time = args.Parameters[1]; TimeSpan tim = time.ToTimeSpan(); RemindPlayerCheck chk = new RemindPlayerCheck(args.Player, this); var msg = Adverts.Register("Reminder: " + message, Color.LimeGreen, tim, chk.Check, chk.Send); args.Player.SendMessage("OK! You will be reminded '{0}' in {1}".SFormat(message, tim.ToReadable()), Color.LimeGreen); Reminders.EnsurePosition(args.Player.Index); Reminders[args.Player.Index].Add(msg); }