From 70554800157667641c4db3bb595bbb9504c7326b Mon Sep 17 00:00:00 2001 From: MapleWheels Date: Sun, 5 Apr 2026 13:09:18 -0400 Subject: [PATCH] - Fixed publicized Barotrauma.dll missing error on DedicatedServer. - Fixed non-implemented folder search for ModConfig resources. --- .../LuaCsForBarotrauma/ModConfig.xml | 2 +- .../_Services/ModConfigFileParserService.cs | 30 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/ModConfig.xml b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/ModConfig.xml index cd06c211b..25afd73df 100644 --- a/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/ModConfig.xml +++ b/Barotrauma/BarotraumaShared/LocalMods/LuaCsForBarotrauma/ModConfig.xml @@ -3,6 +3,6 @@ - + diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ModConfigFileParserService.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ModConfigFileParserService.cs index 530632e22..980eac69f 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ModConfigFileParserService.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/_Services/ModConfigFileParserService.cs @@ -5,6 +5,7 @@ using System.Runtime.CompilerServices; using System.Threading.Tasks; using System.Xml.Linq; using Barotrauma.LuaCs.Data; +using FarseerPhysics.Common; using FluentResults; using Microsoft.Toolkit.Diagnostics; @@ -191,7 +192,14 @@ public sealed partial class ModConfigFileParserService : } else { - res.WithError($"{srcOwner.Name}: The file '{filePath}' is missing!"); + if (srcElement.GetAttributeBool("IsFileRequired", true)) + { + res.WithError($"{srcOwner.Name}: The file '{filePath}' is missing!"); + } + else + { + res.WithSuccess($"Skipped missing not-required file: '{filePath}'"); + } } } @@ -200,10 +208,28 @@ public sealed partial class ModConfigFileParserService : if (_storageService.DirectoryExists(folderPath.FullPath) is { IsSuccess: true, Value: true }) { var files = _storageService.FindFilesInPackage(srcOwner, folderPath.Value, fileExtension, true); + if (files.IsFailed) + { + res.WithError($"{srcOwner.Name}: Failed to load files from {folderPath}!"); + } + else + { + foreach (var file in files.Value) + { + builder.Add(ContentPath.FromRaw(srcOwner, $"%ModDir%/{System.IO.Path.GetRelativePath(System.IO.Path.GetFullPath(srcOwner.Dir), file)}")); + } + } } else { - res.WithError($"{srcOwner.Name}: The folder '{filePath}' is missing!"); + if (srcElement.GetAttributeBool("IsFileRequired", true)) + { + res.WithError($"{srcOwner.Name}: The file '{folderPath}' is missing!"); + } + else + { + res.WithSuccess($"Skipped missing not-required folder: '{folderPath}'"); + } } }