Skip to content

Commit 610b776

Browse files
committed
up 更改回dotnet8
问题出自dotnet/runtime#109812
1 parent d812ab6 commit 610b776

40 files changed

+188
-70
lines changed

src/.editorconfig

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental
7979
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true:silent
8080
csharp_space_around_binary_operators = before_and_after
8181
csharp_indent_labels = one_less_than_current
82+
csharp_prefer_system_threading_lock = true:suggestion
8283

8384
[*.vb]
8485
#### 命名样式 ####

src/ColorMC.Core/ColorMC.Core.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>$(DotnetVersion)</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<BaseOutputPath></BaseOutputPath>

src/ColorMC.Core/Helpers/CurseForgeHelper.cs

+10-2
Original file line numberDiff line numberDiff line change
@@ -196,17 +196,19 @@ public static async Task<MakeDownloadItemsRes> GetModInfoAsync(GetCurseForgeModI
196196
{
197197
var res1 = res.Distinct(CurseForgeDataComparer.Instance);
198198

199+
var mods = new ConcurrentDictionary<string, ModInfoObj>(arg.Game.Mods);
200+
199201
await Parallel.ForEachAsync(res1, async (item, cancel) =>
200202
{
201203
var path = await GetItemPathAsync(arg.Game, item);
202204
var item1 = item.MakeModDownloadObj(path.File);
203205
list.Add(item1);
204206
var modid = item.ModId.ToString();
205-
arg.Game.Mods.Remove(modid);
207+
mods.TryRemove(modid, out _);
206208

207209
if (path.FileType == FileType.Mod)
208210
{
209-
arg.Game.Mods.Add(modid, item.MakeModInfo(path.Name));
211+
mods.TryAdd(modid, item.MakeModInfo(path.Name));
210212
}
211213
else if (path.FileType == FileType.World)
212214
{
@@ -219,6 +221,12 @@ await Parallel.ForEachAsync(res1, async (item, cancel) =>
219221
now++;
220222
arg.Update?.Invoke(size, now);
221223
});
224+
225+
arg.Game.Mods.Clear();
226+
foreach (var item in mods)
227+
{
228+
arg.Game.Mods.Add(item.Key, item.Value);
229+
}
222230
}
223231
else
224232
{

src/ColorMC.Core/Helpers/ModPackHelper.cs

+27-8
Original file line numberDiff line numberDiff line change
@@ -194,24 +194,28 @@ private static async Task<bool> UpdateCurseForgeModPackAsync(UpdateModPackArg ar
194194

195195
var list1 = new List<DownloadItemObj>();
196196

197+
int b = 0;
198+
197199
if (info3 != null)
198200
{
199201
var addlist = new List<CurseForgePackObj.FilesObj>();
200202
var removelist = new List<CurseForgePackObj.FilesObj>();
201203

202-
CurseForgePackObj.FilesObj[] temp1 = [.. info.Files];
204+
CurseForgePackObj.FilesObj?[] temp1 = [.. info.Files];
203205
CurseForgePackObj.FilesObj?[] temp2 = [.. info3.Files];
204206

205-
foreach (var item in temp1)
207+
for (int index1 = 0; index1 < temp1.Length; index1++)
206208
{
207-
for (int a = 0; a < temp2.Length; a++)
209+
var item = temp1[index1];
210+
for (int index2 = 0; index2 < temp2.Length; index2++)
208211
{
209-
var item1 = temp2[a];
212+
var item1 = temp2[index2];
210213
if (item1 == null)
211214
continue;
212-
if (item.ProjectID == item1.ProjectID)
215+
if (item!.ProjectID == item1.ProjectID)
213216
{
214-
temp2[a] = null;
217+
temp1[index1] = null;
218+
temp2[index2] = null;
215219
if (item.FileID != item1.FileID)
216220
{
217221
addlist.Add(item1);
@@ -222,14 +226,22 @@ private static async Task<bool> UpdateCurseForgeModPackAsync(UpdateModPackArg ar
222226
}
223227
}
224228

225-
foreach (var item in temp2)
229+
foreach (var item in temp1)
226230
{
227231
if (item != null)
228232
{
229233
addlist.Add(item);
230234
}
231235
}
232236

237+
foreach (var item in temp2)
238+
{
239+
if (item != null)
240+
{
241+
removelist.Add(item);
242+
}
243+
}
244+
233245
foreach (var item in removelist)
234246
{
235247
if (arg.Game.Mods.Remove(item.ProjectID.ToString(), out var mod))
@@ -238,6 +250,11 @@ private static async Task<bool> UpdateCurseForgeModPackAsync(UpdateModPackArg ar
238250
}
239251
}
240252

253+
if (addlist.Count > 0)
254+
{
255+
arg.Update?.Invoke(addlist.Count, 0);
256+
}
257+
241258
foreach (var item in addlist)
242259
{
243260
var res = await CurseForgeAPI.GetMod(item);
@@ -252,8 +269,10 @@ private static async Task<bool> UpdateCurseForgeModPackAsync(UpdateModPackArg ar
252269
list1.Add(item1);
253270
if (path1.FileType == FileType.Mod)
254271
{
255-
arg.Game.Mods.Add(modid, res.Data.MakeModInfo(path1.Name));
272+
arg.Game.Mods.TryAdd(modid, res.Data.MakeModInfo(path1.Name));
256273
}
274+
275+
arg.Update?.Invoke(addlist.Count, ++b);
257276
}
258277
}
259278
else

src/ColorMC.CustomGui/ColorMC.CustomGui.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>$(DotnetVersion)</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
</PropertyGroup>

src/ColorMC.Gui/ColorMC.Gui.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<OutputType>Library</OutputType>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>$(DotnetVersion)</TargetFramework>
55
<Nullable>enable</Nullable>
66
<TrimMode>link</TrimMode>
77
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>

src/ColorMC.Gui/Manager/ImageManager.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public static void LoadSkinHead(string? file, string? file1)
8888
Logs.Error(string.Format(App.Lang("ImageManager.Error1"), file), e);
8989
}
9090
}
91-
if (file1 != null || !File.Exists(file1))
91+
if (file1 != null && File.Exists(file1))
9292
{
9393
try
9494
{

src/ColorMC.Gui/Manager/WindowManager.cs

+18-18
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ public static class WindowManager
5858
public static NetFrpControl? NetFrpWindow { get; set; }
5959

6060
public static Dictionary<string, GameEditControl> GameEditWindows { get; } = [];
61-
public static Dictionary<string, GameConfigEditControl> ConfigEditWindows { get; } = [];
62-
public static Dictionary<string, AddControl> AddWindows { get; } = [];
61+
public static Dictionary<string, GameConfigEditControl> GameConfigEditWindows { get; } = [];
62+
public static Dictionary<string, AddControl> GameAddWindows { get; } = [];
6363
public static Dictionary<string, ServerPackControl> ServerPackWindows { get; } = [];
6464
public static Dictionary<string, GameLogControl> GameLogWindows { get; } = [];
6565
public static Dictionary<string, GameExportControl> GameExportWindows { get; } = [];
@@ -445,63 +445,63 @@ public static void ShowAdd(GameSettingObj obj, ModDisplayModel obj1)
445445
{
446446
var type1 = DownloadItemHelper.TestSourceType(obj1.PID, obj1.FID);
447447

448-
if (AddWindows.TryGetValue(obj.UUID, out var value))
448+
if (GameAddWindows.TryGetValue(obj.UUID, out var value))
449449
{
450450
value.Window.TopActivate();
451451
value.GoFile(type1, obj1.PID!);
452452
}
453453
else
454454
{
455455
var con = new AddControl(obj);
456-
AddWindows.Add(obj.UUID, con);
456+
GameAddWindows.Add(obj.UUID, con);
457457
AWindow(con);
458458
con.GoFile(type1, obj1.PID!);
459459
}
460460
}
461461

462462
public static Task ShowAddSet(GameSettingObj obj)
463463
{
464-
if (AddWindows.TryGetValue(obj.UUID, out var value))
464+
if (GameAddWindows.TryGetValue(obj.UUID, out var value))
465465
{
466466
value.Window.TopActivate();
467467
return value.GoSet();
468468
}
469469
else
470470
{
471471
var con = new AddControl(obj);
472-
AddWindows.Add(obj.UUID, con);
472+
GameAddWindows.Add(obj.UUID, con);
473473
AWindow(con);
474474
return con.GoSet();
475475
}
476476
}
477477

478478
public static void ShowAddUpgade(GameSettingObj obj, ICollection<ModUpgradeModel> list)
479479
{
480-
if (AddWindows.TryGetValue(obj.UUID, out var value))
480+
if (GameAddWindows.TryGetValue(obj.UUID, out var value))
481481
{
482482
value.Window.TopActivate();
483483
value.GoUpgrade(list);
484484
}
485485
else
486486
{
487487
var con = new AddControl(obj);
488-
AddWindows.Add(obj.UUID, con);
488+
GameAddWindows.Add(obj.UUID, con);
489489
AWindow(con);
490490
con.GoUpgrade(list);
491491
}
492492
}
493493

494494
public static void ShowAdd(GameSettingObj obj, FileType type)
495495
{
496-
if (AddWindows.TryGetValue(obj.UUID, out var value))
496+
if (GameAddWindows.TryGetValue(obj.UUID, out var value))
497497
{
498498
value.Window.TopActivate();
499499
value.GoTo(type);
500500
}
501501
else
502502
{
503503
var con = new AddControl(obj);
504-
AddWindows.Add(obj.UUID, con);
504+
GameAddWindows.Add(obj.UUID, con);
505505
AWindow(con);
506506
con.GoTo(type);
507507
}
@@ -537,29 +537,29 @@ public static void ShowGameLog(GameSettingObj obj)
537537

538538
public static void ShowConfigEdit(GameSettingObj obj)
539539
{
540-
if (ConfigEditWindows.TryGetValue(obj.UUID, out var win1))
540+
if (GameConfigEditWindows.TryGetValue(obj.UUID, out var win1))
541541
{
542542
win1.Window.TopActivate();
543543
}
544544
else
545545
{
546546
var con = new GameConfigEditControl(obj);
547-
ConfigEditWindows.Add(obj.UUID, con);
547+
GameConfigEditWindows.Add(obj.UUID, con);
548548
AWindow(con);
549549
}
550550
}
551551

552552
public static void ShowConfigEdit(WorldObj obj)
553553
{
554554
string key = obj.Game.UUID + ":" + obj.LevelName;
555-
if (ConfigEditWindows.TryGetValue(key, out var win1))
555+
if (GameConfigEditWindows.TryGetValue(key, out var win1))
556556
{
557557
win1.Window.TopActivate();
558558
}
559559
else
560560
{
561561
var con = new GameConfigEditControl(obj);
562-
ConfigEditWindows.Add(key, con);
562+
GameConfigEditWindows.Add(key, con);
563563
AWindow(con);
564564
}
565565
}
@@ -656,7 +656,7 @@ public static void CloseGameWindow(GameSettingObj obj)
656656
{
657657
Dispatcher.UIThread.Post(win5.Window.Close);
658658
}
659-
if (AddWindows.TryGetValue(obj.UUID, out var win1))
659+
if (GameAddWindows.TryGetValue(obj.UUID, out var win1))
660660
{
661661
Dispatcher.UIThread.Post(win1.Window.Close);
662662
}
@@ -672,7 +672,7 @@ public static void CloseGameWindow(GameSettingObj obj)
672672
{
673673
Dispatcher.UIThread.Post(win4.Window.Close);
674674
}
675-
foreach (var item in ConfigEditWindows)
675+
foreach (var item in GameConfigEditWindows)
676676
{
677677
if (item.Key.StartsWith(obj.UUID))
678678
{
@@ -802,11 +802,11 @@ public static void CloseAllWindow()
802802
{
803803
(item.GetVisualRoot() as Window)?.Close();
804804
}
805-
foreach (var item in ConfigEditWindows.Values)
805+
foreach (var item in GameConfigEditWindows.Values)
806806
{
807807
(item.GetVisualRoot() as Window)?.Close();
808808
}
809-
foreach (var item in AddWindows.Values)
809+
foreach (var item in GameAddWindows.Values)
810810
{
811811
(item.GetVisualRoot() as Window)?.Close();
812812
}

src/ColorMC.Gui/Properties/PublishProfiles/FolderProfile.pubxml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
99
<PublishDir>..\build_out\Gui\</PublishDir>
1010
<PublishProtocol>FileSystem</PublishProtocol>
1111
<_TargetId>Folder</_TargetId>
12-
<TargetFramework>net9.0</TargetFramework>
12+
<TargetFramework>$(DotnetVersion)</TargetFramework>
1313
<SelfContained>false</SelfContained>
1414
</PropertyGroup>
1515
</Project>

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

+1
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@
458458
"GameEditWindow.Tab1.Info14": "加载器类型已刷新",
459459
"GameEditWindow.Tab1.Info15": "加载器版本已刷新",
460460
"GameEditWindow.Tab1.Info16": "语言列表已刷新",
461+
"GameEditWindow.Tab1.Info17": "是否将实例名字改为 {0}",
461462
"GameEditWindow.Tab1.Error1": "游戏运行中,无法删除",
462463
"GameEditWindow.Tab1.Error2": "更新失败",
463464
"GameEditWindow.Tab1.Error3": "无法检测,没有版本信息",

src/ColorMC.Gui/UI/Controls/Add/AddControl.axaml.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.Collections.Generic;
23
using System.ComponentModel;
34
using System.Threading.Tasks;
@@ -59,7 +60,7 @@ public override Bitmap GetIcon()
5960

6061
public override void Closed()
6162
{
62-
WindowManager.AddWindows.Remove(_obj.UUID);
63+
WindowManager.GameAddWindows.Remove(_obj.UUID);
6364
}
6465

6566
public override void Opened()
@@ -173,4 +174,10 @@ public void GoUpgrade(ICollection<ModUpgradeModel> list)
173174
{
174175
(DataContext as AddControlModel)!.Upgrade(list);
175176
}
177+
178+
public void ReloadTitle()
179+
{
180+
Title = string.Format(App.Lang("AddWindow.Title"), _obj.Name);
181+
Window.SetTitle(Title);
182+
}
176183
}

src/ColorMC.Gui/UI/Controls/GameCloud/GameCloudControl.axaml.cs

+7
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using System.ComponentModel;
23
using Avalonia.Controls;
34
using Avalonia.Media.Imaging;
@@ -70,4 +71,10 @@ public void GoWorld()
7071
model.NowView = 2;
7172
});
7273
}
74+
75+
public void ReloadTitle()
76+
{
77+
Title = string.Format(App.Lang("GameCloudWindow.Title"), Obj.Name);
78+
Window.SetTitle(Title);
79+
}
7380
}

0 commit comments

Comments
 (0)