示例#1
0
 protected virtual void OnChannelPart(ChannelPartEventArgs e)
 {
     if (ChannelPart != null)
     {
         ChannelPart(this, e);
     }
 }
示例#2
0
        public override bool OnChannelLeave(object sender, ChannelPartEventArgs e)
        {
            Game game;

            if (this.Games.TryGetValue(((IrcClient)sender).Extensions.NetworkName + "/" + e.Channel, out game))
            {
                lock (game.Lock) {
                    int index = game.IndexOf(e.Sender.Nickname);
                    if (index != -1)
                    {
                        if (game.IsOpen)
                        {
                            // Remove the player immediately if they disconnect before the game starts.
                            Bot.Say(game.Connection, game.Channel, "\u000312\u0002{0}\u0002 has left the game.", e.Sender.Nickname);
                            this.RemovePlayer(game, index);
                        }
                        else
                        {
                            game.Players[index].DisconnectedAt = DateTime.Now;
                            // Start the turn timer if it's this player's turn.
                            if (game.IdleTurn == index && !game.GameTimer.Enabled)
                            {
                                game.TurnStartTime      = DateTime.Now;
                                game.WaitTime           = (this.TurnTime == 0 ? 60 : this.TurnTime);
                                game.GameTimer.Interval = game.WaitTime * 1000;
                                game.NoTimerReset       = false;
                                game.GameTimer.Start();
                            }
                        }
                    }
                }
            }
            return(base.OnChannelLeave(sender, e));
        }
示例#3
0
 public override bool OnChannelLeave(object sender, ChannelPartEventArgs e)
 {
     if (!IsActiveChannel(e.Channel))
     {
         return(false);
     }
     this.SendCheck(string.Format("\u000315[\u000F{0}\u000315/\u000F{1}\u000315] {2}{3}\u000F left: {4}.", e.Channel, (sender as IrcClient).NetworkName, Colours.NicknameColour(e.Sender.Nickname), e.Sender.Nickname, e.Message), (IrcClient)sender, e.Channel);
     return(base.OnChannelLeave(sender, e));
 }