public void P02HandShake() { MemoryStream str1 = new MemoryStream(); MemoryStream str2 = new MemoryStream(); TestPacket tp = new TestPacket(str1); tp.Byte = 2; tp.Byte = 22; tp.String = "ags131"; tp.String = "localhost"; tp.Int = 25565; Packet_Handshake p1 = new Packet_Handshake(); p1.Stream = str2; p1.Host = "localhost"; p1.Port = 25565; p1.ProtocolVersion = 22; p1.Username = "******"; p1.Write(); byte[] expect = str1.ToArray(); byte[] actual = str2.ToArray(); Assert.AreEqual(str1.Length, str2.Length, "Arrays have different lengths!"); CollectionAssert.AreEqual(expect, actual, "Arrays have different contents!"); }
public void connect(string address, int port) { registerPacket(PacketType.KeepAlive, typeof(Packet_KeepAlive)); registerPacket(PacketType.Login, typeof(Packet_Login)); registerPacket(PacketType.Handshake, typeof(Packet_Handshake)); registerPacket(PacketType.Chat, typeof(Packet_Chat)); registerPacket(PacketType.Time, typeof(Packet_Time)); registerPacket(PacketType.EntityEquipment, typeof(Packet_EntityEquipment)); registerPacket(PacketType.SpawnPosition, typeof(Packet_SpawnPosition)); registerPacket(PacketType.UseEntity, typeof(Packet_UseEntity)); registerPacket(PacketType.UpdateHealth, typeof(Packet_UpdateHealth)); registerPacket(PacketType.Respawn, typeof(Packet_Respawn)); registerPacket(PacketType.Flying, typeof(Packet_Flying)); registerPacket(PacketType.PlayerPos, typeof(Packet_PlayerPos)); registerPacket(PacketType.PlayerLook, typeof(Packet_PlayerLook)); registerPacket(PacketType.PlayerPosAndLook, typeof(Packet_PlayerPosAndLook)); registerPacket(PacketType.PlayerDigging, typeof(Packet_PlayerDigging)); registerPacket(PacketType.HeldItemChange, typeof(Packet_HoldingChange)); registerPacket(PacketType.UseBed, typeof(Packet_UseBed)); registerPacket(PacketType.Animation, typeof(Packet_Animation)); registerPacket(PacketType.EntityAction, typeof(Packet_EntityAction)); registerPacket(PacketType.NamedEntitySpawn, typeof(Packet_NamedEntitySpawn)); registerPacket(PacketType.PickupSpawn, typeof(Packet_PickupSpawn)); registerPacket(PacketType.CollectItem, typeof(Packet_CollectItem)); registerPacket(PacketType.AddObjVehicle, typeof(Packet_AddObjVehicle)); registerPacket(PacketType.MobSpawn, typeof(Packet_MobSpawn)); registerPacket(PacketType.EntityPainting, typeof(Packet_EntityPainting)); registerPacket(PacketType.ExpOrb, typeof(Packet_ExpOrb)); registerPacket(PacketType.EntityVel, typeof(Packet_EntityVel)); registerPacket(PacketType.DestroyEntity, typeof(Packet_DestroyEntity)); registerPacket(PacketType.Entity, typeof(Packet_Entity)); registerPacket(PacketType.EntityRelativeMove, typeof(Packet_EntityRelativeMove)); registerPacket(PacketType.EntityLook, typeof(Packet_EntityLook)); registerPacket(PacketType.EntityLookAndRelativeMove, typeof(Packet_EntityLookAndRelativeMove)); registerPacket(PacketType.EntityTeleport, typeof(Packet_EntityTeleport)); registerPacket(PacketType.EntityHeadLook, typeof(Packet_EntityHeadLook)); registerPacket(PacketType.EntityStatus, typeof(Packet_EntityStatus)); registerPacket(PacketType.AttachEntity, typeof(Packet_AttachEntity)); registerPacket(PacketType.EntityMetadata, typeof(Packet_EntityMetadata)); registerPacket(PacketType.EntityEffect, typeof(Packet_EntityEffect)); registerPacket(PacketType.RemoveEntityEffect, typeof(Packet_RemoveEntityEffect)); registerPacket(PacketType.Experience, typeof(Packet_Experience)); registerPacket(PacketType.EntityProperties, typeof(Packet_EntityProperties)); //registerPacket(PacketType.PreChunk, typeof(Packet_PreChunk)); registerPacket(PacketType.MapChunk, typeof(Packet_MapChunk)); registerPacket(PacketType.MultiBlockChange, typeof(Packet_MultiBlockChange)); registerPacket(PacketType.BlockChange, typeof(Packet_BlockChange)); registerPacket(PacketType.BlockAction, typeof(Packet_BlockAction)); registerPacket(PacketType.BlockBreakAnimation, typeof(Packet_BlockBreakingAnimation)); registerPacket(PacketType.MapChunkBulk, typeof(Packet_MapChunkBulk)); registerPacket(PacketType.Explosion, typeof(Packet_Explosion)); registerPacket(PacketType.SoundEffect, typeof(Packet_SoundEffect)); registerPacket(PacketType.NamedSoundEffect, typeof(Packet_NamedSoundEffect)); registerPacket(PacketType.GameStateChange, typeof(Packet_GameStateChange)); //registerPacket(PacketType.NewOrInvalidState, typeof(Packet_NewOrInvalidState)); registerPacket(PacketType.Thunder, typeof(Packet_Thunder)); registerPacket(PacketType.OpenWnd, typeof(Packet_OpenWnd)); registerPacket(PacketType.CloseWnd, typeof(Packet_CloseWnd)); registerPacket(PacketType.WndClick, typeof(Packet_WndClick)); registerPacket(PacketType.SetSlot, typeof(Packet_SetSlot)); registerPacket(PacketType.WndItems, typeof(Packet_WndItems)); registerPacket(PacketType.UpdateWndProp, typeof(Packet_UpdateWndProp)); registerPacket(PacketType.Transaction, typeof(Packet_Transaction)); registerPacket(PacketType.CreativeInventoryAction, typeof(Packet_CreativeInventoryAction)); registerPacket(PacketType.UpdateSign, typeof(Packet_UpdateSign)); registerPacket(PacketType.ItemData, typeof(Packet_ItemData)); registerPacket(PacketType.EntityTileUpdate, typeof(Packet_EntityTileUpdate)); registerPacket(PacketType.IncStatistic, typeof(Packet_IncStatistic)); registerPacket(PacketType.PlayerListItem, typeof(Packet_PlayerListItem)); registerPacket(PacketType.PlayerAbilities, typeof(Packet_PlayerAbilities)); registerPacket(PacketType.ClientStatus, typeof(Packet_ClientStatus)); registerPacket(PacketType.PluginMessage, typeof(Packet_PluginMessage)); registerPacket(PacketType.EncryptionResponse, typeof(Packet_EncryptionResponse)); registerPacket(PacketType.EncryptionRequest, typeof(Packet_EncryptionRequest)); //registerPacket(PacketType.ServerListPing, typeof(Packet_ServerListPing)); registerPacket(PacketType.Kick, typeof(Packet_Kick)); //PacketMap.Initialize(); if (File.Exists("Out.bin")) { File.Delete("Out.bin"); } output("Connecting..."); packetReceived += new packetReceivedEventHandler(onPacketReceived); client.NoDelay = true; client.Connect(address, port); str = client.GetStream(); Thread packetReceiverThread = new Thread(new ThreadStart(packetReceiver)); packetReceiverThread.Name = "packetReceiver"; //packetReceiverThread.Start(); Thread packetHandlerThread = new Thread(new ThreadStart(packetHandler)); packetHandlerThread.Name = "packetHandler"; packetHandlerThread.Start(); Packet_Handshake packet = new Packet_Handshake(); packet.ProtocolVersion = Protocol; packet.Username = name; packet.Host = address; packet.Port = port; packets.Enqueue(packet); }