Esempio n. 1
0
        void Connect()
        {
            if (Connecting)
            {
                return;
            }

            Connecting = true;
            IrcUsers.Clear();
            IrcClient = new IrcClient();
            IrcClient.Connect(Config.Server, Config.Port, Config.SSL,
                              new IrcUserRegistrationInfo()
            {
                NickName  = Config.Nick,
                RealName  = Config.RealName,
                UserName  = Config.UserName,
                UserModes = new List <char> {
                    'i', 'w'
                }
            });
            IrcClient.Disconnected += OnIRCDisconnected;
            IrcClient.Registered   += OnIRCRegistered;
            CtcpClient              = new CtcpClient(IrcClient)
            {
                ClientVersion = "TShockIRC v" + Version
            };
        }
Esempio n. 2
0
        private void SetupNetwork(Network network)
        {
            var client = network.Client = new StandardIrcClient();

            client.FloodPreventer      = new IrcStandardFloodPreventer(4, 2000);
            client.Registered         += Client_Registered;
            client.Disconnected       += Client_Disconnected;
            client.ClientInfoReceived += Client_ClientInfoReceived;
            client.Error += Client_Error;
            client.ErrorMessageReceived            += Client_ErrorMessageReceived;
            client.MotdReceived                    += Client_MotdReceived;
            client.ProtocolError                   += Client_ProtocolError;
            client.ChannelListReceived             += Client_ChannelListReceived;
            client.ConnectFailed                   += Client_ConnectFailed;
            client.NetworkInformationReceived      += Client_NetworkInformationReceived;
            client.PingReceived                    += Client_PingReceived;
            client.PongReceived                    += Client_PongReceived;
            client.ServerBounce                    += Client_ServerBounce;
            client.ServerStatsReceived             += Client_ServerStatsReceived;
            client.ServerTimeReceived              += Client_ServerTimeReceived;
            client.ServerSupportedFeaturesReceived += Client_ServerSupportedFeaturesReceived;
            client.ServerVersionInfoReceived       += Client_ServerVersionInfoReceived;
            client.WhoIsReplyReceived              += Client_WhoIsReplyReceived;
            client.WhoReplyReceived                += Client_WhoReplyReceived;
            client.WhoWasReplyReceived             += Client_WhoWasReplyReceived;

            var ctcpClient = new CtcpClient(client);

            ctcpClient.ClientVersion            = "Jackett2";// + Engine.ConfigService.GetVersion();
            ctcpClient.PingResponseReceived    += CtcpClient_PingResponseReceived;
            ctcpClient.VersionResponseReceived += CtcpClient_VersionResponseReceived;
            ctcpClient.TimeResponseReceived    += CtcpClient_TimeResponseReceived;
            ctcpClient.ActionReceived          += CtcpClient_ActionReceived;

            networks.Add(network);
        }
Esempio n. 3
0
        void IRCRestart(CommandArgs e)
        {
            IrcClient.Quit("Restarting...");
            IrcUsers.Clear();

            IrcClient = new IrcClient();
            IrcClient.Connect(Config.Server, Config.Port, Config.SSL,
                              new IrcUserRegistrationInfo()
            {
                NickName  = Config.Nick,
                RealName  = Config.RealName,
                UserName  = Config.UserName,
                UserModes = new List <char> {
                    'i', 'w'
                }
            });
            IrcClient.Registered += OnIRCRegistered;
            CtcpClient            = new CtcpClient(IrcClient)
            {
                ClientVersion = "TShockIRC v" + Version
            };

            e.Player.SendInfoMessage("Restarted the IRC bot.");
        }
        public static void ClassInitialize(TestContext testContext)
        {
            stateManager = new TestStateManager<IrcClientTestState>();

            // Create IRC clients.
            ircClient1 = new IrcClient();
#if DEBUG
            ircClient1.ClientId = "1";
#endif
            ircClient1.FloodPreventer = new IrcStandardFloodPreventer(4, 2000);
            ircClient1.Connected += ircClient1_Connected;
            ircClient1.ConnectFailed += ircClient1_ConnectFailed;
            ircClient1.Disconnected += ircClient1_Disconnected;
            ircClient1.Error += ircClient1_Error;
            ircClient1.ProtocolError += ircClient1_ProtocolError;
            ircClient1.Registered += ircClient1_Registered;
            ircClient1.MotdReceived += ircClient1_MotdReceived;
            ircClient1.NetworkInformationReceived += ircClient1_NetworkInformationReceived;
            ircClient1.ServerVersionInfoReceived += ircClient1_ServerVersionInfoReceived;
            ircClient1.ServerTimeReceived += ircClient1_ServerTimeReceived;
            ircClient1.ServerLinksListReceived += ircClient1_ServerLinksListReceived;
            ircClient1.ServerStatsReceived += ircClient1_ServerStatsReceived;
            ircClient1.WhoReplyReceived += ircClient1_WhoReplyReceived;
            ircClient1.WhoIsReplyReceived += ircClient1_WhoIsReplyReceived;
            ircClient1.WhoWasReplyReceived += ircClient1_WhoWasReplyReceived;
            ircClient1.ChannelListReceived += ircClient1_ChannelListReceived;

            ircClient2 = new IrcClient();
#if DEBUG
            ircClient2.ClientId = "2";
#endif
            ircClient2.Connected += ircClient2_Connected;
            ircClient2.ConnectFailed += ircClient2_ConnectFailed;
            ircClient2.Disconnected += ircClient2_Disconnected;
            ircClient2.Error += ircClient2_Error;
            ircClient2.ProtocolError += ircClient2_ProtocolError;
            ircClient2.Registered += ircClient2_Registered;

            // Create CTCP clients over IRC clients.
            ctcpClient1 = new CtcpClient(ircClient1);
            ctcpClient1.ClientVersion = clientVersionInfo;
            ctcpClient1.PingResponseReceived += ctcpClient1_PingResponseReceived;
            ctcpClient1.VersionResponseReceived += ctcpClient1_VersionResponseReceived;
            ctcpClient1.TimeResponseReceived += ctcpClient1_TimeResponseReceived;
            ctcpClient1.ActionReceived += ctcpClient1_ActionReceived;

            ctcpClient2 = new CtcpClient(ircClient2);
            ctcpClient2.ClientVersion = clientVersionInfo;
            ctcpClient2.PingResponseReceived += ctcpClient2_PingResponseReceived;
            ctcpClient2.VersionResponseReceived += ctcpClient2_VersionResponseReceived;
            ctcpClient2.TimeResponseReceived += ctcpClient2_TimeResponseReceived;
            ctcpClient2.ActionReceived += ctcpClient2_ActionReceived;

            // Initialize wait handles for all events.
            GetAllWaitHandlesFields().ForEach(fieldInfo => fieldInfo.SetValue(null, new AutoResetEvent(false)));

            // Nick name length limit on irc.freenode.net is 16 chars.
            Func<string> getRandomUserId = () => Guid.NewGuid().ToString().Substring(0, 8);

            serverPassword = Properties.Resources.ServerPassword;
            if (string.IsNullOrEmpty(serverPassword))
                serverPassword = null;
            nickName1 = userName1 = string.Format(Properties.Resources.NickNameFormat, getRandomUserId());
            nickName2 = userName2 = string.Format(Properties.Resources.NickNameFormat, getRandomUserId());
            realName = Properties.Resources.RealName;

            Debug.WriteLine("Client users have real name '{0}'", realName);
            Debug.WriteLine("Client 1 user has nick name '{0}' and user name '{1}'.", nickName1, userName1);
            Debug.WriteLine("Client 2 user has nick name '{0}' and user name '{1}'.", nickName2, userName2);

            stateManager.SetStates(IrcClientTestState.Client1Initialized, IrcClientTestState.Client2Initialized);
            ircClient1.Connect(Properties.Resources.ServerHostName, false, new IrcUserRegistrationInfo()
                {
                    Password = serverPassword,
                    NickName = nickName1,
                    UserName = userName1,
                    RealName = realName,
                });
            ircClient2.Connect(Properties.Resources.ServerHostName, false, new IrcUserRegistrationInfo()
                {
                    Password = serverPassword,
                    NickName = nickName2,
                    UserName = userName2,
                    RealName = realName,
                });
        }
Esempio n. 5
0
 private DotNetIrcClient()
 {
     this.ircClient = new IrcClient();
     this.ctcpClient = new CtcpClient(this.ircClient);
 }