瀏覽代碼

Skip plugins with missing or duplicate GUIDs

denikson 5 年之前
父節點
當前提交
3ad5a35e94
共有 1 個文件被更改,包括 13 次插入0 次删除
  1. 13 0
      BepInEx/Bootstrap/Chainloader.cs

+ 13 - 0
BepInEx/Bootstrap/Chainloader.cs

@@ -146,6 +146,19 @@ namespace BepInEx.Bootstrap
 				{
 					var dependencies = MetadataHelper.GetDependencies(t, selectedPluginTypes);
 					var metadata = MetadataHelper.GetMetadata(t);
+
+					if (metadata.GUID == null)
+					{
+						Logger.LogWarning($"Skipping [{metadata.Name}] because it does not have a valid GUID.");
+						continue;
+					}
+
+					if (dependencyDict.ContainsKey(metadata.GUID))
+					{
+						Logger.LogWarning($"Skipping [{metadata.Name}] because its GUID ({metadata.GUID}) is already used by another plugin.");
+						continue;
+					}
+
 					dependencyDict[metadata.GUID] = dependencies.Select(d => d.DependencyGUID);
 					pluginsByGUID[metadata.GUID] = t;
 				}