Ejemplo n.º 1
0
        private void Listener()
        {
            HashSet <string> nextEventPlayers = new HashSet <string> (EventConnection.GetEvents().OrderBy(e => e.Date).First().Registered);

            while (this.listening)
            {
                var nextEvent = EventConnection.GetEvents().OrderBy(e => e.Date).First();

                var unchanged      = nextEventPlayers.Intersect(nextEvent.Registered);
                var joiningPlayers = nextEvent.Registered.Where(p => !unchanged.Contains(p));
                foreach (var p in joiningPlayers)
                {
                    messanger.SendToChannel(p + " registered for the next event (" + nextEvent.Date.ToString("ddd, MMMM d") + " at " + nextEvent.Location + ")");
                }

                var leavingPlayers = nextEventPlayers.Where(p => !unchanged.Contains(p));
                foreach (var p in leavingPlayers)
                {
                    messanger.SendToChannel(p + " unregistered for the next event (" + nextEvent.Date.ToString("ddd, MMMM d") + " at " + nextEvent.Location + ")");
                }

                nextEventPlayers = new HashSet <string> (nextEvent.Registered);

                Thread.Sleep(15000);
            }
        }
Ejemplo n.º 2
0
        protected override string ProcessMessage(string nick, string message)
        {
            if (!message.StartsWith("~events"))
            {
                return(null);
            }

            var msgBuilder = new StringBuilder();

            foreach (var ev in EventConnection.GetEvents())
            {
                msgBuilder.AppendFormat("{1} on {0}, {2} gamers registered. ", ev.Date.ToString("ddd, MMMM d"), ev.Location, ev.Registered.Count());
            }

            return(msgBuilder.ToString());
        }
Ejemplo n.º 3
0
        protected override string ProcessMessage(string nick, string message)
        {
            if (!message.StartsWith("~nextevent"))
            {
                return(null);
            }

            try
            {
                var ev = EventConnection.GetEvents().OrderBy(e => e.Date).FirstOrDefault();
                return((ev == null)
                                        ? "No next event."
                                        : String.Format("Next Event: {0} at {1}. Registered [{3}]: {2}", ev.Date.ToString("ddd, MMMM d"),
                                                        ev.Location, ev.Registered.Explode(","), ev.Registered.Count()));
            }
            catch (MySqlException ex)
            {
                this.Stop();
                return("Registrations module b0rked: " + ex.Message);
            }
        }