add apply last received data

This commit is contained in:
rootdarkarchon
2023-01-30 11:46:17 +01:00
parent c403e7b45b
commit 66fb103c94
5 changed files with 24 additions and 6 deletions

View File

@@ -56,14 +56,14 @@ public class CachedPlayer : IDisposable
public bool WasVisible { get; private set; }
public void ApplyCharacterData(API.Data.CharacterData characterData, OptionalPluginWarning warning)
public void ApplyCharacterData(API.Data.CharacterData characterData, OptionalPluginWarning warning, bool forced = false)
{
Logger.Debug("Received data for " + this);
Logger.Debug("Checking for files to download for player " + PlayerName);
Logger.Debug("Hash for data is " + characterData.DataHash.Value + ", current cache hash is " + _cachedData.DataHash.Value);
if (string.Equals(characterData.DataHash.Value, _cachedData.DataHash.Value, StringComparison.Ordinal)) return;
if (string.Equals(characterData.DataHash.Value, _cachedData.DataHash.Value, StringComparison.Ordinal) && !forced) return;
bool updateModdedPaths = false;
List<ObjectKind> charaDataToUpdate = new();

View File

@@ -110,7 +110,15 @@ public class PairManager : IDisposable
public void AddUserPair(UserPairDto dto, bool addToLastAddedUser = true)
{
if (!_allClientPairs.ContainsKey(dto.User)) _allClientPairs[dto.User] = _pairFactory.Create();
if (!_allClientPairs.ContainsKey(dto.User))
{
_allClientPairs[dto.User] = _pairFactory.Create();
}
else
{
addToLastAddedUser = false;
}
_allClientPairs[dto.User].UserPair = dto;
if (addToLastAddedUser)
LastAddedUser = _allClientPairs[dto.User];

View File

@@ -3,7 +3,7 @@
<PropertyGroup>
<Authors></Authors>
<Company></Company>
<Version>0.7.9</Version>
<Version>0.7.10</Version>
<Description></Description>
<Copyright></Copyright>
<PackageProjectUrl>https://github.com/Penumbra-Sync/client</PackageProjectUrl>

View File

@@ -83,7 +83,7 @@ public class Pair
ApplyLastReceivedData();
}
public void ApplyLastReceivedData()
public void ApplyLastReceivedData(bool forced = false)
{
if (CachedPlayer == null) return;
if (LastReceivedCharacterData == null) return;
@@ -95,7 +95,7 @@ public class Pair
ShownPalettePlusWarning = _configService.Current.DisableOptionalPluginWarnings,
};
CachedPlayer.ApplyCharacterData(RemoveNotSyncedFiles(LastReceivedCharacterData.DeepClone())!, _pluginWarnings);
CachedPlayer.ApplyCharacterData(RemoveNotSyncedFiles(LastReceivedCharacterData.DeepClone())!, _pluginWarnings, forced);
}
private API.Data.CharacterData? RemoveNotSyncedFiles(API.Data.CharacterData? data)

View File

@@ -503,6 +503,16 @@ public class CompactUi : Window, IDisposable
private void DrawPairedClientMenu(Pair entry)
{
if (entry.IsVisible)
{
if (UiShared.IconTextButton(FontAwesomeIcon.Sync, "Reload last data"))
{
entry.ApplyLastReceivedData(forced: true);
ImGui.CloseCurrentPopup();
}
UiShared.AttachToolTip("This reapplies the last received character data to this character");
}
var entryUID = entry.UserData.AliasOrUID;
if (UiShared.IconTextButton(FontAwesomeIcon.Folder, "Pair Groups"))
{