@@ -207,53 +207,46 @@ Public Module ModMinecraft
207207 ''' </summary>
208208 Public ReadOnly Property PathIndie As String
209209 Get
210- Return GetPathIndie(Modable)
210+ InitPathIndie(Modable)
211+ Return If (Setup.Get( "VersionArgumentIndieV2" , Version:= Me ), Path, PathMcFolder)
211212 End Get
212213 End Property
213214 ''' <summary>
214- ''' 在不加载版本的情况下获取版本隔离目录 。
215+ ''' 决定该版本是否应该被隔离 。
215216 ''' </summary>
216- Public Function GetPathIndie(Modable As Boolean ) As String
217- '决定版本隔离类型
218- If Setup.IsUnset( "VersionArgumentIndieV2" , Version:= Me ) Then
219- Dim ShouldBeIndie =
220- Function () As Boolean
221- '从老的版本独立设置中迁移:-1 未决定,0 使用全局设置,1 手动开启,2 手动关闭
222- If Not Setup.IsUnset( "VersionArgumentIndie" , Version:= Me ) AndAlso Setup.Get( "VersionArgumentIndie" , Version:= Me ) > 0 Then
223- Log( $"[Minecraft] 版本隔离初始化({Name}):从老的版本独立设置中迁移" )
224- Return Setup.Get( "VersionArgumentIndie" , Version:= Me ) = 1
225- End If
226- '若版本文件夹下包含 mods 或 saves 文件夹,则自动开启版本隔离
227- Dim ModFolder As New DirectoryInfo(Path & "mods\" )
228- Dim SaveFolder As New DirectoryInfo(Path & "saves\" )
229- If (ModFolder.Exists AndAlso ModFolder.EnumerateFiles.Any) OrElse (SaveFolder.Exists AndAlso SaveFolder.EnumerateFiles.Any) Then
230- Log( $"[Minecraft] 版本隔离初始化({Name}):版本文件夹下存在 mods 或 saves 文件夹,自动开启" )
217+ Public Sub InitPathIndie(Modable As Boolean )
218+ If Not Setup.IsUnset( "VersionArgumentIndieV2" , Version:= Me ) Then Return
219+ Dim ShouldBeIndie =
220+ Function () As Boolean
221+ '从老的版本独立设置中迁移:-1 未决定,0 使用全局设置,1 手动开启,2 手动关闭
222+ If Not Setup.IsUnset( "VersionArgumentIndie" , Version:= Me ) AndAlso Setup.Get( "VersionArgumentIndie" , Version:= Me ) > 0 Then
223+ Log( $"[Minecraft] 版本隔离初始化({Name}):从老的版本独立设置中迁移" )
224+ Return Setup.Get( "VersionArgumentIndie" , Version:= Me ) = 1
225+ End If
226+ '若版本文件夹下包含 mods 或 saves 文件夹,则自动开启版本隔离
227+ Dim ModFolder As New DirectoryInfo(Path & "mods\" )
228+ Dim SaveFolder As New DirectoryInfo(Path & "saves\" )
229+ If (ModFolder.Exists AndAlso ModFolder.EnumerateFiles.Any) OrElse (SaveFolder.Exists AndAlso SaveFolder.EnumerateFiles.Any) Then
230+ Log( $"[Minecraft] 版本隔离初始化({Name}):版本文件夹下存在 mods 或 saves 文件夹,自动开启" )
231+ Return True
232+ End If
233+ '根据全局的默认设置决定是否隔离
234+ Log( $"[Minecraft] 版本隔离初始化({Name}):从全局默认设置中({Setup.Get(" LaunchArgumentIndieV2 ")})判断" )
235+ Select Case Setup.Get( "LaunchArgumentIndieV2" )
236+ Case 0 '关闭
237+ Return False
238+ Case 1 '仅隔离可安装 Mod 的版本
239+ Return Modable
240+ Case 2 '仅隔离非正式版
241+ Return State = McVersionState.Fool OrElse State = McVersionState.Old OrElse State = McVersionState.Snapshot
242+ Case 3 '隔离非正式版与可安装 Mod 的版本
243+ Return Modable OrElse State = McVersionState.Fool OrElse State = McVersionState.Old OrElse State = McVersionState.Snapshot
244+ Case Else '隔离所有版本
231245 Return True
232- End If
233- '根据全局的默认设置决定是否隔离
234- Log( $"[Minecraft] 版本隔离初始化({Name}):从全局默认设置中({Setup.Get(" LaunchArgumentIndieV2 ")})判断" )
235- Select Case Setup.Get( "LaunchArgumentIndieV2" )
236- Case 0 '关闭
237- Return False
238- Case 1 '仅隔离可安装 Mod 的版本
239- Return Modable
240- Case 2 '仅隔离非正式版
241- Return State = McVersionState.Fool OrElse State = McVersionState.Old OrElse State = McVersionState.Snapshot
242- Case 3 '隔离非正式版与可安装 Mod 的版本
243- Return Modable OrElse State = McVersionState.Fool OrElse State = McVersionState.Old OrElse State = McVersionState.Snapshot
244- Case Else '隔离所有版本
245- Return True
246- End Select
247- End Function
248- Setup.Set( "VersionArgumentIndieV2" , ShouldBeIndie(), Version:= Me )
249- End If
250- '根据隔离类型决定路径
251- If Setup.Get( "VersionArgumentIndieV2" , Version:= Me ) Then
252- Return Path
253- Else
254- Return PathMcFolder
255- End If
256- End Function
246+ End Select
247+ End Function
248+ Setup.Set( "VersionArgumentIndieV2" , ShouldBeIndie(), Version:= Me )
249+ End Sub
257250
258251 ''' <summary>
259252 ''' 该版本的版本文件夹名称。
@@ -1080,6 +1073,8 @@ ExitDataLoad:
10801073 Return "2023 | " & GetLang( "LangModMinecraftFoolName23w13ab" )
10811074 ElseIf Name = "24w14potato" Then
10821075 Return "2024 | " & GetLang( "LangModMinecraftFoolName24w14potato" )
1076+ ElseIf Name = "25w14craftmine" Then
1077+ Return "2025 | " & GetLang( "LangModMinecraftFoolName25w14craftmine" )
10831078 Else
10841079 Return ""
10851080 End If
0 commit comments