示例#1
0
        private static void OnNickChange(object sender, NickChangeEventArgs e)
        {
            string oldNick = e.OldNickname;
            string newNick = e.NewNickname;

            Users.Remove(oldNick);
            Users.Add(newNick);
            Users.Sort();
            CRCDisplay.UpdateUsers();
            CRCGame.UpdateUsers();
            if (newNick != client.Nickname)
            {
                if (crcNicks.ContainsKey(oldNick))
                {
                    crcNicks[newNick] = crcNicks[oldNick];
                    crcNicks.Remove(oldNick);
                }
                string message = oldNick + CRCStrings.Localize("client_nick_change") + newNick;
                CRCDisplay.AddInformation(message);
                CRCGame.AddInformation(message);
            }
            else
            {
                CRCOptions.Name = newNick;
                string message = CRCStrings.Localize("client_own_nick_change") + newNick;
                CRCDisplay.AddInformation(message);
                CRCGame.AddInformation(message);
            }
        }
示例#2
0
 private static void OnChannelActiveSynced(object sender, IrcEventArgs e)
 {
     foreach (ChannelUser user in client.GetChannel(e.Data.Channel).Users.Values)
     {
         Users.Add(user.Nick);
     }
     Users.Sort();
     CRCDisplay.UpdateUsers();
     CRCGame.UpdateUsers();
     client.SendMessage(SendType.CtcpRequest, e.Data.Channel, "CLIENTINFO");
 }
示例#3
0
        private static void OnQuit(object sender, QuitEventArgs e)
        {
            crcNicks.Remove(e.Who);
            Users.Remove(e.Who);
            Users.Sort();
            CRCDisplay.UpdateUsers();
            CRCGame.UpdateUsers();
            string message = e.Who + CRCStrings.Localize("client_part");

            CRCDisplay.AddInformation(message);
            CRCGame.AddInformation(message);
        }
示例#4
0
 private static void OnPart(object sender, PartEventArgs e)
 {
     if (e.Who != CRCOptions.Name)
     {
         crcNicks.Remove(e.Who);
         Users.Remove(e.Who);
         Users.Sort();
         CRCDisplay.UpdateUsers();
         CRCGame.UpdateUsers();
         string message = e.Who + CRCStrings.Localize("client_part");
         CRCDisplay.AddInformation(message);
         CRCGame.AddInformation(message);
     }
     else
     {
         string message = CRCStrings.Localize("client_own_part");
         CRCDisplay.AddInformation(message);
         CRCGame.AddInformation(message);
     }
 }
示例#5
0
 private static void OnJoin(object sender, JoinEventArgs e)
 {
     if (e.Who != client.Nickname)
     {
         Users.Add(e.Who);
         Users.Sort();
         CRCDisplay.UpdateUsers();
         CRCGame.UpdateUsers();
         string message = e.Who + CRCStrings.Localize("client_join");
         CRCDisplay.AddInformation(message);
         CRCGame.AddInformation(message);
     }
     else
     {
         CRCOptions.Name = e.Who;
         string message = CRCStrings.Localize("client_connected");
         CRCDisplay.AddInformation(message);
         CRCGame.AddInformation(message);
         CRCDisplay.OnConnected();
     }
 }
示例#6
0
        private static void OnKick(object sender, KickEventArgs e)
        {
            string victim = e.Whom;

            if (victim == CRCOptions.Name)
            {
                Users.Clear();
                string message = CRCStrings.Localize("client_got_kicked") + e.KickReason;
                CRCDisplay.AddError(message);
                CRCGame.AddError(message);
                CRCDisplay.OnGotKicked();
            }
            else
            {
                crcNicks.Remove(e.Who);
                Users.Remove(victim);
                Users.Sort();
                string message = victim + CRCStrings.Localize("client_kicked") + e.KickReason;
                CRCDisplay.AddInformation(message);
                CRCGame.AddInformation(message);
            }
            CRCDisplay.UpdateUsers();
            CRCGame.UpdateUsers();
        }