@@ -441,6 +441,8 @@ private void EnqueueCompilation(Compilation compilation)
441441
442442 compilation.Started();
443443
444+ HashSet<string> includedFiles = new HashSet<string>();
445+
444446 List<CompilerFile> sourceFiles = new List<CompilerFile>();
445447 foreach (CompilablePlugin plugin in compilation.plugins)
446448 {
@@ -452,16 +454,25 @@ private void EnqueueCompilation(Compilation compilation)
452454 continue;
453455 }
454456
455- foreach (var include in plugin.IncludePaths.Distinct())
457+ foreach (string include in plugin.IncludePaths.Distinct())
456458 {
457- CompilerFile inc = new CompilerFile(include);
458- if (inc.Data == null || inc.Data.Length == 0)
459+ if (includedFiles.Contains(include))
459460 {
460- Log(LogType.Warning, $"Ignoring plugin {inc.Name}, file is empty ");
461+ Log(LogType.Warning, $"Tried to include {include} but it has already been added to the compilation ");
461462 continue;
462463 }
463- Log(LogType.Info, $"Adding {inc.Name} to compilation project");
464- sourceFiles.Add(inc);
464+
465+ CompilerFile includeFile = new CompilerFile(include);
466+ if (includeFile.Data == null || includeFile.Data.Length == 0)
467+ {
468+ Log(LogType.Warning, $"Ignoring plugin {includeFile.Name}, file is empty");
469+ continue;
470+ }
471+
472+ Log(LogType.Info, $"Adding {includeFile.Name} to compilation project");
473+
474+ sourceFiles.Add(includeFile);
475+ includedFiles.Add(include);
465476 }
466477
467478 Log(LogType.Info, $"Adding plugin {name} to compilation project");
@@ -470,7 +481,7 @@ private void EnqueueCompilation(Compilation compilation)
470481
471482 if (sourceFiles.Count == 0)
472483 {
473- Log(LogType.Error, $ "Compilation job contained no valid plugins");
484+ Log(LogType.Error, "Compilation job contained no valid plugins");
474485 compilations.Remove(compilation.id);
475486 compilation.Completed();
476487 return;
0 commit comments