mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
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
This commit is contained in:
parent
25a2f5a4a3
commit
aa1b6f968e
1 changed files with 52 additions and 0 deletions
52
MinecraftClient/Scripting/DataPath.cs
Normal file
52
MinecraftClient/Scripting/DataPath.cs
Normal file
|
|
@ -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
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 初始化数据目录(修正版)
|
||||
/// 需要手动传入脚本文件名(不含.cs扩展名)
|
||||
/// </summary>
|
||||
/// <param name="scriptName">脚本文件名(不含扩展名)</param>
|
||||
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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取路径
|
||||
/// </summary>
|
||||
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))
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue