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); }
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); }
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); }