diff --git a/MosswartMassacre/LiveInventoryTracker.cs b/MosswartMassacre/LiveInventoryTracker.cs index 9dd54a9..4b3546b 100644 --- a/MosswartMassacre/LiveInventoryTracker.cs +++ b/MosswartMassacre/LiveInventoryTracker.cs @@ -51,6 +51,12 @@ namespace MosswartMassacre _trackedItemIds.Add(item.Id); var mwo = MyWorldObjectCreator.Create(item); _ = WebSocket.SendInventoryDeltaAsync("add", mwo); + + // Request appraisal if item needs full ID data (spells, combat stats, etc.) + if (!item.HasIdData && ObjectClassNeedsIdent(item.ObjectClass, item.Name)) + { + CoreManager.Current.Actions.RequestId(item.Id); + } } catch (Exception ex) { @@ -96,6 +102,12 @@ namespace MosswartMassacre _trackedItemIds.Add(item.Id); var mwo = MyWorldObjectCreator.Create(item); _ = WebSocket.SendInventoryDeltaAsync("add", mwo); + + // Request appraisal if item needs full ID data + if (!item.HasIdData && ObjectClassNeedsIdent(item.ObjectClass, item.Name)) + { + CoreManager.Current.Actions.RequestId(item.Id); + } } else { @@ -115,6 +127,18 @@ namespace MosswartMassacre _trackedItemIds.Clear(); } + private static bool ObjectClassNeedsIdent(ObjectClass oc, string name) + { + return oc == ObjectClass.Armor + || oc == ObjectClass.Clothing + || oc == ObjectClass.MeleeWeapon + || oc == ObjectClass.MissileWeapon + || oc == ObjectClass.WandStaffOrb + || oc == ObjectClass.Jewelry + || (oc == ObjectClass.Gem && !string.IsNullOrEmpty(name) && name.Contains("Aetheria")) + || (oc == ObjectClass.Misc && !string.IsNullOrEmpty(name) && name.Contains("Essence")); + } + private static bool IsPlayerInventory(WorldObject item) { try diff --git a/MosswartMassacre/PluginSettings.cs b/MosswartMassacre/PluginSettings.cs index 83544b4..8104493 100644 --- a/MosswartMassacre/PluginSettings.cs +++ b/MosswartMassacre/PluginSettings.cs @@ -65,7 +65,8 @@ namespace MosswartMassacre // build serializer/deserializer once var builder = new DeserializerBuilder() - .WithNamingConvention(UnderscoredNamingConvention.Instance); + .WithNamingConvention(UnderscoredNamingConvention.Instance) + .IgnoreUnmatchedProperties(); var deserializer = builder.Build(); PluginSettings loaded = null; diff --git a/MosswartMassacre/bin/Release/MosswartMassacre.dll b/MosswartMassacre/bin/Release/MosswartMassacre.dll index e07fd43..f0921ce 100644 Binary files a/MosswartMassacre/bin/Release/MosswartMassacre.dll and b/MosswartMassacre/bin/Release/MosswartMassacre.dll differ