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