private bool CheckCommand(string message) { MessageInfo messageInfo = MessageInfo.Parse(message); //:sendak.freenode.net 375 Jaex :- sendak.freenode.net Message of the Day - //:sendak.freenode.net 372 Jaex :- Welcome to sendak.freenode.net in Vilnius, Lithuania, EU. if ((messageInfo.Command == "375" || messageInfo.Command == "372") && Info.SuppressMOTD) { return(true); } if (messageInfo.User.UserType == IRCUserType.Me) { messageInfo.User.Nickname = Info.Nickname; } OnOutput(messageInfo); switch (messageInfo.Command) { case "PING": //PING :sendak.freenode.net SendRawMessage("PONG :" + messageInfo.Message); break; case "376": //:sendak.freenode.net 376 Jaex :End of /MOTD command. OnConnected(); break; case "PRIVMSG": //:Jaex!Jaex@unaffiliated/jaex PRIVMSG #ShareX :test CheckMessage(messageInfo); break; case "JOIN": //:Jaex!Jaex@unaffiliated/jaex JOIN #ShareX or :Jaex!Jaex@unaffiliated/jaex JOIN :#ShareX if (UserJoined != null) { UserJoined(messageInfo.User, messageInfo.Parameters.Count > 0 ? messageInfo.Parameters[0] : messageInfo.Message); } break; case "PART": //:Jaex!Jaex@unaffiliated/jaex PART #ShareX :"Leaving" if (UserLeft != null) { UserLeft(messageInfo.User, messageInfo.Parameters[0]); } break; case "QUIT": //:Jaex!Jaex@unaffiliated/jaex QUIT :Client Quit if (UserQuit != null) { UserQuit(messageInfo.User, null); } break; case "NICK": //:Jaex!Jaex@unaffiliated/jaex NICK :Jaex2 if (UserNickChanged != null) { UserNickChanged(messageInfo.User, messageInfo.Message); } break; case "KICK": //:Jaex!Jaex@unaffiliated/jaex KICK #ShareX Jaex2 :Jaex2 if (UserKicked != null) { UserKicked(messageInfo.User, messageInfo.Parameters[0], messageInfo.Parameters[1]); } if (Info.AutoRejoinOnKick) { JoinChannel(messageInfo.Parameters[0]); } break; case "311": //:sendak.freenode.net 311 Jaex ShareX ~ShareX unaffiliated/sharex * :realname case "319": //:sendak.freenode.net 319 Jaex ShareX :@#ShareX @#ShareX_Test case "312": //:sendak.freenode.net 312 Jaex ShareX sendak.freenode.net :Vilnius, Lithuania, EU case "671": //:sendak.freenode.net 671 Jaex ShareX :is using a secure connection case "317": //:sendak.freenode.net 317 Jaex ShareX 39110 1440201914 :seconds idle, signon time case "330": //:sendak.freenode.net 330 Jaex ShareX ShareX :is logged in as case "318": //:sendak.freenode.net 318 Jaex ShareX :End of /WHOIS list. ParseWHOIS(messageInfo); break; case "396": //:sendak.freenode.net 396 Jaex unaffiliated/jaex :is now your hidden host (set by services.) if (Info.AutoJoinWaitIdentify) { AutoJoinChannels(); } break; case "ERROR": return(false); } return(true); }
private bool CheckCommand(string message) { MessageInfo messageInfo = MessageInfo.Parse(message); if (messageInfo.User.UserType == IRCUserType.Me) { messageInfo.User.Nickname = CurrentNickname; } bool suppressOutput = //:sendak.freenode.net 375 Jaex :- sendak.freenode.net Message of the Day - //:sendak.freenode.net 372 Jaex :- Welcome to sendak.freenode.net in Vilnius, Lithuania, EU. //:sendak.freenode.net 376 Jaex :End of /MOTD command. (Info.SuppressMOTD && messageInfo.CheckCommand("375", "372", "376")) || //PING :sendak.freenode.net //PONG :sendak.freenode.net (Info.SuppressPing && messageInfo.CheckCommand("PING", "PONG")); if (!suppressOutput) { OnOutput(messageInfo); } switch (messageInfo.Command) { case "PING": //PING :sendak.freenode.net SendRawMessage("PONG :" + messageInfo.Message); break; case "376": //:sendak.freenode.net 376 Jaex :End of /MOTD command. OnConnected(); break; case "433": //:sendak.freenode.net 433 * ShareX :Nickname is already in use. if (!IsConnected && messageInfo.Parameters.Count >= 2) { string nickname = !string.IsNullOrEmpty(Info.Nickname2) ? Info.Nickname2 : Info.Nickname + "_"; if (!messageInfo.Parameters[1].Equals(nickname, StringComparison.InvariantCultureIgnoreCase)) { ChangeNickname(nickname); } } break; case "PRIVMSG": //:Jaex!Jaex@unaffiliated/jaex PRIVMSG #ShareX :test CheckMessage(messageInfo); break; case "JOIN": //:Jaex!Jaex@unaffiliated/jaex JOIN #ShareX or :Jaex!Jaex@unaffiliated/jaex JOIN :#ShareX if (UserJoined != null) { UserJoined(messageInfo.User, messageInfo.Parameters.Count > 0 ? messageInfo.Parameters[0] : messageInfo.Message); } break; case "PART": //:Jaex!Jaex@unaffiliated/jaex PART #ShareX :"Leaving" if (UserLeft != null) { UserLeft(messageInfo.User, messageInfo.Parameters[0]); } break; case "QUIT": //:Jaex!Jaex@unaffiliated/jaex QUIT :Client Quit if (UserQuit != null) { UserQuit(messageInfo.User, null); } break; case "NICK": //:Jaex!Jaex@unaffiliated/jaex NICK :Jaex2 if (UserNickChanged != null) { UserNickChanged(messageInfo.User, messageInfo.Message); } break; case "KICK": //:Jaex!Jaex@unaffiliated/jaex KICK #ShareX Jaex2 :Jaex2 if (UserKicked != null) { UserKicked(messageInfo.User, messageInfo.Parameters[0], messageInfo.Parameters[1]); } if (Info.AutoRejoinOnKick) { JoinChannel(messageInfo.Parameters[0]); } break; case "311": //:sendak.freenode.net 311 Jaex ShareX ~ShareX unaffiliated/sharex * :realname case "319": //:sendak.freenode.net 319 Jaex ShareX :@#ShareX @#ShareX_Test case "312": //:sendak.freenode.net 312 Jaex ShareX sendak.freenode.net :Vilnius, Lithuania, EU case "671": //:sendak.freenode.net 671 Jaex ShareX :is using a secure connection case "317": //:sendak.freenode.net 317 Jaex ShareX 39110 1440201914 :seconds idle, signon time case "330": //:sendak.freenode.net 330 Jaex ShareX ShareX :is logged in as case "318": //:sendak.freenode.net 318 Jaex ShareX :End of /WHOIS list. ParseWHOIS(messageInfo); break; case "396": //:sendak.freenode.net 396 Jaex unaffiliated/jaex :is now your hidden host (set by services.) if (Info.AutoJoinWaitIdentify) { AutoJoinChannels(); } break; case "ERROR": return(false); } return(true); }