示例#1
0
        public byte[] Setup(Options options)
        {
            State = ConnectionState.Connecting;
            try
            {
                Client = new TcpClient
                {
                    ReceiveTimeout    = options.ConnectTimeout * 1000,
                    ReceiveBufferSize = 32768
                };
                Client.Connect(options.Server, options.Port);
                Stream  = new BufferedStream(Client.GetStream(), 16384);
                Handler = new DefaultPacketHandler(options.Encoding);

                try
                {
                    var result = InitializeConnection(options);
                    State = ConnectionState.Open;
                    Client.ReceiveTimeout = options.CommandTimeout * 1000;
                    Client.SendTimeout    = options.CommandTimeout * 1000;

                    return(result);
                }
                catch (Exception)
                {
                    Shutdown();
                    throw;
                }
            }
            catch (Exception)
            {
                State = ConnectionState.Closed;
                throw;
            }
        }
示例#2
0
        /// <summary>
        /// The <see cref="PacketManager"/> constructor, which is used to pre-define the packet handlers
        /// for the opcodes used by the Shaiya Origin login server.
        /// </summary>
        public PacketManager()
        {
            // The default packet handler
            _handlers[0] = new DefaultPacketHandler();

            // Define the packet handlers
            _handlers[Opcodes.LOGIN_TERMINATE]    = new ConnectionTerminatedPacketHandler();
            _handlers[Opcodes.LOGIN_HANDSHAKE]    = new HandshakePacketHandler();
            _handlers[Opcodes.LOGIN_REQUEST]      = new LoginRequestPacketHandler();
            _handlers[Opcodes.SELECT_GAME_SERVER] = new ServerSelectPacketHandler();
        }
示例#3
0
        public PacketManager()
        {
            // The default packet handler
            _handlers[0] = new DefaultPacketHandler();

            // Define the database server packet handlers
            _handlers[Opcodes.GAME_HANDSHAKE]           = new GameHandshakePacketHandler();
            _handlers[Opcodes.ACCOUNT_FACTION]          = new SelectFactionPacketHandler();
            _handlers[Opcodes.AVAILABLE_CHARACTER_NAME] = new CheckAvailableNamePacketHandler();
            _handlers[Opcodes.CREATE_CHARACTER]         = new CreateCharacterPacketHandler();
            _handlers[Opcodes.DELETE_CHARACTER]         = new DeleteCharacterPacketHandler();
            _handlers[Opcodes.CHARACTER_SELECTION]      = new SelectCharacterPacketHandler();
        }
示例#4
0
        public PacketManager()
        {
            // The default packet handler
            _handlers[0] = new DefaultPacketHandler();

            // Define the database server packet handlers
            _handlers[Opcodes.DELETE_SESSION]          = new DeleteSessionRequestHandler();
            _handlers[Opcodes.SERVER_LIST]             = new ServerListRequestHandler();
            _handlers[Opcodes.USER_GAME_CONNECT]       = new UserGameConnectRequestHandler();
            _handlers[Opcodes.GAME_USER_LOAD]          = new GameUserLoadRequestHandler();
            _handlers[Opcodes.GET_CHARACTER_LIST_DATA] = new CharacterScreenDataRequestHandler();
            _handlers[Opcodes.CHECK_AVAILABLE_NAME]    = new CheckAvailableNameRequestHandler();
            _handlers[Opcodes.SELECT_FACTION]          = new SelectFactionRequestHandler();
            _handlers[Opcodes.CREATE_CHARACTER]        = new CreateCharacterRequestHandler();
            _handlers[Opcodes.DELETE_CHARACTER]        = new DeleteCharacterRequestHandler();
            _handlers[Opcodes.LOAD_GAME_CHARACTER]     = new LoadGameCharacterDataRequestHandler();
        }