Esempio n. 1
0
        public InfusionTestProxy()
        {
            ServerPacketHandler = new ServerPacketHandler();
            ClientPacketHandler = new ClientPacketHandler();
            Server = new UltimaServer(ServerPacketHandler, packet =>
            {
                var filteredPacket = ClientPacketHandler.FilterOutput(packet);
                if (filteredPacket.HasValue)
                {
                    packetsSentToServer.Add(filteredPacket.Value);
                }
            });
            Client = new UltimaClient(ClientPacketHandler, packet =>
            {
                var filteredPacket = ServerPacketHandler.FilterOutput(packet);
                if (filteredPacket.HasValue)
                {
                    packetsSentToClient.Add(filteredPacket.Value);
                }
            });

            var logger = new NullLogger();

            Api = new Legacy(new Configuration(), new CommandHandler(logger), Server, Client, logger);
        }
Esempio n. 2
0
        public HeadlessClient(Legacy legacyApi, IConsole console, HeadlessStartConfig startConfig)
        {
            this.legacyApi             = legacyApi;
            this.console               = console;
            this.startConfig           = startConfig;
            packetRegistry             = PacketDefinitionRegistryFactory.CreateClassicClient(startConfig.ClientVersion);
            diagnosticProvider         = new InfusionDiagnosticPushStreamProvider(LogConfig, console);
            serverDiagnosticPushStream =
                new CompositeDiagnosticPushStream(new ConsoleDiagnosticPushStream(packetLogger, "headless -> server", packetRegistry),
                                                  new InfusionBinaryDiagnosticPushStream(DiagnosticStreamDirection.ClientToServer, diagnosticProvider.GetStream));
            serverDiagnosticPullStream = new ConsoleDiagnosticPullStream(packetLogger, "server -> headless", packetRegistry);

            serverConnection = new ServerConnection(ServerConnectionStatus.Initial, serverDiagnosticPullStream,
                                                    serverDiagnosticPushStream, packetRegistry, startConfig.Encryption);
            serverConnection.PacketReceived += ServerConnectionOnPacketReceived;
            ultimaServer = new UltimaServer(serverPacketHandler, SendToServer, packetRegistry);

            serverPacketHandler = new ServerPacketHandler(packetRegistry);
            clientPacketHandler = new ClientPacketHandler(packetRegistry);
            serverEndpoint      = startConfig.ServerEndPoint;

            ultimaClient = new UltimaClient(clientPacketHandler, SendToClient);

            serverPacketHandler.RegisterFilter(FilterServerPacket);
            serverPacketHandler.Subscribe(PacketDefinitions.GameServerList, HandleGameServerList);
            serverPacketHandler.Subscribe(PacketDefinitions.CharactersStartingLocations, HandleCharactersStartingLocationsPacket);
            serverPacketHandler.Subscribe(PacketDefinitions.EnableLockedClientFeatures, HandleEnableLockedClientFeatures);

            clientPacketHandler.Subscribe(PacketDefinitions.LoginRequest, HandleLoginRequest);
            clientPacketHandler.Subscribe(PacketDefinitions.GameServerLoginRequest, HandleGameServerLoginRequest);
            clientPacketHandler.Subscribe(PacketDefinitions.SelectServerRequest, HandleSelectServerRequest);
        }
Esempio n. 3
0
 internal StaminaFilter(IServerPacketSubject serverPacketHandler, UltimaClient ultimaClient)
 {
     serverPacketHandler.RegisterOutputFilter(FilterStamina);
     this.ultimaClient = ultimaClient;
     serverPacketHandler.Subscribe(PacketDefinitions.UpdateCurrentStamina, HandleUpdateCurrentStamina);
     serverPacketHandler.Subscribe(PacketDefinitions.StatusBarInfo, HandleStatusBarInfo);
 }
Esempio n. 4
0
 public override void Intitialize(UltimaClient client)
 {
     base.Intitialize(client);
     m_LoginGump = (LoginGump)UltimaEngine.UserInterface.AddControl(new LoginGump(), 0, 0);
     m_LoginGump.OnLogin += this.OnLogin;
     UltimaVars.EngineVars.Map = -1;
 }
Esempio n. 5
0
        internal InfusionTestProxy(ITimeSource timeSource, PacketDefinitionRegistry packetRegistry = null)
        {
            packetRegistry      = packetRegistry ?? PacketDefinitionRegistryFactory.CreateClassicClient();
            ServerPacketHandler = new ServerPacketHandler(PacketDefinitionRegistryFactory.CreateClassicClient());
            ClientPacketHandler = new ClientPacketHandler(PacketDefinitionRegistryFactory.CreateClassicClient());
            Server = new UltimaServer(ServerPacketHandler, packet =>
            {
                var filteredPacket = ClientPacketHandler.FilterOutput(packet);
                if (filteredPacket.HasValue)
                {
                    packetsSentToServer.Add(filteredPacket.Value);
                }
            }, packetRegistry);
            Client = new UltimaClient(ClientPacketHandler, packet =>
            {
                var filteredPacket = ServerPacketHandler.FilterOutput(packet);
                if (filteredPacket.HasValue)
                {
                    packetsSentToClient.Add(filteredPacket.Value);
                }
            });

            var console = new NullConsole();

            Api = new Legacy(new LogConfiguration(), new CommandHandler(console), Server, Client, console, packetRegistry,
                             timeSource, ClilocSource, KeywordSource, new MemoryConfigBagRepository(), new NullInjectionWindow(), new NullSoundPlayer());
            UO.Initialize(Api);
            ServerApi = new TestServerApi(PacketReceivedFromServer, Api);
        }
Esempio n. 6
0
        public PlayerObservers(Player player, UltimaClient client, UltimaServer server, IConsole console,
                               Legacy legacyApi, GameObjectCollection gameObjects, EventJournalSource eventJournalSource,
                               PacketDefinitionRegistry packetRegistry)
        {
            this.client             = client;
            this.server             = server;
            this.player             = player;
            this.console            = console;
            this.legacyApi          = legacyApi;
            this.gameObjects        = gameObjects;
            this.eventJournalSource = eventJournalSource;
            this.packetRegistry     = packetRegistry;
            IClientPacketSubject clientPacketSubject = client;

            clientPacketSubject.Subscribe(PacketDefinitions.MoveRequest, HandleMoveRequest);
            clientPacketSubject.RegisterOutputFilter(FilterSentClientPackets);

            server.RegisterFilter(FilterServerPackets);

            server.Subscribe(PacketDefinitions.CharacterLocaleAndBody, HandleCharLocaleAndBodyPacket);
            server.Subscribe(PacketDefinitions.DrawGamePlayer, HandleDrawGamePlayerPacket);
            server.Subscribe(PacketDefinitions.CharMoveRejection, HandleCharMoveRejectionPacket);
            server.Subscribe(PacketDefinitions.UpdateCurrentHealth, HandleUpdateCurrentHealthPacket);
            server.Subscribe(PacketDefinitions.UpdateCurrentStamina, HandleUpdateCurrentStaminaPacket);
            server.Subscribe(PacketDefinitions.UpdateCurrentMana, HandleUpdateCurrentManaPacket);
            server.Subscribe(PacketDefinitions.StatusBarInfo, HandleStatusBarInfoPacket);
            server.Subscribe(PacketDefinitions.SendSkills, HandleSendSkillsPacket);
            server.Subscribe(PacketDefinitions.DrawObject, HandleDrawObjectPacket);
            server.Subscribe(PacketDefinitions.AllowRefuseAttack, HandleAllowRefuseAttack);
            server.Subscribe(PacketDefinitions.UpdatePlayer, HandleUpdatePlayerPacket);
            server.Subscribe(PacketDefinitions.BoatMoving, HandleBoatMovingPacket);

            clientPacketSubject.Subscribe(PacketDefinitions.RequestSkills, HandleRequestSkills);
        }
Esempio n. 7
0
 public override void Intitialize(UltimaClient client)
 {
     base.Intitialize(client);
     m_SelectServerGump = (SelectServerGump)UltimaEngine.UserInterface.AddControl(new SelectServerGump(), 0, 0);
     m_SelectServerGump.OnBackToLoginScreen += this.OnBackToLoginScreen;
     m_SelectServerGump.OnSelectLastServer += this.OnSelectLastServer;
     m_SelectServerGump.OnSelectServer += this.OnSelectServer;
 }
Esempio n. 8
0
 internal LightObserver(IServerPacketSubject serverPacketHandler, UltimaClient client, Player player, Legacy legacy)
 {
     this.client = client;
     this.player = player;
     this.legacy = legacy;
     serverPacketHandler.RegisterFilter(FilterBlockedServerPackets);
     serverPacketHandler.Subscribe(PacketDefinitions.PersonalLightLevel, HandlePersonalLightLevelPacket);
 }
Esempio n. 9
0
 public override void Intitialize(UltimaClient client)
 {
     base.Intitialize(client);
     m_Gump = (LoggingInGump)UltimaEngine.UserInterface.AddControl(new LoggingInGump(), 0, 0);
     m_Gump.OnCancelLogin += this.OnCancelLogin;
     if (Client.IsConnected)
         Client.Disconnect();
 }
Esempio n. 10
0
 public override void Intitialize(UltimaClient client)
 {
     base.Intitialize(client);
     m_CharListGump = (CharacterListGump)UltimaEngine.UserInterface.AddControl(new CharacterListGump(), 0, 0);
     m_CharListGump.OnBackToSelectServer += this.OnBackToSelectServer;
     m_CharListGump.OnLoginWithCharacter += this.OnLoginWithCharacter;
     m_CharListGump.OnDeleteCharacter += this.OnDeleteCharacter;
     m_CharListGump.OnNewCharacter += this.OnNewCharacter;
 }
Esempio n. 11
0
        internal Phantoms(UltimaClient ultimaClient, IServerPacketSubject serverPacketSubject, PacketDefinitionRegistry packetRegistry)
        {
            this.ultimaClient   = ultimaClient;
            this.packetRegistry = packetRegistry;

            var clientPacketSubject = (IClientPacketSubject)ultimaClient;

            clientPacketSubject.RegisterFilter(PhantomsFilter);

            serverPacketSubject.Subscribe(PacketDefinitions.DrawObject, HandleDrawObject);
        }
Esempio n. 12
0
        public GumpObservers(UltimaServer server, UltimaClient client, EventJournalSource eventSource, Cancellation cancellation)
        {
            this.server       = server;
            this.client       = client;
            this.eventSource  = eventSource;
            this.cancellation = cancellation;
            server.RegisterFilter(FilterSendGumpMenuDialog);

            IClientPacketSubject clientPacketSubject = client;

            clientPacketSubject.RegisterFilter(FilterGumpMenuSelection);
            clientPacketSubject.Subscribe(PacketDefinitions.GumpMenuSelection, GumpMenuSelectionRequest);
        }
Esempio n. 13
0
        internal Legacy(Configuration configuration, CommandHandler commandHandler,
                        UltimaServer ultimaServer, UltimaClient ultimaClient, ILogger logger)
        {
            Trace = new GlobalTrace(logger);

            cancellation       = new Cancellation(() => CancellationToken);
            eventJournalSource = new EventJournalSource();
            Me = new Player(() => GameObjects.OfType <Item>().OnLayer(Layer.Mount).FirstOrDefault() != null,
                            ultimaServer, this, eventJournalSource);
            gumpObservers       = new GumpObservers(ultimaServer, ultimaClient, eventJournalSource, cancellation);
            GameObjects         = new GameObjectCollection(Me);
            Items               = new ItemCollection(GameObjects);
            Mobiles             = new MobileCollection(GameObjects);
            Corpses             = new CorpseCollection(GameObjects);
            itemsObserver       = new ItemsObservers(GameObjects, ultimaServer, ultimaClient, this, eventJournalSource);
            Me.LocationChanged += itemsObserver.OnPlayerPositionChanged;
            journalSource       = new SpeechJournalSource();
            journalSource.NewMessageReceived +=
                (sender, entry) => eventJournalSource.Publish(new SpeechReceivedEvent(entry));
            Journal          = new SpeechJournal(journalSource, cancellation, () => DefaultTimeout, Trace.JournalTrace);
            journalObservers = new JournalObservers(journalSource, ultimaServer);
            targeting        = new Targeting(ultimaServer, ultimaClient, cancellation, eventJournalSource);

            blockedPacketsFilters = new BlockedClientPacketsFilters(ultimaClient);
            lightObserver         = new LightObserver(ultimaServer, ultimaClient, Me, this);
            weatherObserver       = new WeatherObserver(ultimaServer, ultimaClient, this);
            soundObserver         = new SoundObserver(ultimaServer, eventJournalSource);
            questArrowObserver    = new QuestArrowObserver(ultimaServer, eventJournalSource);
            shapeShifter          = new ShapeshiftingFilter(ultimaServer, ultimaClient);
            var speechRequestObserver = new SpeechRequestObserver(ultimaClient, commandHandler, eventJournalSource, logger);
            var staminaFilter         = new StaminaFilter(ultimaServer, ultimaClient);

            dialogBoxObervers = new DialogBoxObservers(ultimaServer, eventJournalSource);

            playerObservers = new PlayerObservers(Me, ultimaClient, ultimaServer, logger, this, GameObjects, eventJournalSource);
            playerObservers.WalkRequestDequeued += Me.OnWalkRequestDequeued;

            this.logger = logger;
            Server      = ultimaServer;
            Client      = ultimaClient;

            CommandHandler = commandHandler;
            CommandHandler.CancellationTokenCreated += (sender, token) => CancellationToken = token;

            Configuration      = configuration;
            legacyEventJournal = CreateEventJournal();

            ClientFilters = new LegacyFilters(staminaFilter, lightObserver, weatherObserver, soundObserver, shapeShifter);
            RegisterDefaultCommands();
        }
Esempio n. 14
0
        public Targeting(UltimaServer server, UltimaClient client, Cancellation cancellation,
                         EventJournalSource eventSource)
        {
            this.server       = server;
            this.client       = client;
            this.cancellation = cancellation;
            this.eventSource  = eventSource;
            server.Subscribe(PacketDefinitions.TargetCursor, HanldeServerTargetCursorPacket);
            eventJournal = new EventJournal(eventSource, cancellation);

            IClientPacketSubject clientPacketSubject = client;

            clientPacketSubject.RegisterFilter(FilterClientTargetCursorPacket);

            IServerPacketSubject serverPacketSubject = server;

            serverPacketSubject.RegisterFilter(FilterSeverTargetCursorPacket);
        }
Esempio n. 15
0
        public GumpObservers(UltimaServer server, UltimaClient client, EventJournalSource eventSource,
                             Cancellation cancellation, PacketDefinitionRegistry packetRegistry)
        {
            this.server         = server;
            this.client         = client;
            this.eventSource    = eventSource;
            this.cancellation   = cancellation;
            this.packetRegistry = packetRegistry;
            server.RegisterFilter(FilterSendGumpMenuDialog);

            IClientPacketSubject clientPacketSubject = client;

            clientPacketSubject.RegisterFilter(FilterGumpMenuSelection);
            clientPacketSubject.Subscribe(PacketDefinitions.GumpMenuSelection, GumpMenuSelectionRequest);

            IServerPacketSubject serverPacketSubject = server;

            serverPacketSubject.Subscribe(PacketDefinitions.SendGumpMenuDialog, HandleGump);
            serverPacketSubject.Subscribe(PacketDefinitions.CompressedGump, HandleGump);
        }
Esempio n. 16
0
 public WeatherObserver(IServerPacketSubject serverPacketHandler, UltimaClient client, Legacy legacy)
 {
     this.client = client;
     this.legacy = legacy;
     serverPacketHandler.RegisterFilter(FilterBlockedServerPackets);
 }
Esempio n. 17
0
 public void Initialize(UltimaClient client)
 {
     Client = client;
     OnInitialize();
 }
Esempio n. 18
0
 internal WalkingObserver(IClientPacketSubject clientPacketSubject, UltimaClient client, Player player)
 {
     clientPacketSubject.RegisterFilter(FilterClientPackets);
     this.client = client;
     this.player = player;
 }
Esempio n. 19
0
 public SceneManager(UltimaClient client)
 {
     Client = client;
 }
Esempio n. 20
0
 public virtual void Intitialize(UltimaClient client)
 {
     Client = client;
 }
Esempio n. 21
0
 public override void Intitialize(UltimaClient client)
 {
     base.Intitialize(client);
     m_Status = CreateCharacterSceneStates.Default;
     openSkillsGump();
 }
Esempio n. 22
0
 public ShapeshiftingFilter(IServerPacketSubject serverPacketHandler, UltimaClient client)
 {
     serverPacketHandler.RegisterOutputFilter(FilterItemShapes);
 }
Esempio n. 23
0
 public ShapeshiftingFilter(IServerPacketSubject serverPacketHandler, UltimaClient client,
                            PacketDefinitionRegistry packetRegistry)
 {
     serverPacketHandler.RegisterOutputFilter(FilterItemShapes);
     this.packetRegistry = packetRegistry;
 }