auto attack added MC1.8-1.15 packet support

This commit is contained in:
ReinforceZwei 2020-03-22 15:22:15 +08:00 committed by ORelio
parent fa51d9632d
commit 833de25110
2 changed files with 76 additions and 5 deletions

View file

@ -628,6 +628,7 @@ namespace MinecraftClient.Protocol.Handlers
handler.OnEntityProperties(EntityID, keys); handler.OnEntityProperties(EntityID, keys);
break; break;
case PacketIncomingType.TimeUpdate: case PacketIncomingType.TimeUpdate:
if (login_phase) break;
long WorldAge = dataTypes.ReadNextLong(packetData); long WorldAge = dataTypes.ReadNextLong(packetData);
long TimeOfday = dataTypes.ReadNextLong(packetData); long TimeOfday = dataTypes.ReadNextLong(packetData);
handler.OnTimeUpdate(WorldAge, TimeOfday); handler.OnTimeUpdate(WorldAge, TimeOfday);

View file

@ -42,6 +42,17 @@ namespace MinecraftClient.Protocol.Handlers
case 0x2D: return PacketIncomingType.OpenWindow; case 0x2D: return PacketIncomingType.OpenWindow;
case 0x2E: return PacketIncomingType.CloseWindow; case 0x2E: return PacketIncomingType.CloseWindow;
case 0x2F: return PacketIncomingType.SetSlot; case 0x2F: return PacketIncomingType.SetSlot;
// Set Cooldown does not exists
case 0x03: return PacketIncomingType.TimeUpdate;
// Entity handling
case 0x0E: return PacketIncomingType.SpawnEntity; // for non-living entity
case 0x0F: return PacketIncomingType.SpawnLivingEntity; // for living entity
case 0x13: return PacketIncomingType.DestroyEntities;
case 0x15: return PacketIncomingType.EntityPosition;
case 0x17: return PacketIncomingType.EntityPositionAndRotation;
case 0x20: return PacketIncomingType.EntityProperties;
case 0x18: return PacketIncomingType.EntityTeleport;
default: return PacketIncomingType.UnknownPacket; default: return PacketIncomingType.UnknownPacket;
} }
} }
@ -69,6 +80,17 @@ namespace MinecraftClient.Protocol.Handlers
case 0x16: return PacketIncomingType.SetSlot; case 0x16: return PacketIncomingType.SetSlot;
//NetworkCompressionTreshold removed in 1.9 //NetworkCompressionTreshold removed in 1.9
case 0x32: return PacketIncomingType.ResourcePackSend; case 0x32: return PacketIncomingType.ResourcePackSend;
case 0x17: return PacketIncomingType.SetCooldown;
case 0x44: return PacketIncomingType.TimeUpdate;
// Entity handling
case 0x00: return PacketIncomingType.SpawnEntity; // for non-living entity
case 0x03: return PacketIncomingType.SpawnLivingEntity; // for living entity
case 0x30: return PacketIncomingType.DestroyEntities;
case 0x25: return PacketIncomingType.EntityPosition;
case 0x26: return PacketIncomingType.EntityPositionAndRotation;
case 0x4A: return PacketIncomingType.EntityProperties;
case 0x49: return PacketIncomingType.EntityTeleport;
default: return PacketIncomingType.UnknownPacket; default: return PacketIncomingType.UnknownPacket;
} }
} }
@ -94,6 +116,17 @@ namespace MinecraftClient.Protocol.Handlers
case 0x12: return PacketIncomingType.CloseWindow; case 0x12: return PacketIncomingType.CloseWindow;
case 0x13: return PacketIncomingType.OpenWindow; case 0x13: return PacketIncomingType.OpenWindow;
case 0x33: return PacketIncomingType.ResourcePackSend; case 0x33: return PacketIncomingType.ResourcePackSend;
case 0x17: return PacketIncomingType.SetCooldown;
case 0x46: return PacketIncomingType.TimeUpdate;
// Entity handling
case 0x00: return PacketIncomingType.SpawnEntity; // for non-living entity
case 0x03: return PacketIncomingType.SpawnLivingEntity; // for living entity
case 0x31: return PacketIncomingType.DestroyEntities;
case 0x26: return PacketIncomingType.EntityPosition;
case 0x27: return PacketIncomingType.EntityPositionAndRotation;
case 0x4D: return PacketIncomingType.EntityProperties;
case 0x4B: return PacketIncomingType.EntityTeleport;
default: return PacketIncomingType.UnknownPacket; default: return PacketIncomingType.UnknownPacket;
} }
} }
@ -119,6 +152,17 @@ namespace MinecraftClient.Protocol.Handlers
case 0x14: return PacketIncomingType.WindowItems; case 0x14: return PacketIncomingType.WindowItems;
case 0x16: return PacketIncomingType.SetSlot; case 0x16: return PacketIncomingType.SetSlot;
case 0x34: return PacketIncomingType.ResourcePackSend; case 0x34: return PacketIncomingType.ResourcePackSend;
case 0x17: return PacketIncomingType.SetCooldown;
case 0x47: return PacketIncomingType.TimeUpdate;
// Entity handling
case 0x00: return PacketIncomingType.SpawnEntity; // for non-living entity
case 0x03: return PacketIncomingType.SpawnLivingEntity; // for living entity
case 0x32: return PacketIncomingType.DestroyEntities;
case 0x26: return PacketIncomingType.EntityPosition;
case 0x27: return PacketIncomingType.EntityPositionAndRotation;
case 0x4E: return PacketIncomingType.EntityProperties;
case 0x4C: return PacketIncomingType.EntityTeleport;
default: return PacketIncomingType.UnknownPacket; default: return PacketIncomingType.UnknownPacket;
} }
} }
@ -144,6 +188,17 @@ namespace MinecraftClient.Protocol.Handlers
case 0x14: return PacketIncomingType.OpenWindow; case 0x14: return PacketIncomingType.OpenWindow;
case 0x15: return PacketIncomingType.WindowItems; case 0x15: return PacketIncomingType.WindowItems;
case 0x17: return PacketIncomingType.SetSlot; case 0x17: return PacketIncomingType.SetSlot;
case 0x18: return PacketIncomingType.SetCooldown;
case 0x4A: return PacketIncomingType.TimeUpdate;
// Entity handling
case 0x00: return PacketIncomingType.SpawnEntity; // for non-living entity
case 0x03: return PacketIncomingType.SpawnLivingEntity; // for living entity
case 0x35: return PacketIncomingType.DestroyEntities;
case 0x28: return PacketIncomingType.EntityPosition;
case 0x29: return PacketIncomingType.EntityPositionAndRotation;
case 0x52: return PacketIncomingType.EntityProperties;
case 0x50: return PacketIncomingType.EntityTeleport;
default: return PacketIncomingType.UnknownPacket; default: return PacketIncomingType.UnknownPacket;
} }
} }
@ -169,6 +224,16 @@ namespace MinecraftClient.Protocol.Handlers
case 0x13: return PacketIncomingType.CloseWindow; case 0x13: return PacketIncomingType.CloseWindow;
case 0x14: return PacketIncomingType.WindowItems; case 0x14: return PacketIncomingType.WindowItems;
case 0x16: return PacketIncomingType.SetSlot; case 0x16: return PacketIncomingType.SetSlot;
case 0x17: return PacketIncomingType.SetCooldown;
case 0x4E: return PacketIncomingType.TimeUpdate;
// Entity handling
case 0x00: return PacketIncomingType.SpawnEntity; // for non-living entity
case 0x03: return PacketIncomingType.SpawnLivingEntity; // for living entity
case 0x37: return PacketIncomingType.DestroyEntities;
case 0x28: return PacketIncomingType.EntityPosition;
case 0x29: return PacketIncomingType.EntityPositionAndRotation;
case 0x58: return PacketIncomingType.EntityProperties;
case 0x56: return PacketIncomingType.EntityTeleport;
default: return PacketIncomingType.UnknownPacket; default: return PacketIncomingType.UnknownPacket;
} }
} }
@ -176,9 +241,6 @@ namespace MinecraftClient.Protocol.Handlers
{ {
switch (packetID) switch (packetID)
{ {
// modified by reinforce
case 0x00: return PacketIncomingType.SpawnEntity;
case 0x03: return PacketIncomingType.SpawnLivingEntity;
case 0x21: return PacketIncomingType.KeepAlive; case 0x21: return PacketIncomingType.KeepAlive;
case 0x26: return PacketIncomingType.JoinGame; case 0x26: return PacketIncomingType.JoinGame;
case 0x0F: return PacketIncomingType.ChatMessage; case 0x0F: return PacketIncomingType.ChatMessage;
@ -197,12 +259,15 @@ namespace MinecraftClient.Protocol.Handlers
case 0x14: return PacketIncomingType.CloseWindow; case 0x14: return PacketIncomingType.CloseWindow;
case 0x15: return PacketIncomingType.WindowItems; case 0x15: return PacketIncomingType.WindowItems;
case 0x17: return PacketIncomingType.SetSlot; case 0x17: return PacketIncomingType.SetSlot;
case 0x38: return PacketIncomingType.DestroyEntities;
case 0x18: return PacketIncomingType.SetCooldown; case 0x18: return PacketIncomingType.SetCooldown;
case 0x4F: return PacketIncomingType.TimeUpdate;
// Entity handling
case 0x00: return PacketIncomingType.SpawnEntity; // for non-living entity
case 0x03: return PacketIncomingType.SpawnLivingEntity; // for living entity
case 0x38: return PacketIncomingType.DestroyEntities;
case 0x29: return PacketIncomingType.EntityPosition; case 0x29: return PacketIncomingType.EntityPosition;
case 0x2A: return PacketIncomingType.EntityPositionAndRotation; case 0x2A: return PacketIncomingType.EntityPositionAndRotation;
case 0x59: return PacketIncomingType.EntityProperties; case 0x59: return PacketIncomingType.EntityProperties;
case 0x4F: return PacketIncomingType.TimeUpdate;
case 0x57: return PacketIncomingType.EntityTeleport; case 0x57: return PacketIncomingType.EntityTeleport;
default: return PacketIncomingType.UnknownPacket; default: return PacketIncomingType.UnknownPacket;
} }
@ -230,6 +295,7 @@ namespace MinecraftClient.Protocol.Handlers
case PacketOutgoingType.TabComplete: return 0x14; case PacketOutgoingType.TabComplete: return 0x14;
case PacketOutgoingType.PlayerPosition: return 0x04; case PacketOutgoingType.PlayerPosition: return 0x04;
case PacketOutgoingType.PlayerPositionAndLook: return 0x06; case PacketOutgoingType.PlayerPositionAndLook: return 0x06;
case PacketOutgoingType.InteractEntity: return 0x02;
case PacketOutgoingType.TeleportConfirm: throw new InvalidOperationException("Teleport confirm is not supported in protocol " + protocol); case PacketOutgoingType.TeleportConfirm: throw new InvalidOperationException("Teleport confirm is not supported in protocol " + protocol);
} }
} }
@ -247,6 +313,7 @@ namespace MinecraftClient.Protocol.Handlers
case PacketOutgoingType.PlayerPosition: return 0x0C; case PacketOutgoingType.PlayerPosition: return 0x0C;
case PacketOutgoingType.PlayerPositionAndLook: return 0x0D; case PacketOutgoingType.PlayerPositionAndLook: return 0x0D;
case PacketOutgoingType.TeleportConfirm: return 0x00; case PacketOutgoingType.TeleportConfirm: return 0x00;
case PacketOutgoingType.InteractEntity: return 0x0A;
} }
} }
else if (protocol <= Protocol18Handler.MC112Version) // MC 1.12 else if (protocol <= Protocol18Handler.MC112Version) // MC 1.12
@ -263,6 +330,7 @@ namespace MinecraftClient.Protocol.Handlers
case PacketOutgoingType.PlayerPosition: return 0x0E; case PacketOutgoingType.PlayerPosition: return 0x0E;
case PacketOutgoingType.PlayerPositionAndLook: return 0x0F; case PacketOutgoingType.PlayerPositionAndLook: return 0x0F;
case PacketOutgoingType.TeleportConfirm: return 0x00; case PacketOutgoingType.TeleportConfirm: return 0x00;
case PacketOutgoingType.InteractEntity: return 0x0B;
} }
} }
else if (protocol <= Protocol18Handler.MC1122Version) // 1.12.2 else if (protocol <= Protocol18Handler.MC1122Version) // 1.12.2
@ -279,6 +347,7 @@ namespace MinecraftClient.Protocol.Handlers
case PacketOutgoingType.PlayerPosition: return 0x0D; case PacketOutgoingType.PlayerPosition: return 0x0D;
case PacketOutgoingType.PlayerPositionAndLook: return 0x0E; case PacketOutgoingType.PlayerPositionAndLook: return 0x0E;
case PacketOutgoingType.TeleportConfirm: return 0x00; case PacketOutgoingType.TeleportConfirm: return 0x00;
case PacketOutgoingType.InteractEntity: return 0x0A;
} }
} }
else if (protocol < Protocol18Handler.MC114Version) // MC 1.13 to 1.13.2 else if (protocol < Protocol18Handler.MC114Version) // MC 1.13 to 1.13.2
@ -295,6 +364,7 @@ namespace MinecraftClient.Protocol.Handlers
case PacketOutgoingType.PlayerPosition: return 0x10; case PacketOutgoingType.PlayerPosition: return 0x10;
case PacketOutgoingType.PlayerPositionAndLook: return 0x11; case PacketOutgoingType.PlayerPositionAndLook: return 0x11;
case PacketOutgoingType.TeleportConfirm: return 0x00; case PacketOutgoingType.TeleportConfirm: return 0x00;
case PacketOutgoingType.InteractEntity: return 0x0D;
} }
} }
else // MC 1.14 to 1.15 else // MC 1.14 to 1.15