Always init ExtensionData & fix BaseInteractionRequestData inheritance

This commit is contained in:
Archangel
2025-08-17 16:10:33 +02:00
parent 24397b0439
commit f96172ac60
309 changed files with 924 additions and 1052 deletions
@@ -18,7 +18,7 @@ public class JsonExtensionDataGeneratorLauncher
private static readonly Regex _extensionCleanup = new(",.*");
private const string Insertion =
" [JsonExtensionData]\r\n public Dictionary<string, object>? ExtensionData { get; set; }\r\n\r\n";
" [JsonExtensionData]\r\n public Dictionary<string, object> ExtensionData { get; init; } = [];\r\n\r\n";
private const string Using = "using System.Text.Json.Serialization;\r\n";
@@ -63,9 +63,16 @@ public class JsonExtensionDataGeneratorLauncher
if (TryGetExtensions(content, startIndex, endIndex, out var extensions))
{
if (extensions.Any(e => !e.StartsWith("I")))
if (InheritsFromBaseInteractionRequestData(extensions))
{
Console.WriteLine($"Class index {i} for {fileName} extends a parent class, skipping...");
Console.WriteLine(
$"Class index {i} for {fileName} inherits from BaseInteractionRequestData hierarchy, skipping..."
);
continue;
}
else
{
Console.WriteLine($"Class index {i} for {fileName} extends a different parent class, skipping...");
continue;
}
}
@@ -118,6 +125,20 @@ public class JsonExtensionDataGeneratorLauncher
return false;
}
private static bool InheritsFromBaseInteractionRequestData(IEnumerable<string> extensions)
{
var baseClasses = extensions.Where(e => !e.StartsWith("I")).ToList();
if (baseClasses.Contains("BaseInteractionRequestData"))
{
return true;
}
var knownDescendants = new[] { "InventoryBaseActionRequestData" };
return baseClasses.Any(baseClass => knownDescendants.Contains(baseClass));
}
private static int FindEndClassIndex(string content, int currentIndex)
{
// we do +3 cause that's the length of what we are searching for