Skip to content

Commit e0a33f6

Browse files
committed
up
1 parent 4a44252 commit e0a33f6

8 files changed

Lines changed: 57 additions & 136 deletions

File tree

src/ColorMC.Core/CoreMain.cs

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -26,69 +26,6 @@ public static class ColorMCCore
2626
/// </summary>
2727
public static string BaseDir { get; private set; }
2828

29-
/// <summary>
30-
/// 请求回调
31-
/// </summary>
32-
/// <param name="text">显示内容</param>
33-
/// <returns>是否同意</returns>
34-
public delegate Task<bool> Request(string text);
35-
/// <summary>
36-
/// 请求是否运行程序
37-
/// </summary>
38-
/// <param name="pre">是否为运行前启动</param>
39-
/// <returns>是否同意</returns>
40-
public delegate Task<bool> LaunchP(bool pre);
41-
/// <summary>
42-
/// 状态发生改变
43-
/// </summary>
44-
/// <param name="text">消息</param>
45-
public delegate void UpdateState(string? text);
46-
/// <summary>
47-
/// 启动选择框
48-
/// </summary>
49-
/// <param name="text">消息</param>
50-
/// <returns>是否确定</returns>
51-
public delegate Task<bool> ChoiseCall(string? text);
52-
/// <summary>
53-
/// 没有Java
54-
/// </summary>
55-
/// <summary>
56-
/// 登录失败是否继续运行
57-
/// </summary>
58-
/// <param name="obj">账户</param>
59-
/// <returns>是否继续运行</returns>
60-
public delegate Task<bool> LoginFailRun(LoginObj obj);
61-
/// <summary>
62-
/// 游戏复写
63-
/// </summary>
64-
/// <param name="obj">游戏实例</param>
65-
/// <returns>是否复写</returns>
66-
public delegate Task<bool> GameOverwirte(GameSettingObj obj);
67-
/// <summary>
68-
/// 整合包进度更新
69-
/// </summary>
70-
/// <param name="size">总进度</param>
71-
/// <param name="now">目前进度</param>
72-
public delegate void PackUpdate(int size, int now);
73-
/// <summary>
74-
/// 压缩包导入状态改变
75-
/// </summary>
76-
/// <param name="state">状态</param>
77-
public delegate void PackState(CoreRunState state);
78-
/// <summary>
79-
/// 游戏启动信息更新
80-
/// </summary>
81-
/// <param name="obj">游戏实例</param>
82-
/// <param name="state">当前状态</param>
83-
public delegate void GameLaunch(GameSettingObj obj, LaunchState state);
84-
/// <summary>
85-
/// 选择项目
86-
/// </summary>
87-
/// <param name="title">标题</param>
88-
/// <param name="items">项目列表</param>
89-
/// <returns>选择的项目</returns>
90-
public delegate Task<int> Select(string title, List<string> items);
91-
9229
/// <summary>
9330
/// 显示下载窗口
9431
/// </summary>

src/ColorMC.Core/Game/GameArg.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -508,32 +508,32 @@ private static async Task<JvmArgRes> MakeJvmArgAsync(this GameSettingObj obj, Lo
508508
break;
509509
case AuthType.AuthlibInjector:
510510
var res = await CoreHttpClient.GetStringAsync(login.Text1);
511-
if (!res.State)
511+
if (res == null)
512512
{
513513
throw new LaunchException(LaunchError.LoginCoreError);
514514
}
515515
jvm.Add($"-javaagent:{AuthlibHelper.NowAuthlibInjector}={login.Text1}");
516-
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res.Data!)}");
516+
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res)}");
517517
jvm.Add("-Dauthlibinjector.side=client");
518518
break;
519519
case AuthType.LittleSkin:
520520
res = await CoreHttpClient.GetStringAsync($"{UrlHelper.LittleSkin}api/yggdrasil");
521-
if (!res.State)
521+
if (res == null)
522522
{
523523
throw new LaunchException(LaunchError.LoginCoreError);
524524
}
525525
jvm.Add($"-javaagent:{AuthlibHelper.NowAuthlibInjector}={UrlHelper.LittleSkin}api/yggdrasil");
526-
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res.Data!)}");
526+
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res)}");
527527
jvm.Add("-Dauthlibinjector.side=client");
528528
break;
529529
case AuthType.SelfLittleSkin:
530530
res = await CoreHttpClient.GetStringAsync($"{login.Text1}api/yggdrasil");
531-
if (!res.State)
531+
if (res == null)
532532
{
533533
throw new LaunchException(LaunchError.LoginCoreError);
534534
}
535535
jvm.Add($"-javaagent:{AuthlibHelper.NowAuthlibInjector}={login.Text1}/api/yggdrasil");
536-
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res.Data!)}");
536+
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res)}");
537537
jvm.Add("-Dauthlibinjector.side=client");
538538
break;
539539
}

src/ColorMC.Core/Helpers/AddGameHelper.cs

Lines changed: 25 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ private static async Task<GameRes> CurseForgeAsync(InstallZipArg arg, Stream st)
398398
/// <returns>导入结果</returns>
399399
private static async Task<GameRes> ColorMCAsync(InstallZipArg arg, Stream st)
400400
{
401-
arg.Update2?.Invoke(CoreRunState.Read);
401+
arg.Gui?.ModPackState(CoreRunState.Read);
402402
//直接解压
403403
using var zFile = ZipArchive.Open(st);
404404
GameSettingObj? game = null;
@@ -414,12 +414,7 @@ private static async Task<GameRes> ColorMCAsync(InstallZipArg arg, Stream st)
414414
}
415415

416416
//导入实例
417-
game = await InstancesPath.CreateGameAsync(new CreateGameArg
418-
{
419-
Game = game,
420-
Request = arg.Request,
421-
Overwirte = arg.Overwirte
422-
});
417+
game = await InstancesPath.CreateGameAsync(game, arg.Gui);
423418

424419
if (game == null)
425420
{
@@ -449,7 +444,7 @@ private static async Task<GameRes> ColorMCAsync(InstallZipArg arg, Stream st)
449444
/// <returns>导入结果</returns>
450445
private static async Task<GameRes> MMCAsync(InstallZipArg arg, Stream st)
451446
{
452-
arg.Update2?.Invoke(CoreRunState.Read);
447+
arg.Gui?.ModPackState(CoreRunState.Read);
453448
using var zFile = ZipArchive.Open(st);
454449
string path = "";
455450
MMCObj? mmc = null;
@@ -502,12 +497,10 @@ private static async Task<GameRes> MMCAsync(InstallZipArg arg, Stream st)
502497
{
503498
game.Icon = res.Icon + ".png";
504499
}
505-
game = await InstancesPath.CreateGameAsync(new CreateGameArg
506-
{
507-
Game = game,
508-
Request = arg.Request,
509-
Overwirte = arg.Overwirte
510-
});
500+
501+
arg.Gui?.ModPackState(CoreRunState.Start);
502+
503+
game = await InstancesPath.CreateGameAsync(game, arg.Gui);
511504

512505
if (game == null)
513506
{
@@ -546,7 +539,7 @@ private static async Task<GameRes> MMCAsync(InstallZipArg arg, Stream st)
546539
/// <returns>导入结果</returns>
547540
private static async Task<GameRes> HMCLAsync(InstallZipArg arg, Stream st)
548541
{
549-
arg.Update2?.Invoke(CoreRunState.Read);
542+
arg.Gui?.ModPackState(CoreRunState.Read);
550543
using var zFile = ZipArchive.Open(st);
551544
HMCLObj? obj = null;
552545
CurseForgePackObj? obj1 = null;
@@ -576,12 +569,9 @@ private static async Task<GameRes> HMCLAsync(InstallZipArg arg, Stream st)
576569
game.GroupName = arg.Group;
577570
}
578571

579-
game = await InstancesPath.CreateGameAsync(new CreateGameArg
580-
{
581-
Game = game,
582-
Request = arg.Request,
583-
Overwirte = arg.Overwirte
584-
});
572+
arg.Gui?.ModPackState(CoreRunState.Start);
573+
574+
game = await InstancesPath.CreateGameAsync(game, arg.Gui);
585575

586576
if (game == null)
587577
{
@@ -624,31 +614,27 @@ private static async Task<GameRes> HMCLAsync(InstallZipArg arg, Stream st)
624614
/// <returns>导入结果</returns>
625615
private static async Task<GameRes> UnzipAsync(InstallZipArg arg, Stream st)
626616
{
627-
arg.Update2?.Invoke(CoreRunState.Read);
617+
arg.Gui?.ModPackState(CoreRunState.Read);
618+
628619
if (string.IsNullOrWhiteSpace(arg.Name))
629620
{
630621
arg.Name = Path.GetFileName(arg.Dir);
631622
}
632623

633-
arg.Update2?.Invoke(CoreRunState.Start);
624+
arg.Gui?.ModPackState(CoreRunState.Start);
634625

635-
var game = await InstancesPath.CreateGameAsync(new CreateGameArg
626+
var game = await InstancesPath.CreateGameAsync(new GameSettingObj()
636627
{
637-
Game = new()
638-
{
639-
GroupName = arg.Group,
640-
Name = arg.Name!
641-
},
642-
Request = arg.Request,
643-
Overwirte = arg.Overwirte
644-
});
628+
GroupName = arg.Group,
629+
Name = arg.Name!
630+
}, arg.Gui);
645631

646632
if (game == null)
647633
{
648634
return new GameRes();
649635
}
650636

651-
await new ZipProcess(arg.Gui).UnzipAsync(game.GetGamePath(), arg.Dir, st!);
637+
await new ZipProcess(arg.ZipGui).UnzipAsync(game.GetGamePath(), arg.Dir, st!);
652638

653639
//尝试解析版本号
654640
var files = Directory.GetFiles(game!.GetGamePath());
@@ -735,7 +721,7 @@ public static async Task<GameRes> InstallZip(InstallZipArg arg)
735721
_ => null
736722
};
737723

738-
arg.Update2?.Invoke(CoreRunState.End);
724+
arg.Gui?.ModPackState(CoreRunState.End);
739725

740726
return res1 ?? new GameRes();
741727
}
@@ -752,7 +738,7 @@ public static async Task<GameRes> InstallZip(InstallZipArg arg)
752738
{
753739
await game.RemoveAsync();
754740
}
755-
arg.Update2?.Invoke(CoreRunState.End);
741+
arg.Gui?.ModPackState(CoreRunState.End);
756742
return new GameRes();
757743
}
758744

@@ -777,11 +763,8 @@ public static async Task<GameRes> InstallModrinth(DownloadModrinthArg arg)
777763
Type = PackType.Modrinth,
778764
Name = arg.Name,
779765
Group = arg.Group,
780-
Zip = arg.Zip,
781-
Request = arg.Request,
782-
Overwirte = arg.Overwirte,
783-
Update = arg.Update,
784-
Update2 = arg.Update2
766+
Gui = arg.Gui,
767+
ZipGui = arg.ZipGui
785768
});
786769
if (res2.State)
787770
{
@@ -819,11 +802,8 @@ public static async Task<GameRes> InstallCurseForge(DownloadCurseForgeArg arg)
819802
Type = PackType.CurseForge,
820803
Name = arg.Name,
821804
Group = arg.Group,
822-
Zip = arg.Zip,
823-
Request = arg.Request,
824-
Overwirte = arg.Overwirte,
825-
Update = arg.Update,
826-
Update2 = arg.Update2
805+
Gui = arg.Gui,
806+
ZipGui = arg.ZipGui
827807
});
828808
if (res2.State)
829809
{

src/ColorMC.Core/Helpers/AuthlibHelper.cs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,10 @@ private static FileItemObj BuildAuthlibInjectorItem(AuthlibInjectorObj obj)
6868
/// <returns>Nide8Injector下载实例</returns>
6969
public static async Task<FileItemObj?> ReadyNide8Async(CancellationToken token)
7070
{
71-
var data = await CoreHttpClient.GetStringAsync($"{UrlHelper.Nide8}00000000000000000000000000000000/", token);
72-
if (data.State == false)
73-
{
74-
throw new LaunchException(LaunchError.LoginCoreError);
75-
}
76-
77-
var obj = JsonUtils.ReadObj(data.Data!)!;
71+
var data = await CoreHttpClient.GetStringAsync($"{UrlHelper.Nide8}00000000000000000000000000000000/", token)
72+
?? throw new LaunchException(LaunchError.LoginCoreError);
73+
var obj = JsonUtils.ReadObj(data)
74+
?? throw new LaunchException(LaunchError.LoginCoreError);
7875
var sha1 = obj.GetString("jarHash")!;
7976
var item = BuildNide8Item(obj.GetString("jarVersion")!);
8077
NowNide8Injector = item.Local;
@@ -108,23 +105,23 @@ private static async Task<AuthlibInjectorObj> GetAuthlibInjectorObjAsync(Cancell
108105
{
109106
string url = UrlHelper.AuthlibInjectorMeta(CoreHttpClient.Source);
110107
var meta = await CoreHttpClient.GetStringAsync(url, token);
111-
if (meta.State == false)
108+
if (meta == null)
112109
{
113110
return LocalAuthLib;
114111
}
115-
var obj = JsonUtils.ToObj(meta.Data!, JsonType.AuthlibInjectorMetaObj);
112+
var obj = JsonUtils.ToObj(meta, JsonType.AuthlibInjectorMetaObj);
116113
if (obj == null)
117114
{
118115
return LocalAuthLib;
119116
}
120117
var item = obj.Artifacts.Where(a => a.BuildNumber == obj.LatestBuildNumber).ToList()[0];
121118

122119
var info = await CoreHttpClient.GetStringAsync(UrlHelper.AuthlibInjector(item, CoreHttpClient.Source), token);
123-
if (info.State == false)
120+
if (info == null)
124121
{
125122
return LocalAuthLib;
126123
}
127-
return JsonUtils.ToObj(info.Data!, JsonType.AuthlibInjectorObj) ?? LocalAuthLib;
124+
return JsonUtils.ToObj(info, JsonType.AuthlibInjectorObj) ?? LocalAuthLib;
128125
}
129126
catch
130127
{

src/ColorMC.Core/Net/Apis/CurseForgeAPI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ private static int Loader(Loaders loader)
241241
}
242242
catch (Exception e)
243243
{
244-
244+
ColorMCCore.OnError(new ApiRequestErrorEventArgs(temp, e));
245245
return null;
246246
}
247247
}

src/ColorMC.Gui/Resource/Language/zh-cn.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -840,6 +840,7 @@
840840
"AddJavaWindow.Info5": "正在解压",
841841
"AddJavaWindow.Info6": "Java列表已刷新",
842842
"AddJavaWindow.Error1": "获取失败",
843+
"AddJavaWindow.Error2": "Java下载失败",
843844
"SkinWindow.Title": "皮肤预览",
844845
"SkinWindow.Text1": "重置视角",
845846
"SkinWindow.Text3": "修改皮肤",
@@ -1269,7 +1270,7 @@
12691270
"Core.Error49": "读取压缩包错误",
12701271
"Core.Error50": "整合包[{0}]导入错误",
12711272
"Core.Error51": "Java检查失败",
1272-
"Core.Error52": "Java下载失败",
1273+
"Core.Error52": "Java下载失败[{0}][{1}]",
12731274
"Core.Error53": "没有找到Java",
12741275
"Core.Error54": "Java[{0}][{1}]下安装载错误",
12751276
"Core.Error55": "Java添加错误",

src/ColorMC.Gui/UI/Model/Setting/SettingTab5Model.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using ColorMC.Gui.Manager;
99
using ColorMC.Gui.UI.Model.Items;
1010
using ColorMC.Gui.UIBinding;
11+
using ColorMC.Gui.Utils;
1112
using CommunityToolkit.Mvvm.ComponentModel;
1213
using CommunityToolkit.Mvvm.Input;
1314

@@ -140,7 +141,7 @@ private async void AddJavaZip()
140141
Model.ProgressClose();
141142
if (!res.State)
142143
{
143-
Model.Show(res.Data!);
144+
Model.Show(res.Data);
144145
}
145146
else
146147
{

0 commit comments

Comments
 (0)