add warnings for missing optional plugins when respective data is received

This commit is contained in:
rootdarkarchon
2023-01-08 00:19:11 +01:00
parent 90a25c23dc
commit e1f6d6df24
7 changed files with 56 additions and 8 deletions

View File

@@ -61,7 +61,7 @@ public class CachedPlayer
private PlayerRelatedObject? _currentCharacterEquipment;
public void ApplyCharacterData(CharacterCacheDto characterData)
public void ApplyCharacterData(CharacterCacheDto characterData, OptionalPluginWarning warning)
{
Logger.Debug("Received data for " + this);
@@ -122,6 +122,7 @@ public class CachedPlayer
bool heelsOffsetDifferent = _cachedData.HeelsOffset != characterData.HeelsOffset;
if (heelsOffsetDifferent)
{
Logger.Debug("Updating " + objectKind);
charaDataToUpdate.Add(objectKind);
continue;
@@ -137,6 +138,23 @@ public class CachedPlayer
}
}
if (characterData.HeelsOffset != default)
{
if (!warning.ShownHeelsWarning && !_ipcManager.CheckHeelsApi())
{
_dalamudUtil.PrintWarnChat("Received Heels data for player " + PlayerName + ", but Heels is not installed. Install Heels to experience their character fully.");
warning.ShownHeelsWarning = true;
}
}
if (!string.IsNullOrEmpty(characterData.CustomizePlusData))
{
if (!warning.ShownCustomizePlusWarning && !_ipcManager.CheckCustomizePlusApi())
{
_dalamudUtil.PrintWarnChat("Received Customize+ data for player " + PlayerName + ", but Customize+ is not installed. Install Customize+ to experience their character fully.");
warning.ShownCustomizePlusWarning = true;
}
}
_cachedData = characterData;
DownloadAndApplyCharacter(charaDataToUpdate, updateModdedPaths);
@@ -418,7 +436,7 @@ public class CachedPlayer
}
}
public void InitializePlayer(IntPtr character, string name, CharacterCacheDto? cache)
public void InitializePlayer(IntPtr character, string name, CharacterCacheDto? cache, OptionalPluginWarning displayedChatWarning)
{
if (!_isDisposed) return;
IsVisible = true;
@@ -434,7 +452,7 @@ public class CachedPlayer
_isDisposed = false;
if (cache != null)
{
ApplyCharacterData(cache);
ApplyCharacterData(cache, displayedChatWarning);
}
}