Dalamud 13

This commit is contained in:
Loporrit
2025-08-05 10:21:24 +00:00
parent 9d9ec9cafc
commit 9a5918110e
34 changed files with 50 additions and 52 deletions

View File

@@ -88,9 +88,11 @@ public class PluginWatcherService : MediatorSubscriberBase
Logger.LogError(e, "PluginWatcherService exception");
}
});
Update(publish: false);
}
private void Update()
private void Update(bool publish = true)
{
if (!ExposedPluginsEqual(_pluginInterface.InstalledPlugins, _prevInstalledPluginState))
{
@@ -111,20 +113,20 @@ public class PluginWatcherService : MediatorSubscriberBase
foreach (var internalName in newDict.Keys.Except(oldDict.Keys, StringComparer.Ordinal))
{
var p = newDict[internalName].OrderBy(p => (!p.IsLoaded, p.Version)).First();
Mediator.Publish(new PluginChangeMessage(internalName, p.Version, p.IsLoaded));
if (publish) Mediator.Publish(new PluginChangeMessage(internalName, p.Version, p.IsLoaded));
}
foreach (var internalName in oldDict.Keys.Except(newDict.Keys, StringComparer.Ordinal))
{
var p = newDict[internalName].OrderBy(p => (!p.IsLoaded, p.Version)).First();
Mediator.Publish(new PluginChangeMessage(p.InternalName, p.Version, p.IsLoaded));
if (publish) Mediator.Publish(new PluginChangeMessage(p.InternalName, p.Version, p.IsLoaded));
}
foreach (var changedGroup in newDict.Where(p => oldDict.TryGetValue(p.Key, out var old) && !old.SequenceEqual(p.Value)))
{
var internalName = changedGroup.Value.First().InternalName;
var p = newDict[internalName].OrderBy(p => (!p.IsLoaded, p.Version)).First();
Mediator.Publish(new PluginChangeMessage(p.InternalName, p.Version, p.IsLoaded));
if (publish) Mediator.Publish(new PluginChangeMessage(p.InternalName, p.Version, p.IsLoaded));
}
}
}

View File

@@ -46,8 +46,8 @@ public sealed class XivDataAnalyzer
if ((nint)handle == nint.Zero) continue;
var curBones = handle->BoneCount;
// this is unrealistic, the filename shouldn't ever be that long
if (handle->ResourceHandle.FileName.Length > 1024) continue;
var skeletonName = handle->ResourceHandle.FileName.ToString();
if (handle->FileName.Length > 1024) continue;
var skeletonName = handle->FileName.ToString();
if (string.IsNullOrEmpty(skeletonName)) continue;
outputIndices[skeletonName] = new();
for (ushort boneIdx = 0; boneIdx < curBones; boneIdx++)