diff --git a/MinecraftClient/Commands/Entitycmd.cs b/MinecraftClient/Commands/Entitycmd.cs new file mode 100644 index 00000000..a89924fd --- /dev/null +++ b/MinecraftClient/Commands/Entitycmd.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using MinecraftClient.Inventory; + +namespace MinecraftClient.Commands +{ + class Entitycmd : Command + { + public override string CMDName { get { return "entity"; } } + public override string CMDDesc { get { return "entity "; } } + + public override string Run(McClient handler, string command, Dictionary localVars) + { + if (handler.GetEntityHandlingEnabled()) + { + string[] args = getArgs(command); + if (args.Length >= 1) + { + try + { + int entityID; + entityID = int.Parse(args[0]); + string action = args.Length > 1 + ? args[1].ToLower() + : "list"; + switch (action) + { + case "attack": + handler.InteractEntity(entityID, 1); + return "Entity attacked"; + case "use": + handler.InteractEntity(entityID, 0); + return "Entity used"; + default: + return CMDDesc; + } + } + catch (FormatException) { return CMDDesc; } + } + else + { + Dictionary entities = handler.GetEntities(); + List response = new List(); + response.Add("Entities:"); + foreach (var entity2 in entities) + { + if (entity2.Value.Type == Mapping.EntityType.Player) + response.Add(String.Format(" #{0}: {1} | {2}", entity2.Key, entity2.Value.Type, entity2.Value.Name)); + else + response.Add(String.Format(" #{0}: {1}", entity2.Key, entity2.Value.Type)); + } + response.Add(CMDDesc); + return String.Join("\n", response); + } + } + else return "Please enable entityhandling in config to use this command."; + } + } +} diff --git a/MinecraftClient/MinecraftClient.csproj b/MinecraftClient/MinecraftClient.csproj index 110e35bf..a5435b12 100644 --- a/MinecraftClient/MinecraftClient.csproj +++ b/MinecraftClient/MinecraftClient.csproj @@ -73,6 +73,8 @@ + + @@ -319,4 +321,4 @@ --> - \ No newline at end of file + diff --git a/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs b/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs index b6e792d8..e3705bc0 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs @@ -293,11 +293,11 @@ namespace MinecraftClient.Protocol.Handlers case 0x58: return PacketIncomingType.EntityProperties; case 0x56: return PacketIncomingType.EntityTeleport; case 0x41: return PacketIncomingType.EntityVelocity; - case 0x42: return PacketIncomingType.EntityEquipment; + case 0x46: return PacketIncomingType.EntityEquipment; case 0x59: return PacketIncomingType.EntityEffect; case 0x4E: return PacketIncomingType.TimeUpdate; case 0x48: return PacketIncomingType.UpdateHealth; - case 0x45: return PacketIncomingType.SetExperience; + case 0x47: return PacketIncomingType.SetExperience; case 0x3F: return PacketIncomingType.HeldItemChange; case 0x1C: return PacketIncomingType.Explosion; case 0x26: return PacketIncomingType.MapData;