From 478a8218b36a99e77c4fc5c9eb32bd4124a80c5d Mon Sep 17 00:00:00 2001 From: Christopher Date: Fri, 10 Jul 2020 18:21:52 +0200 Subject: [PATCH] use notecard reader --- src/Appearance2Avatar.cs | 30 +++++++----------------------- src/helper/NotecardCache.cs | 2 +- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/src/Appearance2Avatar.cs b/src/Appearance2Avatar.cs index 0c708a5..b118237 100644 --- a/src/Appearance2Avatar.cs +++ b/src/Appearance2Avatar.cs @@ -71,14 +71,6 @@ namespace OpenSim.Modules.Appearance2Avatar } - protected string LoadNotecard(SceneObjectPart host, String notecardname) - { - IScriptEngine wComm = m_scene.RequestModuleInterface(); - - IOSSL_Api _api = (IOSSL_Api)wComm.GetApi(host.UUID, "OSSL"); - return _api.osGetNotecard(notecardname); - } - [ScriptInvocation] public void osAppearance2Avatar(UUID hostID, UUID scriptID, String notecard, String targetAvatar) { @@ -94,39 +86,31 @@ namespace OpenSim.Modules.Appearance2Avatar if (notecardItem != null) { if (notecardItem.Type != 7) - { throw new Exception("Given item is not a notecard."); - return; - } m_log.Info("[" + Name + "] Info: Fetch asset data for notecard."); - String asset = LoadNotecard(_host, notecard); + NoteCardReader _ncReader = new NoteCardReader(m_scene, _host); + String noteCardContend = _ncReader.LoadNotecard(notecard); - if (asset != null) + if(noteCardContend != null) { - m_log.Info(asset); - + m_log.Info(noteCardContend); m_log.Info("[" + Name + "] Info: Deserialize notecard."); - OSDMap appearanceOsd = (OSDMap)OSDParser.DeserializeLLSDXml(asset); + OSDMap appearanceOsd = (OSDMap)OSDParser.DeserializeLLSDXml(noteCardContend); AvatarAppearance appearance = new AvatarAppearance(); appearance.Unpack(appearanceOsd); m_log.Info("[" + Name + "] Info: Overwrite appearance"); sp.Appearance = appearance; - sp.TriggerScenePresenceUpdated(); + m_log.Info("[" + Name + "] Info: Send update to clients"); + sp.TriggerScenePresenceUpdated(); m_scene.ForEachClient( client => { sp.SendFullUpdateToClient(client); }); } - else - { - m_log.Error("[" + Name + "] ERROR: Cant get asset data for appearance notecard"); - throw new Exception("Cant get asset data for appearance notecard"); - } - } else { diff --git a/src/helper/NotecardCache.cs b/src/helper/NotecardCache.cs index 058617f..38f153e 100644 --- a/src/helper/NotecardCache.cs +++ b/src/helper/NotecardCache.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; namespace OpenSim.Modules.Appearance2Avatar.helper { - class NotecardCache + public class NotecardCache { protected class Notecard {