public static void MeetAndGreet(IClient client) { if (!client.Greeted) { client.Greeted = true; Console.WriteLine("{0} Has finished connecting as {1}", client.HostName, client.NickName); client.AddMessage(IRCMessage.GetStatic().CreateMessage(client, "MOTD")); string joins = "&Friends"; int numChats = Server.clientFriends.GetChatRoomCount(); for (int i = 0; i < numChats; i++) { Steam4NET.CSteamID id = Server.clientFriends.GetChatRoomByIndex(i); IChannel c = (BaseIRCLib.Server.GetServer() as Server).GetSteamChannel(id); if (c == null) { continue; } joins += ",&" + c.ChannelName; } client.AddMessage(IRCMessage.GetStatic().CreateMessage(client, client.UserString, "JOIN", new string[] { joins })); client.LastPong = DateTime.Now; } }
public override void SendMessage(IClient C, IMessage m, bool toSender = false) { if (!C.GetType().Equals(typeof(IRCLib.Interfaces.IRC.IRCClient)) || !m.IsCommand) { base.SendMessage(C, m, toSender); return; } if (m.Command == "PRIVMSG") { string msg = m.Params[1]; string[] p = msg.Split(new char[] { ' ' }); string cmd = p[0].ToLower(); switch (cmd) { case "rename": if (p.Length != 3 || !Database.GetDatabase().HasClient(p[1]) || Database.GetDatabase().HasClient(p[2])) { return; } IClient cl = Database.GetDatabase().GetClient(p[1]); cl.AddMessage(m.CreateMessage(cl, cl.UserString, "NICK", new string[] { p[2] })); Server.clientList.AddClient((cl as SteamClient)); //Server.clientList.Save("clients.list"); break; case default(string): return; } } else { base.SendMessage(C, m, toSender); } }