From 33781c5de5aa4b87d54c27bc75ce4c241e30cf75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A0=D0=BE=D0=BC=D0=B0=20=D0=94=D0=B0=D0=BD=D0=B8=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2?= <35975332+Nekiplay@users.noreply.github.com> Date: Mon, 17 Aug 2020 15:27:15 +0500 Subject: [PATCH] Inventory: Show item Damage (#1213) * /inventory add show item Damage * Removing unnecessary using * Upgrade * Fix * Update Inventory.cs * add Damage * Done * Done, Fix * Remove extra space, Fix documentation --- MinecraftClient/Commands/Inventory.cs | 20 ++++++++++++++++---- MinecraftClient/Inventory/Item.cs | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/MinecraftClient/Commands/Inventory.cs b/MinecraftClient/Commands/Inventory.cs index 45070e83..ebbd6626 100644 --- a/MinecraftClient/Commands/Inventory.cs +++ b/MinecraftClient/Commands/Inventory.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using MinecraftClient.Inventory; namespace MinecraftClient.Commands @@ -86,8 +85,19 @@ namespace MinecraftClient.Commands { string displayName = item.Value.DisplayName; if (String.IsNullOrEmpty(displayName)) - response.Add(String.Format(" #{0}: {1} x{2}", item.Key, item.Value.Type, item.Value.Count)); - else response.Add(String.Format(" #{0}: {1} x{2} - {3}§8", item.Key, item.Value.Type, item.Value.Count, displayName)); + { + if (item.Value.Damage != 0) + response.Add(String.Format(" #{0}: {1} x{2} | Damage: {3}", item.Key, item.Value.Type, item.Value.Count, item.Value.Damage)); + else + response.Add(String.Format(" #{0}: {1} x{2}", item.Key, item.Value.Type, item.Value.Count)); + } + else + { + if (item.Value.Damage != 0) + response.Add(String.Format(" #{0}: {1} x{2} - {3}§8 | Damage: {4}", item.Key, item.Value.Type, item.Value.Count, displayName, item.Value.Damage)); + else + response.Add(String.Format(" #{0}: {1} x{2} - {3}§8", item.Key, item.Value.Type, item.Value.Count, displayName)); + } } if (inventoryId == 0) response.Add("Your selected hotbar is " + (handler.GetCurrentSlot() + 1)); return String.Join("\n", response.ToArray()); @@ -153,8 +163,10 @@ namespace MinecraftClient.Commands Dictionary inventories = handler.GetInventories(); List response = new List(); response.Add("Inventories:"); - foreach (var inventory in inventories) + foreach (KeyValuePair inventory in inventories) + { response.Add(String.Format(" #{0}: {1}", inventory.Key, inventory.Value.Title + "§8")); + } response.Add(CMDDesc); return String.Join("\n", response); } diff --git a/MinecraftClient/Inventory/Item.cs b/MinecraftClient/Inventory/Item.cs index 29198e88..e05bd571 100644 --- a/MinecraftClient/Inventory/Item.cs +++ b/MinecraftClient/Inventory/Item.cs @@ -70,5 +70,24 @@ namespace MinecraftClient.Inventory return null; } } + + /// + /// Retrieve item damage from NBT properties. Returns 0 if no damage is defined. + /// + public int Damage + { + get + { + if (NBT != null && NBT.ContainsKey("Damage")) + { + object damage = NBT["Damage"]; + if (damage != null) + { + return int.Parse(damage.ToString()); + } + } + return 0; + } + } } }