diff --git a/Dalamud/Interface/Internal/Windows/PluginImageCache.cs b/Dalamud/Interface/Internal/Windows/PluginImageCache.cs index d9e15abea..df2aa5422 100644 --- a/Dalamud/Interface/Internal/Windows/PluginImageCache.cs +++ b/Dalamud/Interface/Internal/Windows/PluginImageCache.cs @@ -228,13 +228,20 @@ internal class PluginImageCache : IDisposable, IServiceType /// True if an entry exists, may be null if currently downloading. public bool TryGetIcon(LocalPlugin? plugin, PluginManifest manifest, bool isThirdParty, out TextureWrap? iconTexture) { + iconTexture = null; + + if (manifest == null || manifest.InternalName == null) + { + Log.Error("THIS SHOULD NEVER HAPPEN! manifest == null || manifest.InternalName == null"); + return false; + } + if (!this.pluginIconMap.TryAdd(manifest.InternalName, null)) { iconTexture = this.pluginIconMap[manifest.InternalName]; return true; } - iconTexture = null; var requestedFrame = Service.GetNullable()?.FrameCount ?? 0; Task.Run(async () => { diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs index 2daee9d90..06cb52845 100644 --- a/Dalamud/Plugin/Internal/PluginManager.cs +++ b/Dalamud/Plugin/Internal/PluginManager.cs @@ -838,6 +838,12 @@ Thanks and have fun!"; LocalPlugin plugin; + if (manifest != null && manifest.InternalName == null) + { + Log.Error("{FileName}: Your manifest has no internal name set! Can't load this.", dllFile.FullName); + throw new Exception("No internal name"); + } + if (isDev) { Log.Information($"Loading dev plugin {name}");