protected virtual void OnChannelPart(ChannelPartEventArgs e) { if (ChannelPart != null) { ChannelPart(this, e); } }
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)); }
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)); }