PageSelectLeft.cs 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880
  1. using System;
  2. using System.CodeDom.Compiler;
  3. using System.Collections.Generic;
  4. using System.Collections.ObjectModel;
  5. using System.ComponentModel;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Runtime.CompilerServices;
  9. using System.Threading;
  10. using System.Windows;
  11. using System.Windows.Controls;
  12. using System.Windows.Controls.Primitives;
  13. using System.Windows.Input;
  14. using System.Windows.Markup;
  15. using System.Xml.Linq;
  16. using Microsoft.VisualBasic.CompilerServices;
  17. namespace PCL
  18. {
  19. // Token: 0x0200018F RID: 399
  20. [DesignerGenerated]
  21. public class PageSelectLeft : MyPageLeft, IRefreshable, IComponentConnector
  22. {
  23. // Token: 0x0600101F RID: 4127 RVA: 0x00009D98 File Offset: 0x00007F98
  24. public PageSelectLeft()
  25. {
  26. base.Initialized += this.PageSelectLeft_Initialized;
  27. base.Loaded += this.PageSelectLeft_Loaded;
  28. this.managerMapper = true;
  29. this.InitializeComponent();
  30. }
  31. // Token: 0x06001020 RID: 4128 RVA: 0x00009DD2 File Offset: 0x00007FD2
  32. private void PageSelectLeft_Initialized(object sender, EventArgs e)
  33. {
  34. ModMinecraft.m_CreatorTests.PreviewFinish += delegate(ModLoader.LoaderBase a0)
  35. {
  36. this._Lambda$__1-0();
  37. };
  38. }
  39. // Token: 0x06001021 RID: 4129 RVA: 0x00009DEA File Offset: 0x00007FEA
  40. private void PageSelectLeft_Loaded(object sender, RoutedEventArgs e)
  41. {
  42. if (this.managerMapper)
  43. {
  44. this.McFolderListUI();
  45. }
  46. this.managerMapper = false;
  47. }
  48. // Token: 0x06001022 RID: 4130 RVA: 0x00075A98 File Offset: 0x00073C98
  49. private void McFolderListUI()
  50. {
  51. checked
  52. {
  53. try
  54. {
  55. if (this.m_ModelMapper != null && Enumerable.SequenceEqual<ModMinecraft.McFolder>(this.m_ModelMapper, ModMinecraft.messageTests))
  56. {
  57. bool flag = true;
  58. int num = this.m_ModelMapper.Count - 1;
  59. int i = 0;
  60. while (i <= num)
  61. {
  62. if (this.m_ModelMapper[i].Equals(ModMinecraft.messageTests[i]))
  63. {
  64. i++;
  65. }
  66. else
  67. {
  68. flag = false;
  69. IL_5F:
  70. if (flag)
  71. {
  72. return;
  73. }
  74. goto IL_67;
  75. }
  76. }
  77. goto IL_5F;
  78. }
  79. IL_67:
  80. this.m_ModelMapper = ModMinecraft.messageTests;
  81. ModMain._InvocationIterator.PanList.Children.Clear();
  82. ModMain._InvocationIterator.PanList.Children.Add(new TextBlock
  83. {
  84. Text = "文件夹列表",
  85. Margin = new Thickness(13.0, 18.0, 5.0, 4.0),
  86. Opacity = 0.6,
  87. FontSize = 12.0
  88. });
  89. foreach (ModMinecraft.McFolder mcFolder in ModMinecraft.messageTests.ToArray())
  90. {
  91. PageSelectLeft._Closure$__4-0 CS$<>8__locals1 = new PageSelectLeft._Closure$__4-0(CS$<>8__locals1);
  92. CS$<>8__locals1.$VB$Local_ContMenu = null;
  93. switch (mcFolder.Type)
  94. {
  95. case ModMinecraft.McFolderType.Original:
  96. {
  97. PageSelectLeft._Closure$__4-0 CS$<>8__locals2 = CS$<>8__locals1;
  98. XElement xelement = new XElement(XName.Get("ContextMenu", "http://schemas.microsoft.com/winfx/2006/xaml/presentation"));
  99. xelement.Add(new XAttribute(XName.Get("xmlns", ""), "http://schemas.microsoft.com/winfx/2006/xaml/presentation"));
  100. xelement.Add(new XAttribute(XName.Get("x", "http://www.w3.org/2000/xmlns/"), "http://schemas.microsoft.com/winfx/2006/xaml"));
  101. xelement.Add(new XAttribute(XName.Get("local", "http://www.w3.org/2000/xmlns/"), "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  102. XElement xelement2 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  103. xelement2.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Rename"));
  104. xelement2.Add(new XAttribute(XName.Get("Header", ""), "重命名"));
  105. xelement2.Add(new XAttribute(XName.Get("Padding", ""), "0,2,0,0"));
  106. xelement2.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 53.2929,21.2929L 54.7071,22.7071C 56.4645,24.4645 56.4645,27.3137 54.7071,29.0711L 52.2323,31.5459L 44.4541,23.7677L 46.9289,21.2929C 48.6863,19.5355 51.5355,19.5355 53.2929,21.2929 Z M 31.7262,52.052L 23.948,44.2738L 43.0399,25.182L 50.818,32.9601L 31.7262,52.052 Z M 23.2409,47.1023L 28.8977,52.7591L 21.0463,54.9537L 23.2409,47.1023 Z"));
  107. xelement.Add(xelement2);
  108. XElement xelement3 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  109. xelement3.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Open"));
  110. xelement3.Add(new XAttribute(XName.Get("Header", ""), "打开"));
  111. xelement3.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 19,50L 28,34L 63,34L 54,50L 19,50 Z M 19,28.0001L 35,28C 36,25 37.4999,24.0001 37.4999,24.0001L 48.75,24C 49.3023,24 50,24.6977 50,25.25L 50,28L 54,28.0001L 54,32L 27,32L 19,46.4L 19,28.0001 Z"));
  112. xelement.Add(xelement3);
  113. XElement xelement4 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  114. xelement4.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Refresh"));
  115. xelement4.Add(new XAttribute(XName.Get("Header", ""), "刷新"));
  116. xelement4.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 38,20.5833C 42.9908,20.5833 47.4912,22.6825 50.6667,26.046L 50.6667,17.4167L 55.4166,22.1667L 55.4167,34.8333L 42.75,34.8333L 38,30.0833L 46.8512,30.0833C 44.6768,27.6539 41.517,26.125 38,26.125C 31.9785,26.125 27.0037,30.6068 26.2296,36.4167L 20.6543,36.4167C 21.4543,27.5397 28.9148,20.5833 38,20.5833 Z M 38,49.875C 44.0215,49.875 48.9963,45.3932 49.7703,39.5833L 55.3457,39.5833C 54.5457,48.4603 47.0852,55.4167 38,55.4167C 33.0092,55.4167 28.5088,53.3175 25.3333,49.954L 25.3333,58.5833L 20.5833,53.8333L 20.5833,41.1667L 33.25,41.1667L 38,45.9167L 29.1487,45.9167C 31.3231,48.3461 34.483,49.875 38,49.875 Z"));
  117. xelement.Add(xelement4);
  118. XElement xelement5 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  119. xelement5.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Delete"));
  120. xelement5.Add(new XAttribute(XName.Get("Header", ""), "删除"));
  121. xelement5.Add(new XAttribute(XName.Get("Padding", ""), "0,0,0,2"));
  122. xelement5.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 26.9166,22.1667L 37.9999,33.25L 49.0832,22.1668L 53.8332,26.9168L 42.7499,38L 53.8332,49.0834L 49.0833,53.8334L 37.9999,42.75L 26.9166,53.8334L 22.1666,49.0833L 33.25,38L 22.1667,26.9167L 26.9166,22.1667 Z "));
  123. xelement.Add(xelement5);
  124. CS$<>8__locals2.$VB$Local_ContMenu = (ContextMenu)ModBase.GetObjectFromXML(xelement);
  125. break;
  126. }
  127. case ModMinecraft.McFolderType.RenamedOriginal:
  128. {
  129. PageSelectLeft._Closure$__4-0 CS$<>8__locals3 = CS$<>8__locals1;
  130. XElement xelement6 = new XElement(XName.Get("ContextMenu", "http://schemas.microsoft.com/winfx/2006/xaml/presentation"));
  131. xelement6.Add(new XAttribute(XName.Get("xmlns", ""), "http://schemas.microsoft.com/winfx/2006/xaml/presentation"));
  132. xelement6.Add(new XAttribute(XName.Get("x", "http://www.w3.org/2000/xmlns/"), "http://schemas.microsoft.com/winfx/2006/xaml"));
  133. xelement6.Add(new XAttribute(XName.Get("local", "http://www.w3.org/2000/xmlns/"), "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  134. XElement xelement7 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  135. xelement7.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Remove"));
  136. xelement7.Add(new XAttribute(XName.Get("Header", ""), "复原名称"));
  137. xelement7.Add(new XAttribute(XName.Get("Padding", ""), "0,2,0,0"));
  138. xelement7.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 53.2929,21.2929L 54.7071,22.7071C 56.4645,24.4645 56.4645,27.3137 54.7071,29.0711L 52.2323,31.5459L 44.4541,23.7677L 46.9289,21.2929C 48.6863,19.5355 51.5355,19.5355 53.2929,21.2929 Z M 31.7262,52.052L 23.948,44.2738L 43.0399,25.182L 50.818,32.9601L 31.7262,52.052 Z M 23.2409,47.1023L 28.8977,52.7591L 21.0463,54.9537L 23.2409,47.1023 Z"));
  139. xelement6.Add(xelement7);
  140. XElement xelement8 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  141. xelement8.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Rename"));
  142. xelement8.Add(new XAttribute(XName.Get("Header", ""), "重命名"));
  143. xelement8.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 53.2929,21.2929L 54.7071,22.7071C 56.4645,24.4645 56.4645,27.3137 54.7071,29.0711L 52.2323,31.5459L 44.4541,23.7677L 46.9289,21.2929C 48.6863,19.5355 51.5355,19.5355 53.2929,21.2929 Z M 31.7262,52.052L 23.948,44.2738L 43.0399,25.182L 50.818,32.9601L 31.7262,52.052 Z M 23.2409,47.1023L 28.8977,52.7591L 21.0463,54.9537L 23.2409,47.1023 Z"));
  144. xelement6.Add(xelement8);
  145. XElement xelement9 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  146. xelement9.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Open"));
  147. xelement9.Add(new XAttribute(XName.Get("Header", ""), "打开"));
  148. xelement9.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 19,50L 28,34L 63,34L 54,50L 19,50 Z M 19,28.0001L 35,28C 36,25 37.4999,24.0001 37.4999,24.0001L 48.75,24C 49.3023,24 50,24.6977 50,25.25L 50,28L 54,28.0001L 54,32L 27,32L 19,46.4L 19,28.0001 Z"));
  149. xelement6.Add(xelement9);
  150. XElement xelement10 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  151. xelement10.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Refresh"));
  152. xelement10.Add(new XAttribute(XName.Get("Header", ""), "刷新"));
  153. xelement10.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 38,20.5833C 42.9908,20.5833 47.4912,22.6825 50.6667,26.046L 50.6667,17.4167L 55.4166,22.1667L 55.4167,34.8333L 42.75,34.8333L 38,30.0833L 46.8512,30.0833C 44.6768,27.6539 41.517,26.125 38,26.125C 31.9785,26.125 27.0037,30.6068 26.2296,36.4167L 20.6543,36.4167C 21.4543,27.5397 28.9148,20.5833 38,20.5833 Z M 38,49.875C 44.0215,49.875 48.9963,45.3932 49.7703,39.5833L 55.3457,39.5833C 54.5457,48.4603 47.0852,55.4167 38,55.4167C 33.0092,55.4167 28.5088,53.3175 25.3333,49.954L 25.3333,58.5833L 20.5833,53.8333L 20.5833,41.1667L 33.25,41.1667L 38,45.9167L 29.1487,45.9167C 31.3231,48.3461 34.483,49.875 38,49.875 Z"));
  154. xelement6.Add(xelement10);
  155. XElement xelement11 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  156. xelement11.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Delete"));
  157. xelement11.Add(new XAttribute(XName.Get("Header", ""), "删除"));
  158. xelement11.Add(new XAttribute(XName.Get("Padding", ""), "0,0,0,2"));
  159. xelement11.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 26.9166,22.1667L 37.9999,33.25L 49.0832,22.1668L 53.8332,26.9168L 42.7499,38L 53.8332,49.0834L 49.0833,53.8334L 37.9999,42.75L 26.9166,53.8334L 22.1666,49.0833L 33.25,38L 22.1667,26.9167L 26.9166,22.1667 Z "));
  160. xelement6.Add(xelement11);
  161. CS$<>8__locals3.$VB$Local_ContMenu = (ContextMenu)ModBase.GetObjectFromXML(xelement6);
  162. break;
  163. }
  164. case ModMinecraft.McFolderType.Custom:
  165. {
  166. PageSelectLeft._Closure$__4-0 CS$<>8__locals4 = CS$<>8__locals1;
  167. XElement xelement12 = new XElement(XName.Get("ContextMenu", "http://schemas.microsoft.com/winfx/2006/xaml/presentation"));
  168. xelement12.Add(new XAttribute(XName.Get("xmlns", ""), "http://schemas.microsoft.com/winfx/2006/xaml/presentation"));
  169. xelement12.Add(new XAttribute(XName.Get("x", "http://www.w3.org/2000/xmlns/"), "http://schemas.microsoft.com/winfx/2006/xaml"));
  170. xelement12.Add(new XAttribute(XName.Get("local", "http://www.w3.org/2000/xmlns/"), "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  171. XElement xelement13 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  172. xelement13.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Rename"));
  173. xelement13.Add(new XAttribute(XName.Get("Header", ""), "重命名"));
  174. xelement13.Add(new XAttribute(XName.Get("Padding", ""), "0,2,0,0"));
  175. xelement13.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 53.2929,21.2929L 54.7071,22.7071C 56.4645,24.4645 56.4645,27.3137 54.7071,29.0711L 52.2323,31.5459L 44.4541,23.7677L 46.9289,21.2929C 48.6863,19.5355 51.5355,19.5355 53.2929,21.2929 Z M 31.7262,52.052L 23.948,44.2738L 43.0399,25.182L 50.818,32.9601L 31.7262,52.052 Z M 23.2409,47.1023L 28.8977,52.7591L 21.0463,54.9537L 23.2409,47.1023 Z"));
  176. xelement12.Add(xelement13);
  177. XElement xelement14 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  178. xelement14.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Open"));
  179. xelement14.Add(new XAttribute(XName.Get("Header", ""), "打开"));
  180. xelement14.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 19,50L 28,34L 63,34L 54,50L 19,50 Z M 19,28.0001L 35,28C 36,25 37.4999,24.0001 37.4999,24.0001L 48.75,24C 49.3023,24 50,24.6977 50,25.25L 50,28L 54,28.0001L 54,32L 27,32L 19,46.4L 19,28.0001 Z"));
  181. xelement12.Add(xelement14);
  182. XElement xelement15 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  183. xelement15.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Refresh"));
  184. xelement15.Add(new XAttribute(XName.Get("Header", ""), "刷新"));
  185. xelement15.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 38,20.5833C 42.9908,20.5833 47.4912,22.6825 50.6667,26.046L 50.6667,17.4167L 55.4166,22.1667L 55.4167,34.8333L 42.75,34.8333L 38,30.0833L 46.8512,30.0833C 44.6768,27.6539 41.517,26.125 38,26.125C 31.9785,26.125 27.0037,30.6068 26.2296,36.4167L 20.6543,36.4167C 21.4543,27.5397 28.9148,20.5833 38,20.5833 Z M 38,49.875C 44.0215,49.875 48.9963,45.3932 49.7703,39.5833L 55.3457,39.5833C 54.5457,48.4603 47.0852,55.4167 38,55.4167C 33.0092,55.4167 28.5088,53.3175 25.3333,49.954L 25.3333,58.5833L 20.5833,53.8333L 20.5833,41.1667L 33.25,41.1667L 38,45.9167L 29.1487,45.9167C 31.3231,48.3461 34.483,49.875 38,49.875 Z"));
  186. xelement12.Add(xelement15);
  187. XElement xelement16 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  188. xelement16.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Remove"));
  189. xelement16.Add(new XAttribute(XName.Get("Header", ""), "移出列表"));
  190. xelement16.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 23.3428,25.205L 23.3805,25.4461C 23.9229,27.177 30.261,29.0992 38,29.0992C 45.7386,29.0992 52.0765,27.1771 52.6194,25.4463L 52.6571,25.205C 52.6571,23.3616 46.0949,21.3109 38,21.3109C 29.9051,21.3109 23.3428,23.3616 23.3428,25.205 Z M 23.3428,53.0204L 19.1571,26.2111C 19.0534,25.8817 19,25.5459 19,25.205C 19,20.9036 27.5066,17.4167 38,17.4167C 48.4934,17.4167 57,20.9036 57,25.205C 57,25.5459 56.9466,25.8818 56.8429,26.2112L 52.6571,53.0204L 52.5974,53.0204C 51.9241,56.1393 45.6457,58.5833 38,58.5833C 30.3543,58.5833 24.076,56.1393 23.4026,53.0204L 23.3428,53.0204 Z M 51.8228,30.5485C 48.3585,32.0537 43.4469,32.9933 38,32.9933C 32.5531,32.9933 27.6415,32.0537 24.1771,30.5484L 27.5988,52.464L 27.6857,52.464C 27.6857,53.3857 32.3036,54.6892 38,54.6892C 43.6964,54.6892 48.3143,53.3857 48.3143,52.464L 48.4011,52.464L 51.8228,30.5485 Z "));
  191. xelement12.Add(xelement16);
  192. XElement xelement17 = new XElement(XName.Get("MyMenuItem", "clr-namespace:PCL;assembly=Plain Craft Launcher 2"));
  193. xelement17.Add(new XAttribute(XName.Get("Name", "http://schemas.microsoft.com/winfx/2006/xaml"), "Delete"));
  194. xelement17.Add(new XAttribute(XName.Get("Header", ""), "删除"));
  195. xelement17.Add(new XAttribute(XName.Get("Padding", ""), "0,0,0,2"));
  196. xelement17.Add(new XAttribute(XName.Get("Icon", ""), "F1 M 26.9166,22.1667L 37.9999,33.25L 49.0832,22.1668L 53.8332,26.9168L 42.7499,38L 53.8332,49.0834L 49.0833,53.8334L 37.9999,42.75L 26.9166,53.8334L 22.1666,49.0833L 33.25,38L 22.1667,26.9167L 26.9166,22.1667 Z "));
  197. xelement12.Add(xelement17);
  198. CS$<>8__locals4.$VB$Local_ContMenu = (ContextMenu)ModBase.GetObjectFromXML(xelement12);
  199. break;
  200. }
  201. }
  202. if ((mcFolder.Type == ModMinecraft.McFolderType.Original || mcFolder.Type == ModMinecraft.McFolderType.RenamedOriginal) && Operators.CompareString(mcFolder.Path, ModBase.Path + ".minecraft\\", false) == 0 && ModMinecraft.messageTests.Count == 1)
  203. {
  204. ((MyMenuItem)CS$<>8__locals1.$VB$Local_ContMenu.FindName("Delete")).Header = "清空";
  205. }
  206. if (mcFolder.Type != ModMinecraft.McFolderType.Original)
  207. {
  208. ((MyMenuItem)CS$<>8__locals1.$VB$Local_ContMenu.FindName("Remove")).AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(ModMain._InvocationIterator.Remove_Click));
  209. }
  210. ((MyMenuItem)CS$<>8__locals1.$VB$Local_ContMenu.FindName("Open")).AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(ModMain._InvocationIterator.Open_Click));
  211. ((MyMenuItem)CS$<>8__locals1.$VB$Local_ContMenu.FindName("Delete")).AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(ModMain._InvocationIterator.Delete_Click));
  212. ((MyMenuItem)CS$<>8__locals1.$VB$Local_ContMenu.FindName("Rename")).AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(ModMain._InvocationIterator.Rename_Click));
  213. ((MyMenuItem)CS$<>8__locals1.$VB$Local_ContMenu.FindName("Refresh")).AddHandler(MenuItem.ClickEvent, new RoutedEventHandler(ModMain._InvocationIterator.Refresh_Click));
  214. CS$<>8__locals1.$VB$Local_NewItem = new MyListItem
  215. {
  216. IsScaleAnimationEnabled = false,
  217. Type = MyListItem.CheckType.RadioBox,
  218. MinPaddingRight = 30,
  219. Title = mcFolder.Name,
  220. Info = mcFolder.Path,
  221. Height = 40.0,
  222. ContextMenu = CS$<>8__locals1.$VB$Local_ContMenu,
  223. Tag = mcFolder
  224. };
  225. MyListItem $VB$Local_NewItem = CS$<>8__locals1.$VB$Local_NewItem;
  226. PageSelectLeft._Closure$__R4-1 CS$<>8__locals5 = new PageSelectLeft._Closure$__R4-1(CS$<>8__locals5);
  227. CS$<>8__locals5.$VB$NonLocal_2 = ModMain._InvocationIterator;
  228. $VB$Local_NewItem.Changed += delegate(object sender, ModBase.RouteEventArgs e)
  229. {
  230. CS$<>8__locals5.$VB$NonLocal_2.Folder_Change((MyListItem)sender, e);
  231. };
  232. MyIconButton myIconButton = new MyIconButton
  233. {
  234. Logo = "M651.946667 1001.813333c-22.186667 0-42.666667-10.24-61.44-27.306666-23.893333-23.893333-49.493333-35.84-75.093334-35.84-29.013333 0-56.32 11.946667-73.386666 30.72v3.413333c-17.066667 17.066667-42.666667 27.306667-66.56 27.306667h-6.826667c-6.826667 0-11.946667-1.706667-15.36-1.706667l-6.826667-1.706667c-64.853333-20.48-121.173333-54.613333-168.96-98.986666-29.013333-23.893333-37.546667-63.146667-25.6-95.573334 8.533333-23.893333 5.12-51.2-10.24-75.093333-15.36-27.306667-34.133333-40.96-59.733333-47.786667h-1.706667l-5.12-1.706666c-35.84-8.533333-61.44-34.133333-66.56-69.973334C1.706667 575.146667 0 537.6 0 512c0-32.426667 3.413333-63.146667 8.533333-93.866667v-6.826666l3.413334-8.533334c10.24-23.893333 23.893333-40.96 44.373333-51.2 5.12-3.413333 11.946667-6.826667 20.48-8.533333 27.306667-8.533333 51.2-25.6 63.146667-44.373333 13.653333-23.893333 17.066667-52.906667 10.24-81.92-11.946667-34.133333 0-71.68 30.72-93.866667 44.373333-37.546667 97.28-68.266667 158.72-93.866667l3.413333-1.706666c44.373333-13.653333 75.093333 3.413333 92.16 20.48 23.893333 23.893333 49.493333 35.84 75.093333 35.84 30.72 0 56.32-10.24 71.68-30.72l3.413334-3.413334c27.306667-27.306667 63.146667-35.84 93.866666-22.186666 63.146667 22.186667 117.76 54.613333 165.546667 97.28 29.013333 23.893333 37.546667 63.146667 25.6 95.573333-8.533333 23.893333-5.12 51.2 10.24 75.093333 15.36 27.306667 34.133333 40.96 59.733333 47.786667h1.706667l5.12 1.706667c35.84 8.533333 61.44 34.133333 66.56 71.68 6.826667 30.72 10.24 63.146667 11.946667 93.866666v3.413334c0 32.426667-3.413333 63.146667-8.533334 93.866666v6.826667l-3.413333 8.533333c-10.24 23.893333-23.893333 40.96-44.373333 51.2-5.12 3.413333-11.946667 6.826667-20.48 8.533334-27.306667 8.533333-51.2 25.6-63.146667 46.08-13.653333 23.893333-17.066667 52.906667-10.24 81.92 11.946667 35.84-1.706667 75.093333-30.72 95.573333-44.373333 35.84-95.573333 66.56-157.013333 92.16-15.36 3.413333-27.306667 3.413333-35.84 3.413333z m3.413333-83.626666z m1.706667 0zM517.12 853.333333c47.786667 0 93.866667 20.48 134.826667 59.733334 1.706667 1.706667 3.413333 1.706667 3.413333 3.413333 52.906667-22.186667 97.28-49.493333 136.533333-80.213333l1.706667-1.706667v-3.413333c-13.653333-52.906667-8.533333-104.106667 17.066667-148.48 23.893333-39.253333 64.853333-69.973333 114.346666-85.333334 1.706667 0 3.413333-1.706667 6.826667-6.826666 5.12-25.6 8.533333-51.2 8.533333-78.506667-1.706667-29.013333-3.413333-56.32-10.24-81.92v-5.12h-1.706666c-51.2-11.946667-90.453333-39.253333-119.466667-87.04-27.306667-44.373333-34.133333-100.693333-17.066667-148.48l-1.706666-1.706667h-3.413334c-39.253333-35.84-85.333333-63.146667-136.533333-80.213333H648.533333s-1.706667 1.706667-3.413333 1.706667c-32.426667 39.253333-80.213333 59.733333-136.533333 59.733333-47.786667 0-93.866667-20.48-134.826667-59.733333l-1.706667-1.706667h-1.706666c-54.613333 22.186667-98.986667 49.493333-136.533334 80.213333l-1.706666 1.706667v3.413333c13.653333 52.906667 8.533333 104.106667-17.066667 148.48-23.893333 39.253333-64.853333 69.973333-114.346667 85.333334-1.706667 0-3.413333 1.706667-6.826666 6.826666-6.826667 25.6-8.533333 51.2-8.533334 78.506667 0 30.72 3.413333 58.026667 6.826667 76.8l1.706667 5.12h1.706666c51.2 11.946667 90.453333 39.253333 119.466667 87.04 27.306667 44.373333 34.133333 100.693333 17.066667 148.48l1.706666 1.706667 1.706667 1.706666c37.546667 35.84 83.626667 63.146667 134.826667 80.213334 1.706667 0 3.413333 0 3.413333 1.706666h1.706667s1.706667 0 5.12-1.706666c34.133333-37.546667 81.92-59.733333 136.533333-59.733334z m-6.826667-146.773333c-110.933333 0-199.68-85.333333-199.68-196.266667 0-109.226667 87.04-196.266667 199.68-196.266666s199.68 85.333333 199.68 196.266666c-1.706667 109.226667-88.746667 196.266667-199.68 196.266667z m0-307.2c-63.146667 0-114.346667 49.493333-114.346666 110.933333 0 63.146667 49.493333 110.933333 114.346666 110.933334 30.72 0 59.733333-11.946667 80.213334-32.426667 20.48-20.48 32.426667-49.493333 32.426666-78.506667 0-63.146667-49.493333-110.933333-112.64-110.933333z",
  235. LogoScale = 1.1
  236. };
  237. myIconButton.Click += delegate(object sender, EventArgs e)
  238. {
  239. CS$<>8__locals1.$VB$Local_ContMenu.PlacementTarget = CS$<>8__locals1.$VB$Local_NewItem;
  240. CS$<>8__locals1.$VB$Local_ContMenu.IsOpen = true;
  241. };
  242. CS$<>8__locals1.$VB$Local_NewItem.Buttons = new MyIconButton[]
  243. {
  244. myIconButton
  245. };
  246. ModMain._InvocationIterator.PanList.Children.Add(CS$<>8__locals1.$VB$Local_NewItem);
  247. ModBase.Log("[Minecraft] 有效的 Minecraft 文件夹:" + mcFolder.Name + " > " + mcFolder.Path, ModBase.LogLevel.Normal, "出现错误");
  248. }
  249. ModMain._InvocationIterator.PanList.Children.Add(new TextBlock
  250. {
  251. Text = "添加或导入",
  252. Margin = new Thickness(13.0, 18.0, 5.0, 4.0),
  253. Opacity = 0.6,
  254. FontSize = 12.0
  255. });
  256. if (!Directory.Exists(ModBase.Path + ".minecraft\\"))
  257. {
  258. MyListItem myListItem = new MyListItem
  259. {
  260. IsScaleAnimationEnabled = false,
  261. Type = MyListItem.CheckType.Clickable,
  262. Title = "新建 .minecraft 文件夹",
  263. Height = 34.0,
  264. ToolTip = "在 PCL 当前所在文件夹下创建新的 .minecraft 文件夹",
  265. LogoScale = 0.9,
  266. Logo = "M103.331925 384.978025l25.805736 0L129.137661 161.847132c0-18.313088 14.905478-33.718963 33.718963-33.718963l0.969071 0 253.006318 0c10.82044 0 20.218484 4.797259 26.500561 12.257162l117.579929 126.753869 297.819966 0c18.297738 0 33.736359 15.179724 33.736359 33.977859l0 0.952698 0 82.909292 25.547863 0c18.538215 0 34.187637 15.179724 34.187637 33.977859 0 2.163269-0.469698 3.617387-0.469698 5.539156l-54.437843 432.971086c-1.210571 10.382465-7.007601 19.056008-14.968923 24.352641-6.249331 5.765307-14.680351 9.624195-23.595394 9.624195l-0.969071 0-694.906773 0c-9.155521 0-17.344017-3.858888-23.626094-9.155521-8.67252-5.765307-14.453177-14.939247-15.389502-25.758664L69.597613 423.040922c-2.165316-18.313088 10.868535-35.414581 29.665647-38.062897L103.331925 384.978025 103.331925 384.978025zM196.576609 384.978025 196.576609 384.978025l627.938546 0 0-49.625234L546.461371 335.352791l0 0c-9.400091 0-18.329461-4.117784-25.048489-11.110035L402.363486 196.067514 196.576609 196.067514 196.576609 384.978025 196.576609 384.978025zM879.469767 452.916347 879.469767 452.916347l-20.267603 0-0.469698 0-0.969071 0-694.906773 0-0.984421 0-20.218484 0 45.781696 366.728382 646.218888 0L879.469767 452.916347 879.469767 452.916347z"
  267. };
  268. ToolTipService.SetPlacement(myListItem, PlacementMode.Right);
  269. ToolTipService.SetHorizontalOffset(myListItem, -50.0);
  270. ToolTipService.SetVerticalOffset(myListItem, 2.5);
  271. ModMain._InvocationIterator.PanList.Children.Add(myListItem);
  272. MyListItem myListItem2 = myListItem;
  273. PageSelectLeft._Closure$__R4-2 CS$<>8__locals6 = new PageSelectLeft._Closure$__R4-2(CS$<>8__locals6);
  274. CS$<>8__locals6.$VB$NonLocal_3 = ModMain._InvocationIterator;
  275. myListItem2.Click += delegate(object sender, MouseButtonEventArgs e)
  276. {
  277. CS$<>8__locals6.$VB$NonLocal_3.Create_Click();
  278. };
  279. }
  280. MyListItem myListItem3 = new MyListItem
  281. {
  282. IsScaleAnimationEnabled = false,
  283. Type = MyListItem.CheckType.Clickable,
  284. Title = "添加已有文件夹",
  285. Height = 34.0,
  286. ToolTip = "将一个已有的 Minecraft 文件夹添加到列表",
  287. Logo = "M512.277 954.412c-118.89 0-230.659-46.078-314.73-129.73S67.12 629.666 67.12 511.222s46.327-229.744 130.398-313.427 195.82-129.73 314.73-129.73 230.659 46.078 314.72 129.73S957.397 392.81 957.397 511.183 911.078 740.96 826.97 824.642s-195.8 129.77-314.692 129.77z m0-822.784c-101.972 0-197.809 39.494-269.865 111.222s-111.7 166.997-111.7 268.373 39.653 196.695 111.67 268.335S410.246 890.78 512.248 890.78s197.809-39.484 269.865-111.222 111.7-166.998 111.67-268.374c-0.03-101.375-39.654-196.665-111.67-268.303S614.22 131.628 512.277 131.628z m222.585 347.8H544.073V288.64c-0.76-17.561-15.613-31.18-33.173-30.419-16.495 0.714-29.704 13.924-30.419 30.419v190.787H289.703c-17.56 0.761-31.179 15.614-30.419 33.174 0.715 16.494 13.924 29.703 30.42 30.418H480.48v190.788c0.761 17.56 15.614 31.179 33.174 30.419 16.494-0.715 29.703-13.925 30.418-30.42V543.02h190.788c17.56 0.762 32.413-12.857 33.173-30.418 0.762-17.561-12.858-32.414-30.419-33.174a31.683 31.683 0 0 0-2.753 0z"
  288. };
  289. ToolTipService.SetPlacement(myListItem3, PlacementMode.Right);
  290. ToolTipService.SetHorizontalOffset(myListItem3, -50.0);
  291. ToolTipService.SetVerticalOffset(myListItem3, 2.5);
  292. ModMain._InvocationIterator.PanList.Children.Add(myListItem3);
  293. MyListItem myListItem4 = myListItem3;
  294. PageSelectLeft._Closure$__R4-3 CS$<>8__locals7 = new PageSelectLeft._Closure$__R4-3(CS$<>8__locals7);
  295. CS$<>8__locals7.$VB$NonLocal_4 = ModMain._InvocationIterator;
  296. myListItem4.Click += delegate(object sender, MouseButtonEventArgs e)
  297. {
  298. CS$<>8__locals7.$VB$NonLocal_4.Add_Click();
  299. };
  300. MyListItem myListItem5 = new MyListItem
  301. {
  302. IsScaleAnimationEnabled = false,
  303. Type = MyListItem.CheckType.Clickable,
  304. Title = "导入整合包",
  305. Height = 34.0,
  306. ToolTip = "在当前选择的 Minecraft 文件夹下安装整合包",
  307. Logo = "M512 40.96C249.344 40.96 35.84 252.416 35.84 512s213.504 471.04 476.16 471.04c103.424 0 202.752-33.28 286.72-96.256l1.536-1.536c5.12-5.632 7.68-12.8 7.68-19.968 0-16.896-13.824-30.208-30.72-30.208-7.68 0-15.36 2.56-20.992 7.68h-0.512c-71.68 52.224-155.648 79.36-243.712 79.36-227.328 0-412.16-182.784-412.16-407.552 0-224.768 184.832-407.552 412.16-407.552s412.16 182.784 412.16 407.552c0 68.608-15.872 132.608-46.592 190.464-0.512 1.024-1.024 2.048-1.024 3.072-0.512 2.048-1.536 4.608-1.536 8.192 0 16.896 13.824 30.208 30.72 30.208 12.288 0 23.04-7.168 28.16-18.432 35.84-68.608 53.76-141.312 53.76-216.064 0.512-259.584-212.992-471.04-475.648-471.04z M812.032 483.328c-31.744-20.992-71.68 1.536-78.848 6.144-1.024 0.512-104.448 61.44-128 74.752-8.192 4.608-22.528-0.512-27.136-4.096-31.232-36.352-54.272-70.656-68.608-102.4-13.312-29.184 0.512-41.472 3.072-43.52 7.168-4.608 114.688-68.608 143.36-83.456 24.064-12.288 40.96-25.088 46.08-45.056 3.072-13.312 0-27.136-9.216-39.936-22.016-31.744-172.544-84.992-311.296-3.584-157.184 91.648-152.064 242.688-150.528 292.352v9.216c0 18.944-12.8 37.376-14.848 40.448l-20.992 21.504c-6.144 6.144-9.216 13.824-9.216 22.528 0 8.704 3.584 16.384 9.728 22.528 12.8 12.288 32.768 11.776 45.056-0.512l22.528-23.552 0.512-0.512c3.072-3.584 30.208-38.4 30.208-81.92l-0.512-11.264c-1.536-44.544-5.632-162.816 119.296-235.52 88.064-51.2 173.056-32.256 208.896-19.968-36.864 19.456-143.36 83.456-144.896 84.48-22.016 14.336-55.808 58.88-26.112 122.88 17.408 37.376 43.52 76.8 80.896 120.32 14.336 17.408 62.976 37.376 103.424 15.36 24.576-13.312 125.44-73.216 130.048-75.776 2.048-1.024 4.608-2.56 7.68-3.584 0 2.56-0.512 6.144-1.024 10.752-5.632 35.84-35.328 155.136-191.488 181.76-49.664 8.704-89.6 3.584-121.856-0.512h-0.512c-37.888-4.608-73.216-9.216-101.888 14.336-31.232 26.112-40.96 34.304-35.84 54.272 3.584 14.336 16.384 24.064 30.72 24.064 2.56 0 5.12-0.512 7.68-1.024 6.656-1.536 12.8-5.632 16.896-10.752 2.048-2.048 7.68-6.656 20.992-18.432 6.656-5.632 25.088-3.584 52.736 0 34.816 4.608 81.92 10.24 141.312 0.512 157.184-26.624 228.864-138.752 243.2-234.496 7.68-38.912 0-64.512-21.504-78.336z"
  308. };
  309. ToolTipService.SetPlacement(myListItem5, PlacementMode.Right);
  310. ToolTipService.SetHorizontalOffset(myListItem5, -50.0);
  311. ToolTipService.SetVerticalOffset(myListItem5, 2.5);
  312. ModMain._InvocationIterator.PanList.Children.Add(myListItem5);
  313. myListItem5.Click += ((PageSelectLeft._Closure$__.$IR4-8 == null) ? (PageSelectLeft._Closure$__.$IR4-8 = delegate(object sender, MouseButtonEventArgs e)
  314. {
  315. ModModpack.ModpackInstall();
  316. }) : PageSelectLeft._Closure$__.$IR4-8);
  317. ModMain._InvocationIterator.PanList.Children.Add(new FrameworkElement
  318. {
  319. Height = 10.0,
  320. IsHitTestVisible = false
  321. });
  322. int num2 = ModMinecraft.messageTests.Count - 1;
  323. for (int k = 0; k <= num2; k++)
  324. {
  325. if (Operators.CompareString(ModMinecraft.messageTests[k].Path, ModMinecraft.m_ProxyTests, false) == 0)
  326. {
  327. ((MyListItem)ModMain._InvocationIterator.PanList.Children[k + 1]).Checked = true;
  328. return;
  329. }
  330. }
  331. if (!Enumerable.Any<ModMinecraft.McFolder>(ModMinecraft.messageTests))
  332. {
  333. throw new ArgumentNullException("没有可用的 Minecraft 文件夹");
  334. }
  335. ModBase.m_IdentifierRepository.Set("LaunchFolderSelect", ModMinecraft.messageTests[0].Path.Replace(ModBase.Path, "$"), false, null);
  336. ((MyListItem)ModMain._InvocationIterator.PanList.Children[1]).Checked = true;
  337. }
  338. catch (Exception ex)
  339. {
  340. ModBase.Log(ex, "构建 Minecraft 文件夹列表 UI 出错", ModBase.LogLevel.Feedback, "出现错误");
  341. }
  342. finally
  343. {
  344. ModLoader.LoaderFolderRun(ModMinecraft._ListenerTests, ModMinecraft.m_ProxyTests, ModLoader.LoaderFolderRunType.RunOnUpdated, 1, "versions\\", false);
  345. }
  346. }
  347. }
  348. // Token: 0x06001023 RID: 4131 RVA: 0x00076B40 File Offset: 0x00074D40
  349. public void Add_Click()
  350. {
  351. string text = "";
  352. if (ModNet.HasDownloadingTask(false))
  353. {
  354. ModMain.Hint("在下载任务进行时,无法添加游戏文件夹!", ModMain.HintType.Critical, true);
  355. return;
  356. }
  357. try
  358. {
  359. text = ModBase.SelectFolder("选择文件夹");
  360. if (Operators.CompareString(text, "", false) != 0)
  361. {
  362. if (!text.Contains("!") && !text.Contains(";"))
  363. {
  364. string[] array = text.TrimEnd(new char[]
  365. {
  366. '\\'
  367. }).Split("\\");
  368. string text2 = (Operators.CompareString(Enumerable.Last<string>(array), ".minecraft", false) == 0) ? ((Enumerable.Count<string>(array) >= 3) ? array[checked(Enumerable.Count<string>(array) - 2)] : "") : Enumerable.Last<string>(array);
  369. if (text2.Length > 40)
  370. {
  371. text2 = text2.Substring(0, 39);
  372. }
  373. string text3 = ModMain.MyMsgBoxInput("输入显示名称", "输入该文件夹在左边栏列表中显示的名称。", text2, new Collection<Validate>
  374. {
  375. new ValidateNullOrWhiteSpace(),
  376. new ValidateLength(1, 30),
  377. new ValidateExcept(new string[]
  378. {
  379. ">",
  380. "|"
  381. }, "输入内容不能包含 %!")
  382. }, "", "确定", "取消", false);
  383. if (!string.IsNullOrWhiteSpace(text3))
  384. {
  385. PageSelectLeft.AddFolder(text, text3, true);
  386. }
  387. }
  388. else
  389. {
  390. ModMain.Hint("Minecraft 文件夹路径中不能含有感叹号或分号!", ModMain.HintType.Critical, true);
  391. }
  392. }
  393. }
  394. catch (Exception ex)
  395. {
  396. ModBase.Log(ex, "添加文件夹失败(" + text + ")", ModBase.LogLevel.Feedback, "出现错误");
  397. }
  398. }
  399. // Token: 0x06001024 RID: 4132 RVA: 0x00076CE4 File Offset: 0x00074EE4
  400. public static void AddFolder(string FolderPath, string DisplayName, bool ShowHint)
  401. {
  402. PageSelectLeft._Closure$__7-0 CS$<>8__locals1 = new PageSelectLeft._Closure$__7-0(CS$<>8__locals1);
  403. CS$<>8__locals1.$VB$Local_FolderPath = FolderPath;
  404. CS$<>8__locals1.$VB$Local_DisplayName = DisplayName;
  405. CS$<>8__locals1.$VB$Local_ShowHint = ShowHint;
  406. ModBase.RunInThread(checked(delegate
  407. {
  408. try
  409. {
  410. if (!CS$<>8__locals1.$VB$Local_FolderPath.EndsWith("\\"))
  411. {
  412. CS$<>8__locals1.$VB$Local_FolderPath += "\\";
  413. }
  414. if (ModBase.CheckPermission(CS$<>8__locals1.$VB$Local_FolderPath))
  415. {
  416. if (!ModBase.CheckPermission(CS$<>8__locals1.$VB$Local_FolderPath + "versions\\"))
  417. {
  418. foreach (DirectoryInfo directoryInfo in new DirectoryInfo(CS$<>8__locals1.$VB$Local_FolderPath).GetDirectories())
  419. {
  420. if (ModBase.CheckPermission(directoryInfo.FullName + "\\versions\\"))
  421. {
  422. CS$<>8__locals1.$VB$Local_FolderPath = directoryInfo.FullName + "\\";
  423. break;
  424. }
  425. }
  426. }
  427. List<string> list = new List<string>(ModBase.m_IdentifierRepository.Get("LaunchFolders", null).ToString().Split("|"));
  428. bool flag = false;
  429. bool flag2 = false;
  430. int num = list.Count - 1;
  431. int j = 0;
  432. while (j <= num)
  433. {
  434. string text = list[j];
  435. if (Operators.CompareString(text, "", false) == 0 || Operators.CompareString(text.Split(">")[1], CS$<>8__locals1.$VB$Local_FolderPath, false) != 0)
  436. {
  437. j++;
  438. }
  439. else
  440. {
  441. flag = true;
  442. if (Operators.CompareString(text.Split(">")[0], CS$<>8__locals1.$VB$Local_DisplayName, false) == 0)
  443. {
  444. if (CS$<>8__locals1.$VB$Local_ShowHint)
  445. {
  446. ModMain.Hint("此文件夹已在列表中!", ModMain.HintType.Info, true);
  447. }
  448. return;
  449. }
  450. list[j] = CS$<>8__locals1.$VB$Local_DisplayName + ">" + CS$<>8__locals1.$VB$Local_FolderPath;
  451. flag2 = true;
  452. if (CS$<>8__locals1.$VB$Local_ShowHint)
  453. {
  454. ModMain.Hint("文件夹名称已更新为 " + CS$<>8__locals1.$VB$Local_DisplayName + " !", ModMain.HintType.Finish, true);
  455. }
  456. IL_1D0:
  457. if (!flag)
  458. {
  459. list.Add(CS$<>8__locals1.$VB$Local_DisplayName + ">" + CS$<>8__locals1.$VB$Local_FolderPath);
  460. }
  461. ModBase.m_IdentifierRepository.Set("LaunchFolders", list.ToArray().Join("|"), false, null);
  462. ModBase.m_IdentifierRepository.Set("LaunchFolderSelect", CS$<>8__locals1.$VB$Local_FolderPath.Replace(ModBase.Path, "$"), false, null);
  463. ModMinecraft.m_CreatorTests.Start(null, true);
  464. if (flag2)
  465. {
  466. return;
  467. }
  468. if (CS$<>8__locals1.$VB$Local_ShowHint)
  469. {
  470. ModMain.Hint("文件夹 " + CS$<>8__locals1.$VB$Local_DisplayName + " 已添加!", ModMain.HintType.Finish, true);
  471. }
  472. DirectoryInfo directoryInfo2 = new DirectoryInfo(CS$<>8__locals1.$VB$Local_FolderPath + "mods\\");
  473. if (!directoryInfo2.Exists || Enumerable.Count<FileInfo>(directoryInfo2.EnumerateFiles()) < 3)
  474. {
  475. return;
  476. }
  477. DirectoryInfo directoryInfo3 = new DirectoryInfo(CS$<>8__locals1.$VB$Local_FolderPath + "versions\\");
  478. if (directoryInfo3.Exists && Enumerable.Count<DirectoryInfo>(directoryInfo3.EnumerateDirectories()) <= 3)
  479. {
  480. try
  481. {
  482. foreach (DirectoryInfo directoryInfo4 in directoryInfo3.EnumerateDirectories())
  483. {
  484. ModMinecraft.McVersion mcVersion = new ModMinecraft.McVersion(directoryInfo4.FullName);
  485. mcVersion.Load();
  486. if (mcVersion.RunThread())
  487. {
  488. DirectoryInfo directoryInfo5 = new DirectoryInfo(mcVersion.Path + "mods\\");
  489. if (directoryInfo5.Exists && Enumerable.Any<FileInfo>(directoryInfo5.EnumerateFiles()))
  490. {
  491. break;
  492. }
  493. ModBase.m_IdentifierRepository.Set("VersionArgumentIndie", 2, false, mcVersion);
  494. ModBase.Log("[Setup] 已自动关闭单版本隔离:" + mcVersion.Name, ModBase.LogLevel.Debug, "出现错误");
  495. }
  496. }
  497. }
  498. finally
  499. {
  500. IEnumerator<DirectoryInfo> enumerator;
  501. if (enumerator != null)
  502. {
  503. enumerator.Dispose();
  504. }
  505. }
  506. return;
  507. }
  508. return;
  509. }
  510. }
  511. goto IL_1D0;
  512. }
  513. if (!CS$<>8__locals1.$VB$Local_ShowHint)
  514. {
  515. throw new Exception("PCL 没有访问文件夹的权限:" + CS$<>8__locals1.$VB$Local_FolderPath);
  516. }
  517. ModMain.Hint("添加文件夹失败:PCL 没有访问该文件夹的权限!", ModMain.HintType.Critical, true);
  518. }
  519. catch (Exception ex)
  520. {
  521. ModBase.Log(ex, "向文件夹列表中添加新文件夹失败", ModBase.LogLevel.Feedback, "出现错误");
  522. }
  523. }));
  524. }
  525. // Token: 0x06001025 RID: 4133 RVA: 0x00076D20 File Offset: 0x00074F20
  526. public void Create_Click()
  527. {
  528. if (ModNet.HasDownloadingTask(false))
  529. {
  530. ModMain.Hint("在下载任务进行时,无法创建游戏文件夹!", ModMain.HintType.Critical, true);
  531. return;
  532. }
  533. if (!Directory.Exists(ModBase.Path + ".minecraft\\"))
  534. {
  535. Directory.CreateDirectory(ModBase.Path + ".minecraft\\");
  536. Directory.CreateDirectory(ModBase.Path + ".minecraft\\versions\\");
  537. ModBase.m_IdentifierRepository.Set("LaunchFolderSelect", "$.minecraft\\", false, null);
  538. ModMinecraft.McFolderLauncherProfilesJsonCreate(ModBase.Path + ".minecraft\\");
  539. ModMain.Hint("新建 .minecraft 文件夹成功!", ModMain.HintType.Finish, true);
  540. }
  541. ModMinecraft.m_CreatorTests.Start(null, true);
  542. }
  543. // Token: 0x06001026 RID: 4134 RVA: 0x00076DC4 File Offset: 0x00074FC4
  544. public void Remove_Click(object sender, RoutedEventArgs e)
  545. {
  546. checked
  547. {
  548. try
  549. {
  550. ModMinecraft.McFolder mcFolder = (ModMinecraft.McFolder)((MyListItem)((Popup)((ContextMenu)NewLateBinding.LateGet(sender, null, "Parent", new object[0], null, null, null)).Parent).PlacementTarget).Tag;
  551. if (mcFolder.Type == ModMinecraft.McFolderType.Custom)
  552. {
  553. switch (ModMain.MyMsgBox("是否需要清理 PCL 在该文件夹中的配置文件?\r\n这包括各个版本的独立设置(如自定义图标、第三方登录配置)等,对游戏本身没有影响。", "配置文件清理", "删除", "保留", "取消", false, true, false, null, null, null))
  554. {
  555. case 1:
  556. if (File.Exists(mcFolder.Path + "PCL.ini"))
  557. {
  558. File.Delete(mcFolder.Path + "PCL.ini");
  559. }
  560. if (!Directory.Exists(mcFolder.Path + "versions\\"))
  561. {
  562. goto IL_13E;
  563. }
  564. try
  565. {
  566. foreach (DirectoryInfo directoryInfo in new DirectoryInfo(mcFolder.Path + "versions\\").EnumerateDirectories())
  567. {
  568. if (Directory.Exists(directoryInfo.FullName + "\\PCL\\"))
  569. {
  570. Directory.Delete(directoryInfo.FullName + "\\PCL\\", true);
  571. }
  572. }
  573. goto IL_13E;
  574. }
  575. finally
  576. {
  577. IEnumerator<DirectoryInfo> enumerator;
  578. if (enumerator != null)
  579. {
  580. enumerator.Dispose();
  581. }
  582. }
  583. break;
  584. case 2:
  585. goto IL_13E;
  586. case 3:
  587. break;
  588. default:
  589. goto IL_13E;
  590. }
  591. return;
  592. }
  593. IL_13E:
  594. List<string> list = new List<string>(ModBase.m_IdentifierRepository.Get("LaunchFolders", null).ToString().Split("|"));
  595. string str = "";
  596. int num = list.Count - 1;
  597. int i = 0;
  598. while (i <= num)
  599. {
  600. if (Operators.CompareString(list[i], "", false) != 0)
  601. {
  602. if (!list[i].ToString().EndsWith(mcFolder.Path))
  603. {
  604. i++;
  605. continue;
  606. }
  607. str = list[i].ToString().BeforeFirst(">", false);
  608. list.RemoveAt(i);
  609. }
  610. IL_1D7:
  611. ModBase.m_IdentifierRepository.Set("LaunchFolders", (!Enumerable.Any<string>(list)) ? "" : list.ToArray().Join("|"), false, null);
  612. ModMain.Hint((mcFolder.Type == ModMinecraft.McFolderType.Custom) ? ("文件夹 " + str + " 已从列表中移除!") : "文件夹名称已复原!", ModMain.HintType.Finish, true);
  613. ModMinecraft.m_CreatorTests.Start(null, true);
  614. return;
  615. }
  616. goto IL_1D7;
  617. }
  618. catch (Exception ex)
  619. {
  620. ModBase.Log(ex, "从列表中移除游戏文件夹失败", ModBase.LogLevel.Feedback, "出现错误");
  621. }
  622. }
  623. }
  624. // Token: 0x06001027 RID: 4135 RVA: 0x00077064 File Offset: 0x00075264
  625. public void Delete_Click(object sender, RoutedEventArgs e)
  626. {
  627. PageSelectLeft._Closure$__10-0 CS$<>8__locals1 = new PageSelectLeft._Closure$__10-0(CS$<>8__locals1);
  628. CS$<>8__locals1.$VB$Local_Folder = (ModMinecraft.McFolder)((MyListItem)((Popup)((ContextMenu)NewLateBinding.LateGet(sender, null, "Parent", new object[0], null, null, null)).Parent).PlacementTarget).Tag;
  629. PageSelectLeft._Closure$__10-0 CS$<>8__locals2 = CS$<>8__locals1;
  630. string $VB$Local_DeleteText;
  631. if ((CS$<>8__locals1.$VB$Local_Folder.Type == ModMinecraft.McFolderType.Original || CS$<>8__locals1.$VB$Local_Folder.Type == ModMinecraft.McFolderType.RenamedOriginal) && Operators.CompareString(CS$<>8__locals1.$VB$Local_Folder.Path, ModBase.Path + ".minecraft\\", false) == 0)
  632. {
  633. if (ModMinecraft.messageTests.Count == 1)
  634. {
  635. $VB$Local_DeleteText = "清空";
  636. goto IL_9F;
  637. }
  638. }
  639. $VB$Local_DeleteText = "删除";
  640. IL_9F:
  641. CS$<>8__locals2.$VB$Local_DeleteText = $VB$Local_DeleteText;
  642. checked
  643. {
  644. if (ModMain.MyMsgBox(string.Concat(new string[]
  645. {
  646. "你确定要",
  647. CS$<>8__locals1.$VB$Local_DeleteText,
  648. "这个文件夹吗?\r\n目标文件夹:",
  649. CS$<>8__locals1.$VB$Local_Folder.Path,
  650. "\r\n\r\n这会导致该文件夹中的所有存档与其他文件永久丢失,且不可恢复!"
  651. }), "删除警告", "取消", "确认", "取消", false, true, false, null, null, null) == 2 && ModMain.MyMsgBox("如果你在该文件夹中存放了除 MC 以外的其他文件,这些文件也会被一同删除!\r\n继续删除会导致该文件夹中的所有文件永久丢失,请在仔细确认后再继续!\r\n目标文件夹:" + CS$<>8__locals1.$VB$Local_Folder.Path + "\r\n\r\n这是最后一次警告!", "删除警告", "确认" + CS$<>8__locals1.$VB$Local_DeleteText, "取消", "", true, true, false, null, null, null) == 1)
  652. {
  653. if (CS$<>8__locals1.$VB$Local_Folder.Type == ModMinecraft.McFolderType.Custom)
  654. {
  655. List<string> list = new List<string>(ModBase.m_IdentifierRepository.Get("LaunchFolders", null).ToString().Split("|"));
  656. int num = list.Count - 1;
  657. int i = 0;
  658. while (i <= num)
  659. {
  660. if (Operators.CompareString(list[i], "", false) != 0)
  661. {
  662. if (!list[i].ToString().EndsWith(CS$<>8__locals1.$VB$Local_Folder.Path))
  663. {
  664. i++;
  665. continue;
  666. }
  667. list.RemoveAt(i);
  668. }
  669. IL_1D4:
  670. ModBase.m_IdentifierRepository.Set("LaunchFolders", (!Enumerable.Any<string>(list)) ? "" : list.ToArray().Join("|"), false, null);
  671. goto IL_204;
  672. }
  673. goto IL_1D4;
  674. }
  675. IL_204:
  676. ModBase.RunInNewThread(delegate
  677. {
  678. try
  679. {
  680. ModMain.Hint(string.Concat(new string[]
  681. {
  682. "正在",
  683. CS$<>8__locals1.$VB$Local_DeleteText,
  684. "文件夹 ",
  685. CS$<>8__locals1.$VB$Local_Folder.Name,
  686. "!"
  687. }), ModMain.HintType.Info, true);
  688. ModBase.DeleteDirectory(CS$<>8__locals1.$VB$Local_Folder.Path, false);
  689. if (Operators.CompareString(CS$<>8__locals1.$VB$Local_DeleteText, "清空", false) == 0)
  690. {
  691. Directory.CreateDirectory(CS$<>8__locals1.$VB$Local_Folder.Path);
  692. }
  693. ModMain.Hint(string.Concat(new string[]
  694. {
  695. "已",
  696. CS$<>8__locals1.$VB$Local_DeleteText,
  697. "文件夹 ",
  698. CS$<>8__locals1.$VB$Local_Folder.Name,
  699. "!"
  700. }), ModMain.HintType.Finish, true);
  701. }
  702. catch (Exception ex)
  703. {
  704. ModBase.Log(ex, CS$<>8__locals1.$VB$Local_DeleteText + "文件夹 " + CS$<>8__locals1.$VB$Local_Folder.Name + " 失败", ModBase.LogLevel.Hint, "出现错误");
  705. }
  706. finally
  707. {
  708. ModMinecraft.m_CreatorTests.Start(null, true);
  709. }
  710. }, "Folder Delete " + Conversions.ToString(ModBase.GetUuid()), ThreadPriority.BelowNormal);
  711. }
  712. }
  713. }
  714. // Token: 0x06001028 RID: 4136 RVA: 0x0007729C File Offset: 0x0007549C
  715. public void Open_Click(object sender, RoutedEventArgs e)
  716. {
  717. ModBase.OpenExplorer("\"" + ((MyListItem)((Popup)((ContextMenu)NewLateBinding.LateGet(sender, null, "Parent", new object[0], null, null, null)).Parent).PlacementTarget).Info + "\"");
  718. }
  719. // Token: 0x06001029 RID: 4137 RVA: 0x000772F0 File Offset: 0x000754F0
  720. public void Refresh_Click(object sender, RoutedEventArgs e)
  721. {
  722. PageSelectLeft.RefreshCurrent(((ModMinecraft.McFolder)((MyListItem)((Popup)((ContextMenu)NewLateBinding.LateGet(sender, null, "Parent", new object[0], null, null, null)).Parent).PlacementTarget).Tag).Path);
  723. }
  724. // Token: 0x0600102A RID: 4138 RVA: 0x00009E01 File Offset: 0x00008001
  725. public void RefreshCurrent()
  726. {
  727. PageSelectLeft.RefreshCurrent(ModMinecraft.m_ProxyTests);
  728. }
  729. // Token: 0x0600102B RID: 4139 RVA: 0x00077340 File Offset: 0x00075540
  730. public static void RefreshCurrent(string Folder)
  731. {
  732. ModBase.WriteIni(Folder + "PCL.ini", "VersionCache", "");
  733. if (Operators.CompareString(Folder, ModMinecraft.m_ProxyTests, false) == 0)
  734. {
  735. ModLoader.LoaderFolderRun(ModMinecraft._ListenerTests, ModMinecraft.m_ProxyTests, ModLoader.LoaderFolderRunType.ForceRun, 1, "versions\\", false);
  736. }
  737. }
  738. // Token: 0x0600102C RID: 4140 RVA: 0x00077390 File Offset: 0x00075590
  739. public void Rename_Click(object sender, RoutedEventArgs e)
  740. {
  741. ModMinecraft.McFolder mcFolder = (ModMinecraft.McFolder)((MyListItem)((Popup)((ContextMenu)NewLateBinding.LateGet(sender, null, "Parent", new object[0], null, null, null)).Parent).PlacementTarget).Tag;
  742. checked
  743. {
  744. try
  745. {
  746. string text = ModMain.MyMsgBoxInput("输入新名称", "", mcFolder.Name, new Collection<Validate>
  747. {
  748. new ValidateNullOrWhiteSpace(),
  749. new ValidateLength(1, 30),
  750. new ValidateExcept(new string[]
  751. {
  752. ">",
  753. "|"
  754. }, "输入内容不能包含 %!")
  755. }, "", "确定", "取消", false);
  756. if (!string.IsNullOrWhiteSpace(text))
  757. {
  758. List<string> list = new List<string>(ModBase.m_IdentifierRepository.Get("LaunchFolders", null).ToString().Split("|"));
  759. bool flag = false;
  760. int num = list.Count - 1;
  761. int i = 0;
  762. while (i <= num)
  763. {
  764. string text2 = list[i];
  765. if (Operators.CompareString(text2, "", false) == 0 || Operators.CompareString(text2.Split(">")[1], mcFolder.Path, false) != 0)
  766. {
  767. i++;
  768. }
  769. else
  770. {
  771. flag = true;
  772. if (Operators.CompareString(text2.Split(">")[0], text, false) == 0)
  773. {
  774. return;
  775. }
  776. list[i] = text + ">" + mcFolder.Path;
  777. IL_168:
  778. if (!flag)
  779. {
  780. list.Add(text + ">" + mcFolder.Path);
  781. }
  782. ModMain.Hint("文件夹名称已更新为 " + text + " !", ModMain.HintType.Finish, true);
  783. ModBase.m_IdentifierRepository.Set("LaunchFolders", list.ToArray().Join("|"), false, null);
  784. ModMinecraft.m_CreatorTests.Start(null, true);
  785. return;
  786. }
  787. }
  788. goto IL_168;
  789. }
  790. }
  791. catch (Exception ex)
  792. {
  793. ModBase.Log(ex, "重命名文件夹失败", ModBase.LogLevel.Feedback, "出现错误");
  794. }
  795. }
  796. }
  797. // Token: 0x0600102D RID: 4141 RVA: 0x000775A4 File Offset: 0x000757A4
  798. public void Folder_Change(MyListItem sender, ModBase.RouteEventArgs e)
  799. {
  800. if (e.interpreterError && sender.Checked)
  801. {
  802. if (ModNet.HasDownloadingTask(true))
  803. {
  804. ModMain.Hint("在下载任务进行时,无法切换游戏文件夹!", ModMain.HintType.Critical, true);
  805. e.m_SerializerError = true;
  806. return;
  807. }
  808. ModBase.m_IdentifierRepository.Set("LaunchFolderSelect", ((ModMinecraft.McFolder)sender.Tag).Path.Replace(ModBase.Path, "$"), false, null);
  809. ModMinecraft.m_CreatorTests.Start(null, true);
  810. ModLoader.LoaderFolderRun(ModMinecraft._ListenerTests, ModMinecraft.m_ProxyTests, ModLoader.LoaderFolderRunType.RunOnUpdated, 1, "versions\\", false);
  811. }
  812. }
  813. // Token: 0x1700026A RID: 618
  814. // (get) Token: 0x0600102E RID: 4142 RVA: 0x00009E0D File Offset: 0x0000800D
  815. // (set) Token: 0x0600102F RID: 4143 RVA: 0x00009E15 File Offset: 0x00008015
  816. internal virtual StackPanel PanList { get; set; }
  817. // Token: 0x06001030 RID: 4144 RVA: 0x00077634 File Offset: 0x00075834
  818. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  819. public void InitializeComponent()
  820. {
  821. if (!this._BaseMapper)
  822. {
  823. this._BaseMapper = true;
  824. Uri resourceLocator = new Uri("/Plain Craft Launcher 2;component/pages/pageselectleft.xaml", UriKind.Relative);
  825. Application.LoadComponent(this, resourceLocator);
  826. }
  827. }
  828. // Token: 0x06001031 RID: 4145 RVA: 0x0000414E File Offset: 0x0000234E
  829. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  830. internal Delegate _CreateDelegate(Type delegateType, string handler)
  831. {
  832. return Delegate.CreateDelegate(delegateType, this, handler);
  833. }
  834. // Token: 0x06001032 RID: 4146 RVA: 0x00009E1E File Offset: 0x0000801E
  835. [EditorBrowsable(EditorBrowsableState.Never)]
  836. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  837. public void System_Windows_Markup_IComponentConnector_Connect(int connectionId, object target)
  838. {
  839. if (connectionId == 1)
  840. {
  841. this.PanList = (StackPanel)target;
  842. return;
  843. }
  844. this._BaseMapper = true;
  845. }
  846. // Token: 0x04000887 RID: 2183
  847. private bool managerMapper;
  848. // Token: 0x04000888 RID: 2184
  849. private List<ModMinecraft.McFolder> m_ModelMapper;
  850. // Token: 0x04000889 RID: 2185
  851. [CompilerGenerated]
  852. [AccessedThroughProperty("PanList")]
  853. private StackPanel m_WrapperMapper;
  854. // Token: 0x0400088A RID: 2186
  855. private bool _BaseMapper;
  856. }
  857. }