From aa1b6f968e3cc90ff2221bf644cbd9305fc76931 Mon Sep 17 00:00:00 2001 From: Andy Date: Fri, 19 Jun 2026 13:18:04 +0800 Subject: [PATCH 1/2] Add DataPath.cs and revert CSharpRunner.cs changes # Submission Instructions ## Content of this submission ### 1. Synchronize official CSharpRunner.cs - Synchronize `CSharpRunner.cs` to the latest official version - **Removed** extended support for non-standard metadata formats (XML, C# style, JS style) - Restore to the official standard metadata parsing method ### 2. Migrate DataPath.cs - Migrate `DataPath.cs` to the new version of the code repository - Maintain the original functionality unchanged: - `DataPath.Init("ScriptName")` - create a configuration folder - `DataPath.Get()` - Gets the path of the configuration folder ## Reason for change 1. **Facilitate official merging**: Retaining custom metadata formats increases the risk of conflicts with the official codebase. Removing them allows for smoother acceptance of official updates 2. **Reduce maintenance costs**: The official CSharpRunner.cs undergoes frequent changes, making the maintenance of custom branches a significant workload 3. **Maintain consistency**: Keep consistent with the official version to avoid compatibility issues caused by format differences ## Scope of impact - Previously supported non-standard metadata formats (XML, C# style, JS style) will no longer be recognized - Only supports official standard metadata formats - The functionality of DataPath.cs remains unaffected, and the configuration management function is still operational and available ## Remarks - DataPath.cs and CSharpRunner.cs have previously been modified, and this time it is only for migration and synchronization purposes - AI-assisted participation was involved in the previous modification process --- MinecraftClient/Scripting/DataPath.cs | 52 +++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 MinecraftClient/Scripting/DataPath.cs diff --git a/MinecraftClient/Scripting/DataPath.cs b/MinecraftClient/Scripting/DataPath.cs new file mode 100644 index 00000000..3e7bf5a4 --- /dev/null +++ b/MinecraftClient/Scripting/DataPath.cs @@ -0,0 +1,52 @@ +using System; +using System.IO; + +namespace MinecraftClient.Scripting +{ + public static class DataPath + { + private static string? relativePath; + private static string? absolutePath; + + public enum PathType + { + Relative, + Absolute + } + + /// + /// 初始化数据目录(修正版) + /// 需要手动传入脚本文件名(不含.cs扩展名) + /// + /// 脚本文件名(不含扩展名) + public static void Init(string scriptName) + { + if (string.IsNullOrEmpty(scriptName)) + throw new ArgumentNullException(nameof(scriptName), "脚本名称不能为空"); + + // 计算路径 + relativePath = scriptName; + absolutePath = Path.Combine(AppContext.BaseDirectory, scriptName); + + // 创建目录 + if (!Directory.Exists(absolutePath)) + Directory.CreateDirectory(absolutePath); + } + + /// + /// 获取路径 + /// + public static string Get(PathType pathType = PathType.Relative) + { + if (string.IsNullOrEmpty(relativePath) || string.IsNullOrEmpty(absolutePath)) + throw new InvalidOperationException("请先调用DataPath.Init()初始化"); + + return pathType switch + { + PathType.Relative => relativePath, + PathType.Absolute => absolutePath, + _ => throw new ArgumentOutOfRangeException(nameof(pathType)) + }; + } + } +} \ No newline at end of file From aee35c3f5888684dffc979025a715e154fd4e552 Mon Sep 17 00:00:00 2001 From: Andy Date: Sun, 21 Jun 2026 10:53:11 +0800 Subject: [PATCH 2/2] Add English translations to DataPath comments Updated comments to include English translations for clarity. --- MinecraftClient/Scripting/DataPath.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/MinecraftClient/Scripting/DataPath.cs b/MinecraftClient/Scripting/DataPath.cs index 3e7bf5a4..fdefae5a 100644 --- a/MinecraftClient/Scripting/DataPath.cs +++ b/MinecraftClient/Scripting/DataPath.cs @@ -16,30 +16,33 @@ namespace MinecraftClient.Scripting /// /// 初始化数据目录(修正版) + /// Initialize the data directory (Revised version) /// 需要手动传入脚本文件名(不含.cs扩展名) + /// Requires manually passing the script file name (without the .cs extension) /// - /// 脚本文件名(不含扩展名) + /// 脚本文件名(不含扩展名)Script file name (without extension) public static void Init(string scriptName) { if (string.IsNullOrEmpty(scriptName)) - throw new ArgumentNullException(nameof(scriptName), "脚本名称不能为空"); + throw new ArgumentNullException(nameof(scriptName), "Script name cannot be null or empty(脚本名称不能为空)"); - // 计算路径 + // 计算路径 Calculate the path relativePath = scriptName; absolutePath = Path.Combine(AppContext.BaseDirectory, scriptName); - // 创建目录 + // 创建目录 Create the directory if (!Directory.Exists(absolutePath)) Directory.CreateDirectory(absolutePath); } /// /// 获取路径 + /// Get the path /// public static string Get(PathType pathType = PathType.Relative) { if (string.IsNullOrEmpty(relativePath) || string.IsNullOrEmpty(absolutePath)) - throw new InvalidOperationException("请先调用DataPath.Init()初始化"); + throw new InvalidOperationException("Please call DataPath.Init() first to initialize(请先调用DataPath.Init()初始化)"); return pathType switch { @@ -49,4 +52,4 @@ namespace MinecraftClient.Scripting }; } } -} \ No newline at end of file +}