Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void HandlePacket(Client sender, Stream stream)
- {
- // Use { } in every case so you can keep using variable names...
- int packet__id = stream.ReadByte();
- Console.WriteLine("Received: " + packet__id);
- switch (packet__id)
- {
- // Ping
- case 0:
- {
- new Packet(ReadByteArray(stream, 4)).Enqueue();
- }
- break;
- // Login Request
- case 1:
- {
- sender.EntityID = ReadInt(stream);
- sender.world.leveltype = ReadString(stream);
- sender.gamemode = ReadByte(stream);
- sender.world.Dimension = ReadByte(stream);
- sender.Difficulty = ReadByte(stream);
- sender.ServerMaxPlayers = ReadByte(stream);
- }
- break;
- // Chat Message
- case 3:
- {
- sender.Chat(null, ReadString(stream));
- }
- break;
- // Time Update
- case 4:
- {
- sender.world.Time = ReadLong(stream);
- }
- break;
- // Entity Equipment
- case 5:
- {
- // this is me really really really hoping it does all reading methods in this order...
- // Entity.FindEntity(ReadInt(stream)).Equipment[ReadShort(stream)] = ReadSlot(stream);
- // not sure so the ugly way ,-,
- Entity entity = Entity.FindEntity(ReadInt(stream));
- short slot = ReadShort(stream);
- entity.Equipment[slot] = ReadSlot(stream);
- }
- break;
- // Spawn Position
- case 6:
- {
- sender.world.SpawnX = ReadInt(stream);
- sender.world.SpawnY = ReadInt(stream);
- sender.world.SpawnZ = ReadInt(stream);
- }
- break;
- // Update Health
- case 8:
- {
- sender.Health = ReadShort(stream);
- sender.Food = ReadShort(stream);
- sender.FoodSaturation = ReadFloat(stream);
- }
- break;
- // Respawn
- case 9:
- {
- sender.world.Dimension = ReadInt(stream);
- sender.Difficulty = ReadByte(stream);
- sender.gamemode = ReadByte(stream);
- sender.world.Height = ReadShort(stream);
- sender.world.leveltype = ReadString(stream);
- }
- break;
- // Player Position And Look
- case 13:
- {
- sender.X = ReadDouble(stream);
- sender.Stance = ReadDouble(stream);
- sender.Y = ReadDouble(stream);
- sender.Z = ReadDouble(stream);
- sender.Yaw = ReadFloat(stream);
- sender.Pitch = ReadFloat(stream);
- sender.OnGround = ReadBool(stream);
- }
- break;
- // Use Bed ( idk man, but 'use' bed... I prefer calling it sleeping... )
- case 17:
- {
- Entity entity = Entity.FindEntity(ReadInt(stream));
- ReadByte(stream);
- if (entity.EntityID == sender.EntityID) { sender.BedLocationIfSleeping.X = ReadInt(stream); sender.BedLocationIfSleeping.Y = ReadByte(stream); sender.BedLocationIfSleeping.Z = ReadInt(stream); }
- else { entity.BedLocationIfSleeping.X = ReadInt(stream); entity.BedLocationIfSleeping.Y = ReadByte(stream); entity.BedLocationIfSleeping.Z = ReadInt(stream); }
- }
- break;
- // Animation
- case 18:
- {
- ReadInt(stream);
- ReadByte(stream);
- // just discarding the answers... don't really know the use of this in a bot
- }
- break;
- // Spawn named entity
- case 20:
- {
- int id = ReadInt(stream);
- Entity entity = null;
- // not sure if existing entity or have to 'spawn' one...
- Entity.all.ForEach(delegate(Entity e) { if (e.EntityID == id) { entity = e; } });
- if (entity == null) { entity = new Entity(id); }
- entity.Username = ReadString(stream);
- entity.location.X = ReadInt(stream);
- entity.location.Y = ReadInt(stream);
- entity.location.Z = ReadInt(stream);
- entity.Yaw = ReadByte(stream);
- entity.Pitch = ReadByte(stream);
- // not -1 but 0 if empty
- entity.Equipment[0].ID = ReadShort(stream);
- //metadata..?
- //ReadShort(stream);
- byte b = ReadByte(stream);
- while (b != 0x7f)
- { b = ReadByte(stream); }
- }
- break;
- // Spawn Dropped Item
- case 21:
- {
- Entity entity = new Entity(ReadInt(stream));
- entity.ItemID = ReadShort(stream);
- entity.count = ReadByte(stream);
- entity.damage_data = ReadShort(stream);
- entity.location.X = ReadInt(stream);
- entity.location.Y = ReadInt(stream);
- entity.location.Z = ReadInt(stream);
- entity.Rotation = ReadByte(stream);
- entity.Pitch = ReadByte(stream);
- entity.Roll = ReadByte(stream);
- }
- break;
- // Collect Item (disposing)
- case 22:
- {
- ReadInt(stream);
- ReadInt(stream);
- }
- break;
- // Spawn Object / Vehicle
- case 23:
- {
- ReadInt(stream);
- ReadByte(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadShort(stream);
- ReadShort(stream);
- ReadShort(stream);
- }
- break;
- // spawn mob
- case 24:
- {
- ReadInt(stream);
- ReadByte(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadByte(stream);
- ReadByte(stream);
- ReadByte(stream);
- ReadShort(stream);
- ReadShort(stream);
- ReadShort(stream);
- byte b = ReadByte(stream);
- while (b != 0x7f)
- { b = ReadByte(stream); }
- }
- break;
- // spawn painting.... >.>
- case 25:
- {
- ReadInt(stream);
- ReadString(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadInt(stream);
- }
- break;
- // Spawn Experience Orb
- case 26:
- {
- ReadInt(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadInt(stream);
- ReadShort(stream);
- }
- break;
- // Entity Velocity
- case 27:
- {
- ReadInt(stream);
- ReadShort(stream);
- ReadShort(stream);
- ReadShort(stream);
- }
- break;
- // destroy entity
- case 28:
- {
- byte b = ReadByte(stream);
- ReadByteArray(stream, b * 4); // ammount of entities * int-bytes(4)
- }
- break;
- // Entity...
- case 29:
- {
- // I think the chance we're ever receiving this is 0.00001%...
- ReadInt(stream);
- }
- break;
- case 30:
- {
- ReadInt(stream);
- ReadByte(stream);
- ReadByte(stream);
- ReadByte(stream);
- }
- break;
- // Entity Look
- case 31:
- {
- ReadInt(stream);
- ReadByte(stream);
- ReadByte(stream);
- }
- break;
- // fuck dis shit
- case 32:
- {
- ReadByteArray(stream, 6);
- }
- break;
- case 33:
- {
- ReadByteArray(stream, 9);
- }
- break;
- case 34:
- {
- ReadByteArray(stream, 18);
- }
- break;
- case 37:
- {
- ReadByteArray(stream, 4);
- }
- break;
- case 38:
- {
- ReadByteArray(stream, 8);
- }
- break;
- case 39:
- {
- ReadByteArray(stream, 4);
- byte b = ReadByte(stream);
- while (b != 0x7f) { b = ReadByte(stream); }
- }
- break;
- case 40:
- {
- ReadByteArray(stream, 8);
- }
- break;
- case 41:
- {
- ReadByteArray(stream, 5);
- }
- break;
- case 42:
- {
- ReadByteArray(stream, 8);
- }
- break;
- case 51:
- {
- ReadByteArray(stream, 13);
- int len = ReadInt(stream);
- ReadByteArray(stream, len);
- }
- break;
- case 52:
- {
- ReadByteArray(stream, 10);
- int len = ReadInt(stream);
- if (len > 0) { ReadByteArray(stream, len); }
- }
- break;
- case 53:
- {
- ReadByteArray(stream, 12);
- }
- break;
- case 54:
- {
- ReadByteArray(stream, 13);
- }
- break;
- case 55:
- {
- ReadByteArray(stream, 17);
- }
- break;
- case 56:
- {
- int len = ReadShort(stream);
- int len2 = ReadInt(stream);
- ReadByteArray(stream, len2);
- ReadByteArray(stream, len * 12);
- }
- break;
- case 60:
- {
- ReadByteArray(stream, 28);
- int len = ReadInt(stream);
- ReadByteArray(stream, len * 3 + 12);
- }
- break;
- case 61:
- {
- ReadByteArray(stream, 17);
- }
- break;
- case 62:
- {
- ReadString(stream);
- ReadByteArray(stream, 17);
- }
- break;
- case 70:
- {
- ReadByteArray(stream, 2);
- }
- break;
- case 71:
- {
- ReadByteArray(stream, 17);
- }
- break;
- case 72:
- {
- ReadShort(stream);
- ReadString(stream);
- ReadByte(stream);
- }
- break;
- case 65:
- {
- ReadByte(stream);
- }
- break;
- case 103:
- {
- ReadByteArray(stream, 3);
- ReadSlot(stream);
- }
- break;
- case 104:
- {
- ReadByte(stream);
- short i = ReadShort(stream);
- for(;i > 0; i--)
- {
- ReadSlot(stream);
- }
- }
- break;
- case 105:
- {
- ReadByteArray(stream, 5);
- }
- break;
- case 106:
- {
- ReadByteArray(stream, 4);
- }
- break;
- case 107:
- {
- ReadShort(stream);
- ReadSlot(stream);
- }
- break;
- case 130:
- {
- ReadByteArray(stream, 10);
- ReadString(stream);
- ReadString(stream);
- ReadString(stream);
- ReadString(stream);
- }
- break;
- case 131:
- {
- ReadInt(stream);
- byte b = ReadByte(stream);
- ReadByteArray(stream, b);
- }
- break;
- case 132:
- {
- ReadByteArray(stream, 11);
- int len = ReadShort(stream);
- if (len > 0) { ReadByteArray(stream, len); }
- }
- break;
- case 200:
- {
- ReadByteArray(stream, 5);
- }
- break;
- case 201:
- {
- ReadString(stream);
- ReadByteArray(stream, 3);
- }
- break;
- case 202:
- {
- ReadByteArray(stream, 3);
- }
- break;
- case 203:
- {
- ReadString(stream);
- }
- break;
- case 250:
- {
- ReadString(stream);
- short len = ReadShort(stream);
- ReadByteArray(stream, len);
- }
- break;
- case 253:
- {
- short len1 = ReadShort(stream);
- ReadByteArray(stream, len1);
- short len2 = ReadShort(stream);
- ReadByteArray(stream, len2);
- }
- break;
- case 254:
- {
- ReadString(stream);
- short len1 = ReadShort(stream);
- ReadByteArray(stream, len1);
- short len2 = ReadShort(stream);
- ReadByteArray(stream, len2);
- }
- break;
- case 256:
- {
- ReadString(stream);
- sender.client.Close();
- }
- break;
- // Shit happens
- default:
- {
- Console.WriteLine("Received unknown packet type: " + packet__id);
- Console.WriteLine("({0})", BitConverter.ToString(BitConverter.GetBytes(packet__id)).Split('-')[3]);
- }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement