@@ -1321,6 +1321,14 @@ Retry:
13211321 End Function
13221322 Private ExtractJavaWrapperLock As New Object
13231323
1324+ ''' <summary>
1325+ ''' 判断是否使用 RetroWrapper。
1326+ ''' </summary>
1327+ Private Function McLaunchNeedsRetroWrapper() As Boolean
1328+ Return McVersionCurrent.Version.McCodeMain <= 5 AndAlso McVersionCurrent.Version.McCodeMain > 0 AndAlso '<=1.5
1329+ Not Setup.Get( "LaunchAdvanceDisableRW" ) AndAlso Not Setup.Get( "VersionAdvanceDisableRW" , McVersionCurrent)
1330+ End Function
1331+
13241332 '主方法,合并 Jvm、Game、Replace 三部分的参数数据
13251333 Private Sub McLaunchArgumentMain(Loader As LoaderTask( Of String , List( Of McLibToken)))
13261334 McLaunchLog( "开始获取 Minecraft 启动参数" )
@@ -1504,6 +1512,13 @@ NextVersion:
15041512 DataList.Add( "-jar """ & ExtractJavaWrapper() & """" )
15051513 End If
15061514
1515+ '添加 RetroWrapper 相关参数
1516+ If McLaunchNeedsRetroWrapper() Then
1517+ 'https://github.com/NeRdTheNed/RetroWrapper/wiki/RetroWrapper-flags
1518+ DataList.Add( "-Dretrowrapper.doUpdateCheck=false" )
1519+ DataList.Add( "-Dretrowrapper.enableFMLPatch=true" )
1520+ End If
1521+
15071522 '将 "-XXX" 与后面 "XXX" 合并到一起
15081523 '如果不合并,会导致 Forge 1.17 启动无效,它有两个 --add-exports,进一步导致其中一个在后面被去重
15091524 Dim DeDuplicateDataList As New List( Of String )
@@ -1696,6 +1711,18 @@ NextVersion:
16961711 Loader.Output = LibList
16971712 Dim CpStrings As New List( Of String )
16981713 Dim OptiFineCp As String = Nothing
1714+
1715+ 'RetroWrapper 释放
1716+ If McLaunchNeedsRetroWrapper() Then
1717+ Dim WrapperPath As String = PathMcFolder & "libraries\retrowrapper\RetroWrapper.jar"
1718+ Try
1719+ WriteFile(WrapperPath, GetResources( "RetroWrapper" ))
1720+ CpStrings.Add(WrapperPath)
1721+ Catch ex As Exception
1722+ Log(ex, "RetroWrapper 释放失败" )
1723+ End Try
1724+ End If
1725+
16991726 For Each Library As McLibToken In LibList
17001727 If Library.IsNatives Then Continue For
17011728 If Library.Name IsNot Nothing AndAlso Library.Name = "optifine:OptiFine" Then
0 commit comments