PageVersionSetup.xaml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. <local:MyPageRight
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:local="clr-namespace:PCL" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:System="clr-namespace:System;assembly=mscorlib"
  6. mc:Ignorable="d" x:Class="PageVersionSetup"
  7. d:DesignWidth="800" d:DesignHeight="800">
  8. <local:MyScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" x:Name="PanBack">
  9. <StackPanel x:Name="PanMain" Margin="25,10">
  10. <local:MyCard x:Name="CardArgument" Margin="0,15" Title="启动选项">
  11. <StackPanel Margin="25,40,25,21">
  12. <TextBlock Margin="0,-2,0,1" Text="在这个页面修改的设置均只对当前版本生效,这对整合包制作应该会有所帮助。" TextWrapping="Wrap" />
  13. <TextBlock Margin="0,0,0,11" Text="你也可以在设置页面中,修改对全部版本生效的全局设置。" TextWrapping="Wrap" />
  14. <Grid>
  15. <Grid.ColumnDefinitions>
  16. <ColumnDefinition Width="Auto" SharedSizeGroup="Name" />
  17. <ColumnDefinition Width="1*" />
  18. <ColumnDefinition Width="60" />
  19. </Grid.ColumnDefinitions>
  20. <Grid.RowDefinitions>
  21. <RowDefinition Height="28" />
  22. <RowDefinition Height="9" />
  23. <RowDefinition Height="28" />
  24. <RowDefinition Height="9" />
  25. <RowDefinition Height="28" />
  26. <RowDefinition Height="9" />
  27. <RowDefinition Height="28" />
  28. </Grid.RowDefinitions>
  29. <TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="游戏窗口标题" Margin="0,0,25,0" />
  30. <local:MyTextBox x:Name="TextArgumentTitle" Grid.Row="0" Grid.ColumnSpan="2" Tag="VersionArgumentTitle" Grid.Column="1" ToolTip="自定义游戏窗口的标题,若留空则使用全局设置的值。&#xa;支持以下替换标记:&#xa; · {user}:玩家名字&#xa; · {login}:玩家的登录方式&#xa; · {name}:游戏版本名&#xa; · {time}:当前的系统时间&#xa; · {version}:游戏对应的原版版本号" HintText="使用全局设置" MaxLength="100" />
  31. <TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="自定义信息" Margin="0,0,25,0" />
  32. <local:MyTextBox x:Name="TextArgumentInfo" Grid.Row="2" Grid.ColumnSpan="2" Tag="VersionArgumentInfo" Grid.Column="1" HintText="使用全局设置" ToolTip="该信息会显示在游戏主界面的左下角,与 F3 调试页面的左上角。&#xa;若留空,则使用全局设置的值。">
  33. <local:MyTextBox.ValidateRules>
  34. <local:ValidateExcept>
  35. <local:ValidateExcept.Excepts>
  36. <System:String>"</System:String>
  37. <System:String>“</System:String>
  38. <System:String>”</System:String>
  39. </local:ValidateExcept.Excepts>
  40. </local:ValidateExcept>
  41. </local:MyTextBox.ValidateRules>
  42. </local:MyTextBox>
  43. <TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="版本隔离" Margin="0,0,25,0" />
  44. <local:MyComboBox x:Name="ComboArgumentIndie" Grid.Row="4" Grid.ColumnSpan="2" Tag="VersionArgumentIndie" Grid.Column="1">
  45. <local:MyComboBoxItem Content="使用全局设置" IsSelected="True" />
  46. <local:MyComboBoxItem Content="开启"
  47. ToolTip="让这个版本与其他版本的存档、Mod 等档案相互独立,互不干涉" ToolTipService.HorizontalOffset="100"/>
  48. <local:MyComboBoxItem Content="关闭"
  49. ToolTip="与其余未开启隔离的版本均使用同一档案,存档、Mod 等均为公用。&#xa;若存在不同版本的 Forge 或 Fabric,可能会由于 Mod 与版本冲突导致未知问题。" ToolTipService.HorizontalOffset="100"/>
  50. </local:MyComboBox>
  51. <TextBlock VerticalAlignment="Center" Grid.Row="6" HorizontalAlignment="Left" Text="游戏 Java" Margin="0,0,25,0" />
  52. <local:MyComboBox x:Name="ComboArgumentJava" Grid.ColumnSpan="2" Grid.Row="6" Grid.Column="1" MaxDropDownHeight="240"
  53. ToolTip="若将 Java 放在游戏文件夹或 PCL 文件夹,在进行自动选择时 PCL 会尽量优先选择它">
  54. <ComboBoxItem Content="加载中……" IsSelected="True" />
  55. <!--<local:MyComboBoxItem Content="Java 8 (1.8.0_171),64 位:C:\Program Files (x86)\Common Files\Oracle\Java\javapath\javaw.exe" ToolTipService.Placement="Right" ToolTipService.HorizontalOffset="5" IsSelected="True" ToolTip="C:\Program Files (x86)\Common Files\Oracle\Java\javapath\javaw.exe" />-->
  56. </local:MyComboBox>
  57. </Grid>
  58. </StackPanel>
  59. </local:MyCard>
  60. <local:MyCard Margin="0,0,0,15" Title="游戏内存">
  61. <StackPanel Margin="25,40,25,15">
  62. <local:MyHint x:Name="LabRamWarn" CanClose="False" Text="32 位 Java 最多只能分配 1 GB 内存,建议安装 64 位 Java!" IsWarn="True" Margin="0,0,0,12" />
  63. <Grid Margin="0,0,0,3">
  64. <Grid.ColumnDefinitions>
  65. <ColumnDefinition Width="Auto" />
  66. <ColumnDefinition />
  67. </Grid.ColumnDefinitions>
  68. <Grid.RowDefinitions>
  69. <RowDefinition Height="Auto" />
  70. <RowDefinition Height="Auto" />
  71. <RowDefinition Height="9" />
  72. <RowDefinition Height="Auto" />
  73. </Grid.RowDefinitions>
  74. <local:MyRadioBox Text="使用全局设置" Width="110" Checked="True" x:Name="RadioRamType2" Tag="VersionRamType/2" Margin="0,0,20,9" />
  75. <local:MyRadioBox Grid.Row="1" Text="自动配置" Width="110" x:Name="RadioRamType0" Tag="VersionRamType/0" Margin="0,0,20,0"
  76. ToolTip="根据安装的 Mod 量与电脑剩余内存动态调整为游戏分配的内存" ToolTipService.Placement="Right" ToolTipService.HorizontalOffset="-10" ToolTipService.VerticalOffset="-3" />
  77. <local:MyRadioBox Grid.Row="3" Text="自定义" x:Name="RadioRamType1" Tag="VersionRamType/1" Margin="0,0,20,0" />
  78. <local:MySlider Grid.Row="3" Grid.Column="1" IsEnabled="False" x:Name="SliderRamCustom" Tag="VersionRamCustom" MaxValue="49" Value="13" />
  79. <!--<local:MyTextBox Grid.Row="2" Grid.Column="3" Width="100" VerticalAlignment="Center" Margin="30,0,0,0" Text="2048 MB" />-->
  80. </Grid>
  81. <Grid x:Name="PanRamDisplay" Margin="0,11,2,0" SnapsToDevicePixels="True" Grid.Row="1" Grid.ColumnSpan="2" Grid.Column="1">
  82. <Grid.ColumnDefinitions>
  83. <ColumnDefinition x:Name="ColumnRamUsed" Width="4.7*"/>
  84. <ColumnDefinition x:Name="ColumnRamGame" Width="2.5*"/>
  85. <ColumnDefinition x:Name="ColumnRamEmpty" Width="0.7*"/>
  86. </Grid.ColumnDefinitions>
  87. <Grid.RowDefinitions>
  88. <RowDefinition />
  89. <RowDefinition Height="4" />
  90. <RowDefinition />
  91. </Grid.RowDefinitions>
  92. <Rectangle x:Name="RectRamUsed" Grid.Row="1" StrokeThickness="0" >
  93. <Rectangle.Fill>
  94. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  95. <GradientStop Color="{DynamicResource ColorObject3}" Offset="0"/>
  96. <GradientStop Color="{DynamicResource ColorObject2}" Offset="0.5"/>
  97. </LinearGradientBrush>
  98. </Rectangle.Fill>
  99. </Rectangle>
  100. <Rectangle Grid.Row="1" StrokeThickness="0" Grid.Column="1" Fill="{DynamicResource ColorBrush3}" Opacity="0.5" x:Name="RectRamGame" />
  101. <Rectangle x:Name="RectRamEmpty" Grid.Row="1" StrokeThickness="0" Grid.Column="2" Fill="{DynamicResource ColorBrush6}" Opacity="0.7" />
  102. <TextBlock x:Name="LabRamUsedTitle" Text="已使用内存" Grid.ColumnSpan="3" Opacity="0.7" TextTrimming="None" Margin="2,0,0,5" FontSize="11" HorizontalAlignment="Left" />
  103. <TextBlock x:Name="LabRamGameTitle" Text="游戏分配" Opacity="0.7" Grid.ColumnSpan="3" TextTrimming="None" Margin="2,0,0,5" FontSize="11" HorizontalAlignment="Left" />
  104. <StackPanel Grid.Row="2" Orientation="Horizontal" Grid.ColumnSpan="3" Margin="2,3,0,0" HorizontalAlignment="Left">
  105. <TextBlock x:Name="LabRamUsed" Text="4.7 GB" FontSize="16" Foreground="Black" TextTrimming="None" />
  106. <TextBlock x:Name="LabRamTotal" Text=" / 7.9 GB" FontSize="16" Foreground="Black" TextTrimming="None" />
  107. </StackPanel>
  108. <TextBlock Grid.Row="2" x:Name="LabRamGame" Text="2.5 GB" Grid.ColumnSpan="3" TextTrimming="None" Margin="2,3,0,0" FontSize="16" Foreground="Black" HorizontalAlignment="Left" />
  109. </Grid>
  110. </StackPanel>
  111. </local:MyCard>
  112. <local:MyCard x:Name="CardServer" Margin="0,0,0,15" Title="服务器">
  113. <StackPanel Margin="25,42,25,18">
  114. <Grid>
  115. <Grid.ColumnDefinitions>
  116. <ColumnDefinition Width="Auto" SharedSizeGroup="Name" />
  117. <ColumnDefinition Width="1*" />
  118. </Grid.ColumnDefinitions>
  119. <Grid.RowDefinitions>
  120. <RowDefinition Height="28" />
  121. <RowDefinition Height="Auto" />
  122. <RowDefinition Height="Auto" />
  123. <RowDefinition Height="Auto" />
  124. <RowDefinition Height="9" />
  125. <RowDefinition Height="28" />
  126. <RowDefinition Height="3" />
  127. </Grid.RowDefinitions>
  128. <TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="登录方式" Margin="0,0,25,0" />
  129. <local:MyComboBox x:Name="ComboServerLogin" Grid.Row="0" Grid.ColumnSpan="2" Tag="VersionServerLogin" Grid.Column="1">
  130. <local:MyComboBoxItem Content="正版登录或离线登录" IsSelected="True" />
  131. <local:MyComboBoxItem Content="仅正版登录" />
  132. <local:MyComboBoxItem Content="仅离线登录" />
  133. <local:MyComboBoxItem Content="第三方登录:统一通行证" />
  134. <local:MyComboBoxItem Content="第三方登录:Authlib Injector 或 LittleSkin" />
  135. </local:MyComboBox>
  136. <TextBlock Name="LabServerNide" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Left" Text="服务器 ID(必填)" Margin="0,8,25,0" Visibility="Collapsed" />
  137. <local:MyTextBox x:Name="TextServerNide" Grid.Row="1" Grid.ColumnSpan="2" ShowValidateResult="False" Tag="VersionServerNide" Grid.Column="1" Margin="0,8,0,0" Visibility="Collapsed" HintText="服主后台 → 集成说明 中提供的服务器 ID">
  138. <local:MyTextBox.ValidateRules>
  139. <local:ValidateLength Min="32" Max="32" />
  140. </local:MyTextBox.ValidateRules>
  141. </local:MyTextBox>
  142. <TextBlock Name="LabServerAuthServer" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Left" Text="认证服务器(必填)" Margin="0,8,25,0" Visibility="Collapsed" />
  143. <local:MyTextBox x:Name="TextServerAuthServer" Grid.Row="1" Grid.ColumnSpan="2" ShowValidateResult="False" Tag="VersionServerAuthServer" Grid.Column="1" Margin="0,8,0,0" Visibility="Collapsed" HintText="Yggdrasil API 认证服务器的完整地址">
  144. <local:MyTextBox.ValidateRules>
  145. <local:ValidateHttp />
  146. </local:MyTextBox.ValidateRules>
  147. </local:MyTextBox>
  148. <TextBlock Name="LabServerAuthRegister" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="注册链接" Margin="0,8,25,0" Visibility="Collapsed" />
  149. <local:MyTextBox x:Name="TextServerAuthRegister" Grid.Row="2" Grid.ColumnSpan="2" ShowValidateResult="False" Tag="VersionServerAuthRegister" Grid.Column="1" Margin="0,8,0,0" Visibility="Collapsed" HintText="注册账号的网页地址,如 https://xxxxx.xxx/auth/register">
  150. <local:MyTextBox.ValidateRules>
  151. <local:ValidateHttp />
  152. </local:MyTextBox.ValidateRules>
  153. </local:MyTextBox>
  154. <TextBlock Name="LabServerAuthName" Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Left" Text="服务器名称" Margin="0,8,25,0" Visibility="Collapsed" />
  155. <local:MyTextBox x:Name="TextServerAuthName" Grid.Row="3" Grid.ColumnSpan="2" ShowValidateResult="False" Tag="VersionServerAuthName" Grid.Column="1" Margin="0,8,0,0" Visibility="Collapsed" HintText="显示在登录页面的服务器名称" />
  156. <TextBlock VerticalAlignment="Center" Grid.Row="5" HorizontalAlignment="Left" Text="自动进入服务器" Margin="0,0,25,0" />
  157. <local:MyTextBox x:Name="TextServerEnter" Grid.ColumnSpan="2" Grid.Row="5" Tag="VersionServerEnter" Grid.Column="1" ToolTip="在打开 Minecraft 后自动进入某服务器。&#xa;用英文冒号间隔 IP 与端口,例如 233.233.233.233:12345。">
  158. <local:MyTextBox.ValidateRules>
  159. <local:ValidateExcept>
  160. <local:ValidateExcept.Excepts>
  161. <System:String>"</System:String>
  162. <System:String>“</System:String>
  163. <System:String>”</System:String>
  164. </local:ValidateExcept.Excepts>
  165. </local:ValidateExcept>
  166. </local:MyTextBox.ValidateRules>
  167. </local:MyTextBox>
  168. </Grid>
  169. <Grid Height="35" Name="PanServerNide" Margin="0,12,0,0">
  170. <Grid.ColumnDefinitions>
  171. <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
  172. <ColumnDefinition Width="Auto" SharedSizeGroup="Button" />
  173. </Grid.ColumnDefinitions>
  174. <local:MyButton x:Name="BtnServerNideWeb" Grid.Column="0" MinWidth="140" Text="服主后台" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" ColorType="Highlight" />
  175. <local:MyButton x:Name="BtnServerNideBbs" Grid.Column="1" MinWidth="140" Text="查看简介" Padding="13,0" Margin="0,0,20,0" HorizontalAlignment="Left" />
  176. </Grid>
  177. <local:MyButton x:Name="BtnServerAuthLittle" Height="35" MinWidth="150" Margin="0,12,0,0" Text="设置为 LittleSkin" HorizontalAlignment="Left" ColorType="Highlight" />
  178. </StackPanel>
  179. </local:MyCard>
  180. <local:MyCard x:Name="CardAdvance" Margin="0,0,0,15" Title="高级启动选项" IsSwaped="True" CanSwap="True">
  181. <Grid Margin="25,40,25,21">
  182. <Grid.ColumnDefinitions>
  183. <ColumnDefinition Width="Auto" SharedSizeGroup="Name" />
  184. <ColumnDefinition Width="1*" />
  185. <ColumnDefinition Width="60" />
  186. </Grid.ColumnDefinitions>
  187. <Grid.RowDefinitions>
  188. <RowDefinition Height="Auto" />
  189. <RowDefinition Height="9" />
  190. <RowDefinition Height="28" />
  191. <RowDefinition Height="9" />
  192. <RowDefinition Height="28" />
  193. <RowDefinition Height="9" />
  194. <RowDefinition Height="31" />
  195. <RowDefinition Height="Auto" />
  196. </Grid.RowDefinitions>
  197. <TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="JVM 参数头" Margin="0,0,25,0" />
  198. <local:MyTextBox x:Name="TextAdvanceJvm" Grid.Row="0" Grid.ColumnSpan="2" Tag="VersionAdvanceJvm" Grid.Column="1" ToolTip="启动 Minecraft 时使用的额外 JVM 参数,在没有确定把握的情况下请不要尝试修改。&#xa;若留空,则使用全局设置的值。" HintText="使用全局设置"
  199. Height="57" AcceptsReturn="True" TextWrapping="Wrap" VerticalContentAlignment="Top" Padding="0,5" />
  200. <TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="JVM 参数尾" Margin="0,0,25,0" />
  201. <local:MyTextBox x:Name="TextAdvanceGame" Grid.Row="2" Grid.ColumnSpan="2" Tag="VersionAdvanceGame" Grid.Column="1" ToolTip="文本框中的内容将会被直接拼合在启动参数的末尾。&#xa;例如输入 --demo 则会以试玩模式启动游戏。&#xa;若留空,则使用全局设置的值。" HintText="使用全局设置" />
  202. <TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="文件校验" Margin="0,0,25,0" />
  203. <local:MyComboBox x:Name="ComboAdvanceAssets" Grid.Row="4" Grid.ColumnSpan="2" Tag="VersionAdvanceAssets" Grid.Column="1">
  204. <local:MyComboBoxItem Content="使用全局设置" IsSelected="True" />
  205. <local:MyComboBoxItem Content="开启"
  206. ToolTip="在启动 Minecraft 时,简单校验并下载缺失或错误的文件" ToolTipService.HorizontalOffset="100" />
  207. <local:MyComboBoxItem Content="关闭"
  208. ToolTip="完全不更改 assets;不校验 libraries、第三方登录库与版本主 jar 文件是否被修改。&#xa;如果你没有修改相关文件,请勿勾选此项。" ToolTipService.HorizontalOffset="100" />
  209. </local:MyComboBox>
  210. <TextBlock Grid.Row="6" VerticalAlignment="Center" HorizontalAlignment="Left" Text="启动前执行命令" Margin="0,0,25,3" />
  211. <local:MyTextBox x:Name="TextAdvanceRun" Grid.Row="6" Grid.ColumnSpan="2" Tag="VersionAdvanceRun" Grid.Column="1" HintText="" Margin="0,0,0,3"
  212. ToolTip="该项不会覆盖全局设置:启动时会先执行全局设置的命令,再执行版本设置的命令。&#xa;&#xa;在 MC 启动前执行特定命令或程序,语法与 Windows 的命令提示符一致。&#xa;&#xa;可以使用以下替换标记实现相对路径(路径均以 \ 结尾):&#xa; · {path}:PCL 的 exe 文件所在的文件夹&#xa; · {minecraft}:.minecraft 文件夹&#xa; · {verpath}:版本文件夹(.minecraft\versions\版本名\)&#xa; · {verindie}:开启版本隔离时等同版本文件夹,未开启时等同 .minecraft 文件夹&#xa; · {java}:游戏运行时的 Java 文件夹&#xa;&#xa;除此之外,也支持以下替换标记:&#xa; · {user}:玩家名字&#xa; · {login}:玩家的登录方式&#xa; · {uuid}:玩家的 UUID&#xa; · {name}:游戏版本名&#xa; · {time}:当前的系统时间&#xa; · {version}:游戏对应的原版版本号&#xa;&#xa;例如:&#xa; · &quot;{verpath}test.exe&quot; :运行版本文件夹下的 test.exe 程序&#xa; · &quot;{java}java.exe&quot; -jar &quot;{verpath}test.jar&quot; :用 Java 运行版本文件夹下的 test.jar&#xa; · notepad &quot;{verindie}option.txt&quot; :使用记事本打开该版本的设置文件&#xa;&#xa;涉及路径的操作最好都打上双引号,以避免路径中的空格导致运行失败。" />
  213. <local:MyCheckBox Grid.Row="7" Grid.Column="1" x:Name="CheckAdvanceRunWait" Tag="VersionAdvanceRunWait" Visibility="Collapsed"
  214. Text="等待命令执行完成后再继续启动" Margin="0,5,0,0" />
  215. </Grid>
  216. </local:MyCard>
  217. </StackPanel>
  218. </local:MyScrollViewer>
  219. </local:MyPageRight>