From 8b3220cba6ee76049f70735730e8d42d5342c118 Mon Sep 17 00:00:00 2001 From: RisaDev <151885272+RisaDev@users.noreply.github.com> Date: Fri, 25 Jul 2025 02:19:48 +0300 Subject: [PATCH] Fix crash on login/logout? --- CustomizePlus/Templates/TemplateEditorManager.cs | 4 +++- .../UI/Windows/MainWindow/Tabs/Profiles/ProfilePanel.cs | 2 +- .../UI/Windows/MainWindow/Tabs/Templates/BoneEditorPanel.cs | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CustomizePlus/Templates/TemplateEditorManager.cs b/CustomizePlus/Templates/TemplateEditorManager.cs index 580199c..11f6b45 100644 --- a/CustomizePlus/Templates/TemplateEditorManager.cs +++ b/CustomizePlus/Templates/TemplateEditorManager.cs @@ -138,7 +138,7 @@ public class TemplateEditorManager : IDisposable }; if (!Character.IsValid) //safeguard - ChangeEditorCharacterInternal(_gameObjectService.GetCurrentPlayerActorIdentifier()); //will set EditorProfile.Character + ChangeEditorCharacterInternal(_gameObjectService.GetCurrentPlayerActorIdentifier().CreatePermanent()); //will set EditorProfile.Character EditorProfile.Templates.Clear(); //safeguard EditorProfile.Templates.Add(CurrentlyEditedTemplate); @@ -335,6 +335,8 @@ public class TemplateEditorManager : IDisposable return; } + localPlayer = localPlayer.CreatePermanent(); + if (_configuration.EditorConfiguration.PreviewCharacter != localPlayer) { _logger.Debug("Resetting editor character because automatic condition triggered in OnLogin"); diff --git a/CustomizePlus/UI/Windows/MainWindow/Tabs/Profiles/ProfilePanel.cs b/CustomizePlus/UI/Windows/MainWindow/Tabs/Profiles/ProfilePanel.cs index 8264412..cbb0fef 100644 --- a/CustomizePlus/UI/Windows/MainWindow/Tabs/Profiles/ProfilePanel.cs +++ b/CustomizePlus/UI/Windows/MainWindow/Tabs/Profiles/ProfilePanel.cs @@ -276,7 +276,7 @@ public class ProfilePanel if (ImGuiUtil.DrawDisabledButton("Apply to mannequin", buttonWidth, string.Empty, !_actorAssignmentUi.CanSetMannequin)) _manager.AddCharacter(_selector.Selected!, _actorAssignmentUi.MannequinIdentifier); - var currentPlayer = _actorManager.GetCurrentPlayer(); + var currentPlayer = _actorManager.GetCurrentPlayer().CreatePermanent(); if (ImGuiUtil.DrawDisabledButton("Apply to current character", buttonWidth, string.Empty, !currentPlayer.IsValid)) _manager.AddCharacter(_selector.Selected!, currentPlayer); diff --git a/CustomizePlus/UI/Windows/MainWindow/Tabs/Templates/BoneEditorPanel.cs b/CustomizePlus/UI/Windows/MainWindow/Tabs/Templates/BoneEditorPanel.cs index 94f5819..089bea9 100644 --- a/CustomizePlus/UI/Windows/MainWindow/Tabs/Templates/BoneEditorPanel.cs +++ b/CustomizePlus/UI/Windows/MainWindow/Tabs/Templates/BoneEditorPanel.cs @@ -144,7 +144,7 @@ public class BoneEditorPanel if (ImGuiUtil.DrawDisabledButton("Apply to mannequin", buttonWidth, string.Empty, !_actorAssignmentUi.CanSetMannequin)) _editorManager.ChangeEditorCharacter(_actorAssignmentUi.MannequinIdentifier); - var currentPlayer = _gameObjectService.GetCurrentPlayerActorIdentifier(); + var currentPlayer = _gameObjectService.GetCurrentPlayerActorIdentifier().CreatePermanent(); if (ImGuiUtil.DrawDisabledButton("Apply to current character", buttonWidth, string.Empty, !currentPlayer.IsValid)) _editorManager.ChangeEditorCharacter(currentPlayer);