Exemple #1
0
        private NetworkMessageDispatcher CreateNetworMessageHandlers()
        {
            var messageDispatcher = new NetworkMessageDispatcher((int)EClient2ServerMessage.Max);

            messageDispatcher.RegisterLater((int)EClient2ServerMessage.UserCmd, new UserCmdMessageHandler(this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.LocalDisconnect,
                                            new DelegateNetworkMessageHandler(OnDisconnect));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.LocalLogin,
                                            new DelegateNetworkMessageHandler(AsyncLoginPlayer));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.VehicleCmd,
                                            new VehicleCmdMessageHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.DebugCommand,
                                            new DebugMessageHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.SimulationTimeSync,
                                            new SimulationTimeServerSyncHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.FreeEvent,
                                            new FreeEventMessageHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.VehicleEvent,
                                            new VehicleEventMessageHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.TriggerObjectEvent,
                                            new TriggerObejctEventMessageHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterImmediate((int)EClient2ServerMessage.Ping,
                                                new PingReqMessageHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.UpdateMsg,
                                            new UserUpdateMsgHandler(this, ContextsWrapper.contexts));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.UpdateMsg, new UserUpdateAckMsgHandler(this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.FireInfo,
                                            new FireInfoMessageHandler(ContextsWrapper.contexts, this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.DebugScriptInfo,
                                            new DebugScriptInfoMessageHandler(this));
            messageDispatcher.RegisterLater((int)EClient2ServerMessage.GameOver,
                                            new ServerGameOverMessageHandler(this));
            return(messageDispatcher);
        }
Exemple #2
0
        public MITM(MITMConfiguration configuration)
        {
            m_configuration = configuration;
            AuthConnections = new ClientManager <ConnectionMITM>(
                DnsExtensions.GetIPEndPointFromHostName(m_configuration.FakeAuthHost, m_configuration.FakeAuthPort, AddressFamily.InterNetwork), CreateAuthClient);
            WorldConnections = new ClientManager <ConnectionMITM>(
                DnsExtensions.GetIPEndPointFromHostName(m_configuration.FakeWorldHost, m_configuration.FakeWorldPort, AddressFamily.InterNetwork), CreateWorldClient);

            AuthConnections.ClientConnected     += OnAuthClientConnected;
            AuthConnections.ClientDisconnected  += OnAuthClientDisconnected;
            WorldConnections.ClientConnected    += OnWorldClientConnected;
            WorldConnections.ClientDisconnected += OnWorldClientDisconnected;

            MessageBuilder = new MessageReceiver();
            MessageBuilder.Initialize();

            NetworkMessageDispatcher.RegisterSharedContainer(this);
        }
Exemple #3
0
        private ConnectionMITM CreateAuthClient(Socket socket)
        {
            if (socket == null)
            {
                throw new ArgumentNullException("socket");
            }
            var client = new ConnectionMITM(socket, MessageBuilder);

            client.MessageReceived += OnAuthClientMessageReceived;

            var dispatcher = new NetworkMessageDispatcher {
                Client = client, Server = client.Server
            };

            var bot = new BotMITM(client, dispatcher);

            client.Bot         = bot;
            bot.ConnectionType = ClientConnectionType.Authentification;

            BotManager.Instance.RegisterBot(bot);

            return(client);
        }