Skip to content

Commit ead5800

Browse files
committed
up not done yep
1 parent 2eb02f7 commit ead5800

176 files changed

Lines changed: 2054 additions & 2258 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/ColorMC.Core/CoreMain.cs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,6 @@ public static class ColorMCCore
7171
/// <returns>是否继续运行</returns>
7272
public delegate Task<bool> LoginFailRun(LoginObj obj);
7373
/// <summary>
74-
/// OAuth登录
75-
/// </summary>
76-
/// <param name="url">网址</param>
77-
/// <param name="iscode">是否为登陆码模式</param>
78-
/// <param name="code">登陆码</param>
79-
public delegate void LoginOAuthCode(string url, bool iscode, string code);
80-
/// <summary>
8174
/// 游戏复写
8275
/// </summary>
8376
/// <param name="obj">游戏实例</param>
@@ -206,10 +199,7 @@ public static void KillGame(string uuid)
206199
/// <summary>
207200
/// 启动器产生错误,并打开窗口显示
208201
/// </summary>
209-
/// <param name="type"></param>
210-
/// <param name="e"></param>
211-
/// <param name="close"></param>
212-
/// <param name="show"></param>
202+
/// <param name="args">报错信息</param>
213203
internal static void OnError(CoreErrorEventArgs args)
214204
{
215205
Error?.Invoke(args);
@@ -218,8 +208,8 @@ internal static void OnError(CoreErrorEventArgs args)
218208
/// <summary>
219209
/// 运行游戏日志
220210
/// </summary>
221-
/// <param name="obj"></param>
222-
/// <param name="text"></param>
211+
/// <param name="obj">游戏实例</param>
212+
/// <param name="text">控制台输出</param>
223213
internal static void OnGameLog(GameSettingObj obj, string? text)
224214
{
225215
if (s_gameLogs.TryGetValue(obj.UUID, out var log))
@@ -229,6 +219,20 @@ internal static void OnGameLog(GameSettingObj obj, string? text)
229219
}
230220
}
231221

222+
/// <summary>
223+
/// 添加系统日志
224+
/// </summary>
225+
/// <param name="obj">游戏实例</param>
226+
/// <param name="type">系统日志类型</param>
227+
internal static void OnGameLog(GameSettingObj obj, GameSystemLog type)
228+
{
229+
if (s_gameLogs.TryGetValue(obj.UUID, out var log))
230+
{
231+
var item = log.AddLog(type);
232+
GameLog?.Invoke(new GameLogEventArgs(obj, item));
233+
}
234+
}
235+
232236
/// <summary>
233237
/// 清理游戏实例日志
234238
/// </summary>

src/ColorMC.Core/Downloader/DownloadThread.cs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -280,11 +280,8 @@ private bool Download(DownloadItem item, string file, byte[] buffer, Stream stre
280280
{
281281
item.File.State = DownloadItemState.Error;
282282
item.Task.UpdateItem(_index, item.File);
283-
ColorMCCore.OnError(new CoreErrorEventArgs(
284-
ErrorType.DownloadCheckError,
285-
null, false, false,
286-
item.File.Name,
287-
item.File.Url, item.File.Sha1, sha1));
283+
ColorMCCore.OnError(new DownloadHashErrorEventArgs(
284+
item.File, item.File.Sha1, sha1));
288285
return true;
289286
}
290287
}
@@ -296,11 +293,8 @@ private bool Download(DownloadItem item, string file, byte[] buffer, Stream stre
296293
{
297294
item.File.State = DownloadItemState.Error;
298295
item.Task.UpdateItem(_index, item.File);
299-
ColorMCCore.OnError(new CoreErrorEventArgs(
300-
ErrorType.DownloadCheckError,
301-
null, false, false,
302-
item.File.Name,
303-
item.File.Url, item.File.Sha256, sha256));
296+
ColorMCCore.OnError(new DownloadHashErrorEventArgs(
297+
item.File, item.File.Sha256, sha256));
304298
return true;
305299
}
306300
}
@@ -357,7 +351,7 @@ private void Run()
357351
item.File.State = DownloadItemState.Error;
358352
item.File.ErrorTime++;
359353
item.Task.UpdateItem(_index, item.File);
360-
Error(item.File, e);
354+
ColorMCCore.OnError(new DownloadExceptionErrorEventArgs(item.File, e));
361355
}
362356
}
363357

@@ -454,7 +448,7 @@ private void Run()
454448
item.File.ErrorTime++;
455449
item.Task.UpdateItem(_index, item.File);
456450
time++;
457-
Error(item.File, e);
451+
ColorMCCore.OnError(new DownloadExceptionErrorEventArgs(item.File, e));
458452

459453
if (time >= 5)
460454
{

src/ColorMC.Core/Downloader/IDownloadGuiHandel.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
using System.Threading.Tasks;
6-
using ColorMC.Core.Objs;
1+
using ColorMC.Core.Objs;
72

83
namespace ColorMC.Core.Downloader;
94

src/ColorMC.Core/Game/GameArg.cs

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ private static async Task<JvmArgRes> MakeJvmArgAsync(this GameSettingObj obj, Lo
510510
var res = await CoreHttpClient.GetStringAsync(login.Text1);
511511
if (!res.State)
512512
{
513-
throw new LaunchException(LaunchState.LoginCoreError, LanguageHelper.Get("Core.Error111"));
513+
throw new LaunchException(LaunchState.LoginCoreError);
514514
}
515515
jvm.Add($"-javaagent:{AuthlibHelper.NowAuthlibInjector}={login.Text1}");
516516
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res.Data!)}");
@@ -520,7 +520,7 @@ private static async Task<JvmArgRes> MakeJvmArgAsync(this GameSettingObj obj, Lo
520520
res = await CoreHttpClient.GetStringAsync($"{UrlHelper.LittleSkin}api/yggdrasil");
521521
if (!res.State)
522522
{
523-
throw new LaunchException(LaunchState.LoginCoreError, LanguageHelper.Get("Core.Error111"));
523+
throw new LaunchException(LaunchState.LoginCoreError);
524524
}
525525
jvm.Add($"-javaagent:{AuthlibHelper.NowAuthlibInjector}={UrlHelper.LittleSkin}api/yggdrasil");
526526
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res.Data!)}");
@@ -530,7 +530,7 @@ private static async Task<JvmArgRes> MakeJvmArgAsync(this GameSettingObj obj, Lo
530530
res = await CoreHttpClient.GetStringAsync($"{login.Text1}api/yggdrasil");
531531
if (!res.State)
532532
{
533-
throw new LaunchException(LaunchState.LoginCoreError, LanguageHelper.Get("Core.Error111"));
533+
throw new LaunchException(LaunchState.LoginCoreError);
534534
}
535535
jvm.Add($"-javaagent:{AuthlibHelper.NowAuthlibInjector}={login.Text1}/api/yggdrasil");
536536
jvm.Add($"-Dauthlibinjector.yggdrasil.prefetched={HashHelper.GenBase64(res.Data!)}");
@@ -616,7 +616,7 @@ public static List<string> MakeRunArg(this GameSettingObj obj, GameLaunchArg lar
616616
{
617617
var classpath = new StringBuilder();
618618
var sep = SystemInfo.Os == OsType.Windows ? ';' : ':';
619-
ColorMCCore.OnGameLog(obj, LanguageHelper.Get("Core.Info28"));
619+
ColorMCCore.OnGameLog(obj, GameSystemLog.RuntimeLib);
620620

621621
if (arg.UseColorMCASM)
622622
{
@@ -675,7 +675,7 @@ public static List<string> MakeRunArg(this GameSettingObj obj, GameLaunchArg lar
675675
private static string MakeMainClass(this GameSettingObj obj)
676676
{
677677
var version = VersionPath.GetVersion(obj.Version)
678-
?? throw new Exception(string.Format(LanguageHelper.Get("Core.Error116"), obj.Version));
678+
?? throw new LaunchException(LaunchState.LostVersion);
679679
var v2 = version.IsGameVersionV2();
680680
if (!string.IsNullOrWhiteSpace(obj.AdvanceJvm?.MainClass))
681681
{
@@ -775,11 +775,8 @@ await Task.Run(async () =>
775775
}
776776
if (res2 == null)
777777
{
778-
res2 = await obj.BuildForgeAsync();
779-
if (res2 == null)
780-
{
781-
throw new LaunchException(LaunchState.LostLoader, LanguageHelper.Get("Core.Error104"));
782-
}
778+
res2 = await obj.BuildForgeAsync()
779+
?? throw new LaunchException(LaunchState.LostLoader);
783780
}
784781
loader = res2.Loaders;
785782
install = res2.Installs;
@@ -796,7 +793,7 @@ await Task.Run(async () =>
796793
return;
797794
}
798795
loader ??= await obj.BuildFabricAsync()
799-
?? throw new LaunchException(LaunchState.LostLoader, LanguageHelper.Get("Core.Error104"));
796+
?? throw new LaunchException(LaunchState.LostLoader);
800797
break;
801798
case Loaders.Quilt:
802799
loader = obj.GetQuiltLibs();
@@ -805,7 +802,7 @@ await Task.Run(async () =>
805802
return;
806803
}
807804
loader ??= await obj.BuildQuiltAsync()
808-
?? throw new LaunchException(LaunchState.LostLoader, LanguageHelper.Get("Core.Error104"));
805+
?? throw new LaunchException(LaunchState.LostLoader);
809806
break;
810807
case Loaders.OptiFine:
811808
loader = obj.GetOptifineLibs();
@@ -814,22 +811,22 @@ await Task.Run(async () =>
814811
return;
815812
}
816813
loader ??= await obj.BuildOptifineAsync()
817-
?? throw new LaunchException(LaunchState.LostLoader, LanguageHelper.Get("Core.Error104"));
814+
?? throw new LaunchException(LaunchState.LostLoader);
818815
GameHelper.ReadyOptifineWrapper();
819816
loader.Add(GameHelper.OptifineWrapper);
820817
break;
821818
case Loaders.Custom:
822819
if (obj.CustomLoader == null || !File.Exists(obj.GetGameLoaderFile()))
823820
{
824-
throw new LaunchException(LaunchState.LostLoader, LanguageHelper.Get("Core.Error104"));
821+
throw new LaunchException(LaunchState.LostLoader);
825822
}
826823

827824
if (cancel.IsCancellationRequested)
828825
{
829826
return;
830827
}
831-
var res1 = await GameDownloadHelper.DecodeLoaderJarAsync(obj, obj.GetGameLoaderFile(), cancel)
832-
?? throw new LaunchException(LaunchState.LostLoader, LanguageHelper.Get("Core.Error104"));
828+
var res1 = await GameDownloadHelper.DecodeLoaderJarAsync(obj, obj.GetGameLoaderFile(), cancel)
829+
?? throw new LaunchException(LaunchState.LostLoader);
833830
loader = res1.List?.ToList();
834831
break;
835832
}
@@ -895,9 +892,8 @@ await Task.Run(async () =>
895892
{
896893
//不存在json文件
897894
var res = await GameAPI.GetAssetsAsync(game.AssetIndex.Url)
898-
?? throw new LaunchException(LaunchState.AssetsError,
899-
LanguageHelper.Get("Core.Error103"));
900-
// assets = res.Assets;
895+
?? throw new LaunchException(LaunchState.AssetsError);
896+
assets = res.Assets;
901897
game.AddIndex(res.Text);
902898
}
903899
arg.Assets = game.AssetIndex;
@@ -950,8 +946,8 @@ await Task.Run(async () =>
950946
if (assets == null)
951947
{
952948
var res = await GameAPI.GetAssetsAsync(item.AssetIndex.Url)
953-
?? throw new LaunchException(LaunchState.AssetsError, LanguageHelper.Get("Core.Error103"));
954-
// assets = res.Assets;
949+
?? throw new LaunchException(LaunchState.AssetsError);
950+
assets = res.Assets;
955951
item.AddIndex(res.Text);
956952
}
957953
arg.Assets = item.AssetIndex;

0 commit comments

Comments
 (0)