MySkin.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  1. using System;
  2. using System.CodeDom.Compiler;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.IO;
  6. using System.Runtime.CompilerServices;
  7. using System.Threading;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Input;
  11. using System.Windows.Markup;
  12. using System.Windows.Media;
  13. using System.Windows.Media.Effects;
  14. using Microsoft.VisualBasic.CompilerServices;
  15. using Newtonsoft.Json;
  16. using Newtonsoft.Json.Linq;
  17. namespace PCL
  18. {
  19. // Token: 0x02000185 RID: 389
  20. [DesignerGenerated]
  21. public class MySkin : Grid, IComponentConnector
  22. {
  23. // Token: 0x06000F85 RID: 3973 RVA: 0x00073338 File Offset: 0x00071538
  24. public MySkin()
  25. {
  26. base.MouseEnter += this.PanSkin_MouseEnter;
  27. base.MouseLeave += this.PanSkin_MouseLeave;
  28. base.MouseLeftButtonDown += this.PanSkin_MouseLeftButtonDown;
  29. base.MouseLeftButtonUp += this.PanSkin_MouseLeftButtonUp;
  30. this.m_TemplateMapper = false;
  31. this._MethodMapper = false;
  32. this.InitializeComponent();
  33. }
  34. // Token: 0x14000012 RID: 18
  35. // (add) Token: 0x06000F86 RID: 3974 RVA: 0x000733A8 File Offset: 0x000715A8
  36. // (remove) Token: 0x06000F87 RID: 3975 RVA: 0x000733E0 File Offset: 0x000715E0
  37. public event MySkin.ClickEventHandler Click
  38. {
  39. [CompilerGenerated]
  40. add
  41. {
  42. MySkin.ClickEventHandler clickEventHandler = this.m_InstanceMapper;
  43. MySkin.ClickEventHandler clickEventHandler2;
  44. do
  45. {
  46. clickEventHandler2 = clickEventHandler;
  47. MySkin.ClickEventHandler value2 = (MySkin.ClickEventHandler)Delegate.Combine(clickEventHandler2, value);
  48. clickEventHandler = Interlocked.CompareExchange<MySkin.ClickEventHandler>(ref this.m_InstanceMapper, value2, clickEventHandler2);
  49. }
  50. while (clickEventHandler != clickEventHandler2);
  51. }
  52. [CompilerGenerated]
  53. remove
  54. {
  55. MySkin.ClickEventHandler clickEventHandler = this.m_InstanceMapper;
  56. MySkin.ClickEventHandler clickEventHandler2;
  57. do
  58. {
  59. clickEventHandler2 = clickEventHandler;
  60. MySkin.ClickEventHandler value2 = (MySkin.ClickEventHandler)Delegate.Remove(clickEventHandler2, value);
  61. clickEventHandler = Interlocked.CompareExchange<MySkin.ClickEventHandler>(ref this.m_InstanceMapper, value2, clickEventHandler2);
  62. }
  63. while (clickEventHandler != clickEventHandler2);
  64. }
  65. }
  66. // Token: 0x06000F88 RID: 3976 RVA: 0x0000986A File Offset: 0x00007A6A
  67. public string FlushClient()
  68. {
  69. return this.stateMapper;
  70. }
  71. // Token: 0x06000F89 RID: 3977 RVA: 0x00009872 File Offset: 0x00007A72
  72. public void PatchClient(string value)
  73. {
  74. this.stateMapper = value;
  75. base.ToolTip = ((Operators.CompareString(this.stateMapper, "", false) == 0) ? "加载中" : "点击更换皮肤(右键查看更多选项)");
  76. }
  77. // Token: 0x06000F8A RID: 3978 RVA: 0x000098A0 File Offset: 0x00007AA0
  78. private void PanSkin_MouseEnter(object sender, MouseEventArgs e)
  79. {
  80. ModAnimation.AniStart(ModAnimation.AaOpacity(this.ShadowSkin, 0.8 - this.ShadowSkin.Opacity, 200, 100, null, false), "Skin Shadow", false);
  81. }
  82. // Token: 0x06000F8B RID: 3979 RVA: 0x00073418 File Offset: 0x00071618
  83. private void PanSkin_MouseLeave(object sender, MouseEventArgs e)
  84. {
  85. ModAnimation.AniStart(ModAnimation.AaOpacity(this.ShadowSkin, 0.2 - this.ShadowSkin.Opacity, 200, 0, null, false), "Skin Shadow", false);
  86. this.m_TemplateMapper = false;
  87. ModAnimation.AniStart(ModAnimation.AaScaleTransform(this, 1.0 - ((ScaleTransform)base.RenderTransform).ScaleX, 60, 0, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Middle), false), "Skin Scale", false);
  88. }
  89. // Token: 0x06000F8C RID: 3980 RVA: 0x000098D6 File Offset: 0x00007AD6
  90. private void PanSkin_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  91. {
  92. this.m_TemplateMapper = true;
  93. ModAnimation.AniStart(ModAnimation.AaScaleTransform(this, 0.9 - ((ScaleTransform)base.RenderTransform).ScaleX, 60, 0, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Middle), false), "Skin Scale", false);
  94. }
  95. // Token: 0x06000F8D RID: 3981 RVA: 0x00073494 File Offset: 0x00071694
  96. private void PanSkin_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
  97. {
  98. ModAnimation.AniStart(ModAnimation.AaScaleTransform(this, 1.0 - ((ScaleTransform)base.RenderTransform).ScaleX, 60, 0, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Middle), false), "Skin Scale", false);
  99. if (this.m_TemplateMapper)
  100. {
  101. this.m_TemplateMapper = false;
  102. MySkin.ClickEventHandler instanceMapper = this.m_InstanceMapper;
  103. if (instanceMapper != null)
  104. {
  105. instanceMapper(RuntimeHelpers.GetObjectValue(sender), e);
  106. }
  107. }
  108. }
  109. // Token: 0x06000F8E RID: 3982 RVA: 0x00009914 File Offset: 0x00007B14
  110. public void BtnSkinSave_Click()
  111. {
  112. MySkin.Save(this.callbackMapper);
  113. }
  114. // Token: 0x06000F8F RID: 3983 RVA: 0x000734FC File Offset: 0x000716FC
  115. public static void Save(ModLoader.LoaderTask<ModBase.EqualableList<string>, string> Loader)
  116. {
  117. string output = Loader.Output;
  118. if (Loader.State != ModBase.LoadState.Finished)
  119. {
  120. ModMain.Hint("皮肤正在获取中,请稍候!", ModMain.HintType.Critical, true);
  121. if (Loader.State != ModBase.LoadState.Loading)
  122. {
  123. Loader.Start(null, false);
  124. return;
  125. }
  126. }
  127. else
  128. {
  129. try
  130. {
  131. string text = ModBase.SelectAs("选取保存皮肤的位置", ModBase.GetFileNameFromPath(output), "皮肤图片文件(*.png)|*.png", null);
  132. if (text.Contains("\\"))
  133. {
  134. File.Delete(text);
  135. if (output.StartsWith(ModBase.m_SerializerRepository))
  136. {
  137. new MyBitmap(output).Save(text);
  138. }
  139. else
  140. {
  141. ModBase.CopyFile(output, text);
  142. }
  143. ModMain.Hint("皮肤保存成功!", ModMain.HintType.Finish, true);
  144. }
  145. }
  146. catch (Exception ex)
  147. {
  148. ModBase.Log(ex, "保存皮肤失败", ModBase.LogLevel.Hint, "出现错误");
  149. }
  150. }
  151. }
  152. // Token: 0x06000F90 RID: 3984 RVA: 0x00009921 File Offset: 0x00007B21
  153. private void BtnSkinSave_Checked(MyMenuItem sender, RoutedEventArgs e)
  154. {
  155. sender.IsEnabled = (Operators.CompareString(this.FlushClient(), "", false) == 0);
  156. }
  157. // Token: 0x06000F91 RID: 3985 RVA: 0x000735C4 File Offset: 0x000717C4
  158. public void Load()
  159. {
  160. checked
  161. {
  162. try
  163. {
  164. this.PatchClient(this.callbackMapper.Output);
  165. if (string.IsNullOrEmpty(this.FlushClient()))
  166. {
  167. throw new Exception("皮肤加载器 " + this.callbackMapper.Name + " 没有输出");
  168. }
  169. if (!this.FlushClient().StartsWith(ModBase.m_SerializerRepository) && !File.Exists(this.FlushClient()))
  170. {
  171. throw new FileNotFoundException("皮肤文件未找到", this.FlushClient());
  172. }
  173. MyBitmap myBitmap;
  174. try
  175. {
  176. myBitmap = new MyBitmap(this.FlushClient());
  177. }
  178. catch (Exception ex)
  179. {
  180. ModBase.Log(ex, string.Format("皮肤文件已损坏:{0}", this.FlushClient()), ModBase.LogLevel.Hint, "出现错误");
  181. File.Delete(this.FlushClient());
  182. return;
  183. }
  184. this.ImgBack.Tag = this.FlushClient();
  185. int num = (int)Math.Round((double)myBitmap._ContainerIterator.Width / 64.0);
  186. if (myBitmap._ContainerIterator.Width < 32 || myBitmap._ContainerIterator.Height < 32)
  187. {
  188. this.ImgFore.Source = null;
  189. this.ImgBack.Source = null;
  190. throw new Exception("图片大小不足,长为 " + Conversions.ToString(myBitmap._ContainerIterator.Height) + ",宽为 " + Conversions.ToString(myBitmap._ContainerIterator.Width));
  191. }
  192. if (myBitmap._ContainerIterator.Width >= 64 && myBitmap._ContainerIterator.Height >= 32)
  193. {
  194. if (myBitmap._ContainerIterator.GetPixel(1, 1).A != 0 && myBitmap._ContainerIterator.GetPixel(myBitmap._ContainerIterator.Width - 1, myBitmap._ContainerIterator.Height - 1).A != 0 && myBitmap._ContainerIterator.GetPixel(myBitmap._ContainerIterator.Width - 2, (int)Math.Round(unchecked((double)myBitmap._ContainerIterator.Height / 2.0 - 2.0))).A != 0 && (!(myBitmap._ContainerIterator.GetPixel(1, 1) != myBitmap._ContainerIterator.GetPixel(num * 41, num * 9)) || !(myBitmap._ContainerIterator.GetPixel(myBitmap._ContainerIterator.Width - 1, myBitmap._ContainerIterator.Height - 1) != myBitmap._ContainerIterator.GetPixel(num * 41, num * 9)) || !(myBitmap._ContainerIterator.GetPixel(myBitmap._ContainerIterator.Width - 2, (int)Math.Round(unchecked((double)myBitmap._ContainerIterator.Height / 2.0 - 2.0))) != myBitmap._ContainerIterator.GetPixel(num * 41, num * 9))))
  195. {
  196. this.ImgFore.Source = null;
  197. }
  198. else
  199. {
  200. this.ImgFore.Source = myBitmap.Clip(num * 40, num * 8, num * 8, num * 8);
  201. }
  202. }
  203. else
  204. {
  205. this.ImgFore.Source = null;
  206. }
  207. this.ImgBack.Source = myBitmap.Clip(num * 8, num * 8, num * 8, num * 8);
  208. ModBase.Log("[Skin] 载入头像成功:" + this.callbackMapper.Name, ModBase.LogLevel.Normal, "出现错误");
  209. }
  210. catch (Exception ex2)
  211. {
  212. ModBase.Log(ex2, string.Concat(new string[]
  213. {
  214. "载入头像失败(",
  215. this.FlushClient() ?? "null",
  216. ",",
  217. this.callbackMapper.Name,
  218. ")"
  219. }), ModBase.LogLevel.Hint, "出现错误");
  220. }
  221. }
  222. }
  223. // Token: 0x06000F92 RID: 3986 RVA: 0x0000993D File Offset: 0x00007B3D
  224. public void Clear()
  225. {
  226. this.PatchClient("");
  227. this.ImgFore.Source = null;
  228. this.ImgBack.Source = null;
  229. }
  230. // Token: 0x06000F93 RID: 3987 RVA: 0x00009962 File Offset: 0x00007B62
  231. public void RefreshClick()
  232. {
  233. MySkin.RefreshCache(this.callbackMapper);
  234. }
  235. // Token: 0x06000F94 RID: 3988 RVA: 0x000739BC File Offset: 0x00071BBC
  236. public static void RefreshCache(ModLoader.LoaderTask<ModBase.EqualableList<string>, string> sender = null)
  237. {
  238. MySkin._Closure$__22-0 CS$<>8__locals1 = new MySkin._Closure$__22-0(CS$<>8__locals1);
  239. CS$<>8__locals1.$VB$Local_sender = sender;
  240. bool flag = false;
  241. try
  242. {
  243. List<ModLoader.LoaderTask<ModBase.EqualableList<string>, string>>.Enumerator enumerator = PageLaunchLeft.m_ListMapper.GetEnumerator();
  244. while (enumerator.MoveNext())
  245. {
  246. if (enumerator.Current.State == ModBase.LoadState.Loading)
  247. {
  248. flag = true;
  249. break;
  250. }
  251. }
  252. }
  253. finally
  254. {
  255. List<ModLoader.LoaderTask<ModBase.EqualableList<string>, string>>.Enumerator enumerator;
  256. ((IDisposable)enumerator).Dispose();
  257. }
  258. if (ModMain.recordIterator != null && flag)
  259. {
  260. ModMain.Hint("有正在获取中的皮肤,请稍后再试!", ModMain.HintType.Info, true);
  261. return;
  262. }
  263. ModBase.RunInThread(checked(delegate
  264. {
  265. try
  266. {
  267. ModMain.Hint("正在刷新头像……", ModMain.HintType.Info, true);
  268. ModBase.Log("[Skin] 正在清空皮肤缓存", ModBase.LogLevel.Normal, "出现错误");
  269. if (Directory.Exists(ModBase.m_DecoratorRepository + "Cache\\Skin"))
  270. {
  271. ModBase.DeleteDirectory(ModBase.m_DecoratorRepository + "Cache\\Skin", false);
  272. }
  273. if (Directory.Exists(ModBase.m_DecoratorRepository + "Cache\\Uuid"))
  274. {
  275. ModBase.DeleteDirectory(ModBase.m_DecoratorRepository + "Cache\\Uuid", false);
  276. }
  277. ModBase.IniClearCache(ModBase.m_DecoratorRepository + "Cache\\Skin\\IndexMs.ini");
  278. ModBase.IniClearCache(ModBase.m_DecoratorRepository + "Cache\\Skin\\IndexNide.ini");
  279. ModBase.IniClearCache(ModBase.m_DecoratorRepository + "Cache\\Skin\\IndexAuth.ini");
  280. ModBase.IniClearCache(ModBase.m_DecoratorRepository + "Cache\\Uuid\\Mojang.ini");
  281. ModLoader.LoaderTask<ModBase.EqualableList<string>, string>[] array2;
  282. if (CS$<>8__locals1.$VB$Local_sender == null)
  283. {
  284. ModLoader.LoaderTask<ModBase.EqualableList<string>, string>[] array = new ModLoader.LoaderTask<ModBase.EqualableList<string>, string>[2];
  285. array[0] = PageLaunchLeft.infoMapper;
  286. array2 = array;
  287. array[1] = PageLaunchLeft.annotationMapper;
  288. }
  289. else
  290. {
  291. (array2 = new ModLoader.LoaderTask<ModBase.EqualableList<string>, string>[1])[0] = CS$<>8__locals1.$VB$Local_sender;
  292. }
  293. ModLoader.LoaderTask<ModBase.EqualableList<string>, string>[] array3 = array2;
  294. for (int i = 0; i < array3.Length; i++)
  295. {
  296. array3[i].WaitForExit(null, null, true);
  297. }
  298. ModMain.Hint("已刷新头像!", ModMain.HintType.Finish, true);
  299. }
  300. catch (Exception ex)
  301. {
  302. ModBase.Log(ex, "刷新皮肤缓存失败", ModBase.LogLevel.Msgbox, "出现错误");
  303. }
  304. }));
  305. }
  306. // Token: 0x06000F95 RID: 3989 RVA: 0x00073A50 File Offset: 0x00071C50
  307. public static void ReloadCache(string SkinAddress)
  308. {
  309. MySkin._Closure$__23-0 CS$<>8__locals1 = new MySkin._Closure$__23-0(CS$<>8__locals1);
  310. CS$<>8__locals1.$VB$Local_SkinAddress = SkinAddress;
  311. ModBase.RunInThread(checked(delegate
  312. {
  313. try
  314. {
  315. ModBase.WriteIni(ModBase.m_DecoratorRepository + "Cache\\Skin\\IndexMs.ini", Conversions.ToString(ModBase.m_IdentifierRepository.Get("CacheMsV2Uuid", null)), CS$<>8__locals1.$VB$Local_SkinAddress);
  316. ModBase.Log(string.Format("[Skin] 已写入皮肤地址缓存 {0} -> {1}", RuntimeHelpers.GetObjectValue(ModBase.m_IdentifierRepository.Get("CacheMsV2Uuid", null)), CS$<>8__locals1.$VB$Local_SkinAddress), ModBase.LogLevel.Normal, "出现错误");
  317. ModLoader.LoaderTask<ModBase.EqualableList<string>, string>[] array = new ModLoader.LoaderTask<ModBase.EqualableList<string>, string>[]
  318. {
  319. PageLaunchLeft.annotationMapper,
  320. PageLaunchLeft.infoMapper
  321. };
  322. for (int i = 0; i < array.Length; i++)
  323. {
  324. array[i].WaitForExit(null, null, true);
  325. }
  326. ModMain.Hint("更改皮肤成功!", ModMain.HintType.Finish, true);
  327. }
  328. catch (Exception ex)
  329. {
  330. ModBase.Log(ex, "更改正版皮肤后刷新皮肤失败", ModBase.LogLevel.Feedback, "出现错误");
  331. }
  332. }));
  333. }
  334. // Token: 0x17000253 RID: 595
  335. // (get) Token: 0x06000F96 RID: 3990 RVA: 0x0000996F File Offset: 0x00007B6F
  336. // (set) Token: 0x06000F97 RID: 3991 RVA: 0x0000997F File Offset: 0x00007B7F
  337. public bool HasCape
  338. {
  339. get
  340. {
  341. return this.BtnSkinCape.Visibility == Visibility.Collapsed;
  342. }
  343. set
  344. {
  345. if (value)
  346. {
  347. this.BtnSkinCape.Visibility = Visibility.Visible;
  348. return;
  349. }
  350. this.BtnSkinCape.Visibility = Visibility.Collapsed;
  351. }
  352. }
  353. // Token: 0x06000F98 RID: 3992 RVA: 0x00073A7C File Offset: 0x00071C7C
  354. public void BtnSkinCape_Click()
  355. {
  356. if (this._MethodMapper)
  357. {
  358. ModMain.Hint("正在更改披风中,请稍候!", ModMain.HintType.Info, true);
  359. return;
  360. }
  361. if (ModLaunch.m_ContainerTests.State == ModBase.LoadState.Failed)
  362. {
  363. ModMain.Hint("登录失败,无法更改披风!", ModMain.HintType.Critical, true);
  364. return;
  365. }
  366. ModMain.Hint("正在获取披风列表,请稍候……", ModMain.HintType.Info, true);
  367. this._MethodMapper = true;
  368. ModBase.RunInNewThread(delegate
  369. {
  370. try
  371. {
  372. MySkin._Closure$__28-0 CS$<>8__locals1 = new MySkin._Closure$__28-0(CS$<>8__locals1);
  373. if (ModLaunch.m_ContainerTests.State != ModBase.LoadState.Finished)
  374. {
  375. ModLaunch.m_ContainerTests.WaitForExit(PageLoginMsSkin.GetLoginData(), null, false);
  376. }
  377. if (ModLaunch.m_ContainerTests.State != ModBase.LoadState.Finished)
  378. {
  379. ModMain.Hint("登录失败,无法更改披风!", ModMain.HintType.Critical, true);
  380. }
  381. else
  382. {
  383. string stateMap = ModLaunch.m_ContainerTests.Output._StateMap;
  384. CS$<>8__locals1.$VB$Local_SkinData = (JObject)ModBase.GetJson(ModLaunch.m_ContainerTests.Output._TemplateMap);
  385. CS$<>8__locals1.$VB$Local_SelId = null;
  386. ModBase.RunInUiWait(delegate()
  387. {
  388. try
  389. {
  390. Dictionary<string, string> dictionary = new Dictionary<string, string>
  391. {
  392. {
  393. "Migrator",
  394. "迁移者披风"
  395. },
  396. {
  397. "MapMaker",
  398. "Realms 地图制作者披风"
  399. },
  400. {
  401. "Moderator",
  402. "Mojira 管理员披风"
  403. },
  404. {
  405. "Translator-Chinese",
  406. "Crowdin 中文翻译者披风"
  407. },
  408. {
  409. "Translator",
  410. "Crowdin 翻译者披风"
  411. },
  412. {
  413. "Cobalt",
  414. "Cobalt 披风"
  415. },
  416. {
  417. "Vanilla",
  418. "原版披风"
  419. },
  420. {
  421. "Minecon2011",
  422. "Minecon 2011 参与者披风"
  423. },
  424. {
  425. "Minecon2012",
  426. "Minecon 2012 参与者披风"
  427. },
  428. {
  429. "Minecon2013",
  430. "Minecon 2013 参与者披风"
  431. },
  432. {
  433. "Minecon2015",
  434. "Minecon 2015 参与者披风"
  435. },
  436. {
  437. "Minecon2016",
  438. "Minecon 2016 参与者披风"
  439. },
  440. {
  441. "Cherry Blossom",
  442. "樱花披风"
  443. },
  444. {
  445. "15th Anniversary",
  446. "15 周年纪念披风"
  447. },
  448. {
  449. "Purple Heart",
  450. "紫色心形披风"
  451. },
  452. {
  453. "Follower's",
  454. "追随者披风"
  455. },
  456. {
  457. "MCC 15th Year",
  458. "MCC 15 周年披风"
  459. },
  460. {
  461. "Minecraft Experience",
  462. "村民救援披风"
  463. }
  464. };
  465. List<IMyRadio> list = new List<IMyRadio>
  466. {
  467. new MyRadioBox
  468. {
  469. Text = "无披风"
  470. }
  471. };
  472. try
  473. {
  474. foreach (JToken jtoken in CS$<>8__locals1.$VB$Local_SkinData["capes"])
  475. {
  476. string text2 = jtoken["alias"].ToString();
  477. if (dictionary.ContainsKey(text2))
  478. {
  479. text2 = dictionary[text2];
  480. }
  481. list.Add(new MyRadioBox
  482. {
  483. Text = text2
  484. });
  485. }
  486. }
  487. finally
  488. {
  489. IEnumerator<JToken> enumerator;
  490. if (enumerator != null)
  491. {
  492. enumerator.Dispose();
  493. }
  494. }
  495. CS$<>8__locals1.$VB$Local_SelId = ModMain.MyMsgBoxSelect(list, "选择披风", "确定", "取消", false);
  496. }
  497. catch (Exception ex2)
  498. {
  499. ModBase.Log(ex2, "获取玩家皮肤列表失败", ModBase.LogLevel.Feedback, "出现错误");
  500. }
  501. });
  502. if (CS$<>8__locals1.$VB$Local_SelId != null)
  503. {
  504. string url = "https://api.minecraftservices.com/minecraft/profile/capes/active";
  505. int? $VB$Local_SelId = CS$<>8__locals1.$VB$Local_SelId;
  506. string method = (($VB$Local_SelId != null) ? new bool?($VB$Local_SelId.GetValueOrDefault() == 0) : null).GetValueOrDefault() ? "DELETE" : "PUT";
  507. $VB$Local_SelId = CS$<>8__locals1.$VB$Local_SelId;
  508. string text = ModNet.NetRequestRetry(url, method, (($VB$Local_SelId != null) ? new bool?($VB$Local_SelId.GetValueOrDefault() == 0) : null).GetValueOrDefault() ? "" : new JObject(new JProperty("capeId", CS$<>8__locals1.$VB$Local_SkinData["capes"][checked(CS$<>8__locals1.$VB$Local_SelId - 1)]["id"])).ToString(0, new JsonConverter[0]), "application/json", true, new Dictionary<string, string>
  509. {
  510. {
  511. "Authorization",
  512. "Bearer " + stateMap
  513. }
  514. });
  515. if (text.Contains("\"errorMessage\""))
  516. {
  517. ModMain.Hint(Conversions.ToString(Operators.ConcatenateObject("更改披风失败:", NewLateBinding.LateIndexGet(ModBase.GetJson(text), new object[]
  518. {
  519. "errorMessage"
  520. }, null))), ModMain.HintType.Critical, true);
  521. }
  522. else
  523. {
  524. ModMain.Hint("更改披风成功!", ModMain.HintType.Finish, true);
  525. }
  526. }
  527. }
  528. }
  529. catch (Exception ex)
  530. {
  531. ModBase.Log(ex, "更改披风失败", ModBase.LogLevel.Hint, "出现错误");
  532. }
  533. finally
  534. {
  535. this._MethodMapper = false;
  536. }
  537. }, "Cape Change", ThreadPriority.Normal);
  538. }
  539. // Token: 0x17000254 RID: 596
  540. // (get) Token: 0x06000F99 RID: 3993 RVA: 0x0000999D File Offset: 0x00007B9D
  541. // (set) Token: 0x06000F9A RID: 3994 RVA: 0x000099A5 File Offset: 0x00007BA5
  542. internal virtual DropShadowEffect ShadowSkin { get; set; }
  543. // Token: 0x17000255 RID: 597
  544. // (get) Token: 0x06000F9B RID: 3995 RVA: 0x000099AE File Offset: 0x00007BAE
  545. // (set) Token: 0x06000F9C RID: 3996 RVA: 0x00073AE4 File Offset: 0x00071CE4
  546. internal virtual MyMenuItem BtnSkinSave
  547. {
  548. [CompilerGenerated]
  549. get
  550. {
  551. return this._ConsumerMapper;
  552. }
  553. [CompilerGenerated]
  554. set
  555. {
  556. RoutedEventHandler value2 = delegate(object sender, RoutedEventArgs e)
  557. {
  558. this.BtnSkinSave_Click();
  559. };
  560. RoutedEventHandler value3 = delegate(object sender, RoutedEventArgs e)
  561. {
  562. this.BtnSkinSave_Checked((MyMenuItem)sender, e);
  563. };
  564. MyMenuItem consumerMapper = this._ConsumerMapper;
  565. if (consumerMapper != null)
  566. {
  567. consumerMapper.Click -= value2;
  568. consumerMapper.Checked -= value3;
  569. }
  570. this._ConsumerMapper = value;
  571. consumerMapper = this._ConsumerMapper;
  572. if (consumerMapper != null)
  573. {
  574. consumerMapper.Click += value2;
  575. consumerMapper.Checked += value3;
  576. }
  577. }
  578. }
  579. // Token: 0x17000256 RID: 598
  580. // (get) Token: 0x06000F9D RID: 3997 RVA: 0x000099B6 File Offset: 0x00007BB6
  581. // (set) Token: 0x06000F9E RID: 3998 RVA: 0x00073B44 File Offset: 0x00071D44
  582. internal virtual MyMenuItem BtnSkinRefresh
  583. {
  584. [CompilerGenerated]
  585. get
  586. {
  587. return this.m_ConfigurationMapper;
  588. }
  589. [CompilerGenerated]
  590. set
  591. {
  592. RoutedEventHandler value2 = delegate(object sender, RoutedEventArgs e)
  593. {
  594. this.RefreshClick();
  595. };
  596. MyMenuItem configurationMapper = this.m_ConfigurationMapper;
  597. if (configurationMapper != null)
  598. {
  599. configurationMapper.Click -= value2;
  600. }
  601. this.m_ConfigurationMapper = value;
  602. configurationMapper = this.m_ConfigurationMapper;
  603. if (configurationMapper != null)
  604. {
  605. configurationMapper.Click += value2;
  606. }
  607. }
  608. }
  609. // Token: 0x17000257 RID: 599
  610. // (get) Token: 0x06000F9F RID: 3999 RVA: 0x000099BE File Offset: 0x00007BBE
  611. // (set) Token: 0x06000FA0 RID: 4000 RVA: 0x00073B88 File Offset: 0x00071D88
  612. internal virtual MyMenuItem BtnSkinCape
  613. {
  614. [CompilerGenerated]
  615. get
  616. {
  617. return this.m_GetterMapper;
  618. }
  619. [CompilerGenerated]
  620. set
  621. {
  622. RoutedEventHandler value2 = delegate(object sender, RoutedEventArgs e)
  623. {
  624. this.BtnSkinCape_Click();
  625. };
  626. MyMenuItem getterMapper = this.m_GetterMapper;
  627. if (getterMapper != null)
  628. {
  629. getterMapper.Click -= value2;
  630. }
  631. this.m_GetterMapper = value;
  632. getterMapper = this.m_GetterMapper;
  633. if (getterMapper != null)
  634. {
  635. getterMapper.Click += value2;
  636. }
  637. }
  638. }
  639. // Token: 0x17000258 RID: 600
  640. // (get) Token: 0x06000FA1 RID: 4001 RVA: 0x000099C6 File Offset: 0x00007BC6
  641. // (set) Token: 0x06000FA2 RID: 4002 RVA: 0x000099CE File Offset: 0x00007BCE
  642. internal virtual Image ImgBack { get; set; }
  643. // Token: 0x17000259 RID: 601
  644. // (get) Token: 0x06000FA3 RID: 4003 RVA: 0x000099D7 File Offset: 0x00007BD7
  645. // (set) Token: 0x06000FA4 RID: 4004 RVA: 0x000099DF File Offset: 0x00007BDF
  646. internal virtual Image ImgFore { get; set; }
  647. // Token: 0x06000FA5 RID: 4005 RVA: 0x00073BCC File Offset: 0x00071DCC
  648. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  649. public void InitializeComponent()
  650. {
  651. if (!this.writerMapper)
  652. {
  653. this.writerMapper = true;
  654. Uri resourceLocator = new Uri("/Plain Craft Launcher 2;component/pages/pagelaunch/myskin.xaml", UriKind.Relative);
  655. Application.LoadComponent(this, resourceLocator);
  656. }
  657. }
  658. // Token: 0x06000FA6 RID: 4006 RVA: 0x0000414E File Offset: 0x0000234E
  659. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  660. internal Delegate _CreateDelegate(Type delegateType, string handler)
  661. {
  662. return Delegate.CreateDelegate(delegateType, this, handler);
  663. }
  664. // Token: 0x06000FA7 RID: 4007 RVA: 0x00073BFC File Offset: 0x00071DFC
  665. [EditorBrowsable(EditorBrowsableState.Never)]
  666. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  667. public void System_Windows_Markup_IComponentConnector_Connect(int connectionId, object target)
  668. {
  669. if (connectionId == 1)
  670. {
  671. this.ShadowSkin = (DropShadowEffect)target;
  672. return;
  673. }
  674. if (connectionId == 2)
  675. {
  676. this.BtnSkinSave = (MyMenuItem)target;
  677. return;
  678. }
  679. if (connectionId == 3)
  680. {
  681. this.BtnSkinRefresh = (MyMenuItem)target;
  682. return;
  683. }
  684. if (connectionId == 4)
  685. {
  686. this.BtnSkinCape = (MyMenuItem)target;
  687. return;
  688. }
  689. if (connectionId == 5)
  690. {
  691. this.ImgBack = (Image)target;
  692. return;
  693. }
  694. if (connectionId == 6)
  695. {
  696. this.ImgFore = (Image)target;
  697. return;
  698. }
  699. this.writerMapper = true;
  700. }
  701. // Token: 0x0400085D RID: 2141
  702. [CompilerGenerated]
  703. private MySkin.ClickEventHandler m_InstanceMapper;
  704. // Token: 0x0400085E RID: 2142
  705. private string stateMapper;
  706. // Token: 0x0400085F RID: 2143
  707. public ModLoader.LoaderTask<ModBase.EqualableList<string>, string> callbackMapper;
  708. // Token: 0x04000860 RID: 2144
  709. private bool m_TemplateMapper;
  710. // Token: 0x04000861 RID: 2145
  711. private bool _MethodMapper;
  712. // Token: 0x04000862 RID: 2146
  713. [AccessedThroughProperty("ShadowSkin")]
  714. [CompilerGenerated]
  715. private DropShadowEffect m_TaskMapper;
  716. // Token: 0x04000863 RID: 2147
  717. [CompilerGenerated]
  718. [AccessedThroughProperty("BtnSkinSave")]
  719. private MyMenuItem _ConsumerMapper;
  720. // Token: 0x04000864 RID: 2148
  721. [AccessedThroughProperty("BtnSkinRefresh")]
  722. [CompilerGenerated]
  723. private MyMenuItem m_ConfigurationMapper;
  724. // Token: 0x04000865 RID: 2149
  725. [CompilerGenerated]
  726. [AccessedThroughProperty("BtnSkinCape")]
  727. private MyMenuItem m_GetterMapper;
  728. // Token: 0x04000866 RID: 2150
  729. [CompilerGenerated]
  730. [AccessedThroughProperty("ImgBack")]
  731. private Image tokenMapper;
  732. // Token: 0x04000867 RID: 2151
  733. [CompilerGenerated]
  734. [AccessedThroughProperty("ImgFore")]
  735. private Image m_ExpressionMapper;
  736. // Token: 0x04000868 RID: 2152
  737. private bool writerMapper;
  738. // Token: 0x02000186 RID: 390
  739. // (Invoke) Token: 0x06000FB1 RID: 4017
  740. public delegate void ClickEventHandler(object sender, MouseButtonEventArgs e);
  741. }
  742. }