From 173f62b390c2561e373041060311ebb235b59076 Mon Sep 17 00:00:00 2001 From: Madpeter <57852827+Madpeterz@users.noreply.github.com> Date: Thu, 4 Jul 2024 20:05:16 +0100 Subject: [PATCH] extra checks when caps system fails us --- LibreMetaverse/AppearanceManager.cs | 51 ++++++++++++++++------------- LibreMetaverse/GroupManager.cs | 7 +++- 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/LibreMetaverse/AppearanceManager.cs b/LibreMetaverse/AppearanceManager.cs index c660af5..54c950d 100644 --- a/LibreMetaverse/AppearanceManager.cs +++ b/LibreMetaverse/AppearanceManager.cs @@ -2091,30 +2091,37 @@ namespace OpenMetaverse // TODO: create Current Outfit Folder } - OSDMap request = new OSDMap(1) { ["cof_version"] = currentoutfitfolder.Version }; - - string msg = "Server side baking failed"; - - OSD res = null; - - await Client.HttpCapsClient.PostRequestAsync(cap, OSDFormat.Xml, request, cancellationToken, - (response, data, error) => res = OSDParser.Deserialize(data)); - - if (res is OSDMap result) + try { - if (result["success"]) - { - Logger.Log("Successfully set appearance", Helpers.LogLevel.Info, Client); - // TODO: Set local visual params and baked textures based on the result here - return true; - } - if (result.ContainsKey("error")) - { - msg += ": " + result["error"].AsString(); - } - } + OSDMap request = new OSDMap(1) { ["cof_version"] = currentoutfitfolder.Version }; - Logger.Log(msg, Helpers.LogLevel.Error, Client); + string msg = "Server side baking failed"; + + OSD res = null; + + await Client.HttpCapsClient.PostRequestAsync(cap, OSDFormat.Xml, request, cancellationToken, + (response, data, error) => res = OSDParser.Deserialize(data)); + + if (res is OSDMap result) + { + if (result["success"]) + { + Logger.Log("Successfully set appearance", Helpers.LogLevel.Info, Client); + // TODO: Set local visual params and baked textures based on the result here + return true; + } + if (result.ContainsKey("error")) + { + msg += ": " + result["error"].AsString(); + } + } + + Logger.Log(msg, Helpers.LogLevel.Error, Client); + } + catch (Exception e) + { + Logger.Log("UpdateAvatarAppearanceAsync has failed to unpack data: "+e.Message, Helpers.LogLevel.Error, Client); + } return false; } diff --git a/LibreMetaverse/GroupManager.cs b/LibreMetaverse/GroupManager.cs index ad72bfb..ea38895 100644 --- a/LibreMetaverse/GroupManager.cs +++ b/LibreMetaverse/GroupManager.cs @@ -1056,7 +1056,12 @@ namespace OpenMetaverse if (error != null) { return; } OSD result = OSDParser.Deserialize(data); - GroupMembersHandlerCaps(requestID, result); + if (result != null) + { + GroupMembersHandlerCaps(requestID, result); + return; + } + Logger.Log("Failed to json decode data from uri "+cap.AbsoluteUri+": ", Helpers.LogLevel.Error, Client); }); } else