fix: accept semicolonless script using directives

Fixes #3195
This commit is contained in:
Anon 2026-07-31 19:12:51 +02:00
parent 503652a760
commit dbce402842
2 changed files with 21 additions and 1 deletions

View file

@ -60,7 +60,7 @@ namespace MinecraftClient.Scripting
string line = lines[i];
if (line.StartsWith("//using"))
{
libs.Add(line.Replace("//", "").Trim());
libs.Add(NormalizeUsingDirective(line));
}
else if (line.StartsWith("//dll"))
{
@ -125,6 +125,12 @@ namespace MinecraftClient.Scripting
else return null;
}
internal static string NormalizeUsingDirective(string line)
{
string directive = line[2..].Trim();
return directive.EndsWith(';') ? directive : $"{directive};";
}
private static string BuildScriptCode(string scriptName, IEnumerable<ScriptSourceLine> script, IEnumerable<ScriptSourceLine> extensions, IEnumerable<string> libs, bool hasImplicitReturn)
{
StringBuilder codeBuilder = new();