Skip to content

Commit aa471a3

Browse files
authored
Merge pull request #52 from Titlehhhh/dev
fix bug
2 parents c558e51 + 4515f79 commit aa471a3

32 files changed

+237
-116
lines changed

build/_build.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2020
</PackageReference>
2121

22-
<PackageReference Include="Nuke.Common" Version="7.0.6" />
22+
<PackageReference Include="Nuke.Common" Version="8.0.0" />
2323

24-
<PackageReference Include="Octokit" Version="9.1.0" />
24+
<PackageReference Include="Octokit" Version="9.1.2" />
2525
</ItemGroup>
2626

2727
<ItemGroup>

src/CoreLibs/HolyClient.Abstractions/HolyClient.Abstractions.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111

1212
<ItemGroup>
13+
<PackageReference Include="Avalonia" Version="11.0.7" />
14+
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.7" />
1315
<PackageReference Include="MinVer" Version="5.0.0-beta.1" PrivateAssets="All" />
1416
<PackageReference Include="System.Reactive" Version="6.0.1-preview.1" />
1517
</ItemGroup>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using Avalonia.Controls;
2+
using ReactiveUI;
3+
using Serilog;
4+
using System.Reactive.Disposables;
5+
6+
namespace HolyClient.Abstractions.StressTest
7+
{
8+
public abstract class BaseStressTestBehavior : IStressTestBehavior
9+
{
10+
public ReactiveObject? DefaultViewModel { get; protected set; }
11+
12+
public ReactiveObject? ProcessViewModel { get; protected set; }
13+
14+
public ResourceDictionary? Resources { get; protected set; }
15+
16+
public abstract Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot> bots, ILogger logger, CancellationToken cancellationToken);
17+
}
18+
}
Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,27 @@
1-
using System.Reactive.Disposables;
1+
using Avalonia.Controls;
2+
using ReactiveUI;
3+
using System.ComponentModel;
4+
using System.Reactive.Disposables;
25

36
namespace HolyClient.Abstractions.StressTest
47
{
8+
9+
510
public interface IStressTestBehavior
611
{
712

8-
public Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot> bots, CancellationToken cancellationToken);
13+
14+
ReactiveObject? DefaultViewModel { get; }
15+
16+
ReactiveObject? ProcessViewModel { get; }
17+
18+
19+
ResourceDictionary? Resources { get; }
20+
21+
public Task Activate(
22+
CompositeDisposable disposables,
23+
IEnumerable<IStressTestBot> bots,
24+
Serilog.ILogger logger,
25+
CancellationToken cancellationToken);
926
}
1027
}

src/CoreLibs/HolyClient.Abstractions/StressTest/IStressTestBot.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
1-
using McProtoNet;
1+
using Avalonia.Controls;
2+
using McProtoNet;
23

34
namespace HolyClient.Abstractions.StressTest
45
{
56

67
public interface IStressTestBot
78
{
89
public Task Restart(bool changeNickAndProxy);
9-
10+
1011

1112
public MinecraftClient Client { get; }
1213
}

src/CoreLibs/HolyClient.Common/HolyClient.Common.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
<ItemGroup>
1111
<PackageReference Include="ConfigureAwait.Fody" Version="3.3.2" />
1212
<PackageReference Include="MessagePack" Version="2.6.100-alpha" />
13-
<PackageReference Include="Polly" Version="8.2.0" />
14-
<PackageReference Include="ReactiveUI.Fody" Version="19.5.39" />
13+
<PackageReference Include="Polly" Version="8.3.0" />
14+
<PackageReference Include="ReactiveUI.Fody" Version="19.5.41" />
1515
<PackageReference Include="Serilog" Version="3.1.2-dev-02097" />
1616
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
17-
<PackageReference Include="QuickProxyNet" Version="0.1.4" />
17+
<PackageReference Include="QuickProxyNet" Version="2.0.0-preview.1.1.4" />
1818
</ItemGroup>
1919

2020

src/CoreLibs/HolyClient.Core/Helpers/MapDataHelper.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
namespace HolyClient.Core.Helpers
1+
using SixLabors.ImageSharp;
2+
using SixLabors.ImageSharp.PixelFormats;
3+
4+
namespace HolyClient.Core.Helpers
25
{
36
public class MapDataHelper
47
{

src/CoreLibs/HolyClient.Core/HolyClient.Core.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
<ItemGroup>
2020
<PackageReference Include="ConfigureAwait.Fody" Version="3.3.2" />
2121
<PackageReference Include="MessagePack" Version="2.6.100-alpha" />
22-
<PackageReference Include="Polly" Version="8.2.0" />
23-
<PackageReference Include="ReactiveUI.Fody" Version="19.5.39" />
22+
<PackageReference Include="Polly" Version="8.3.0" />
23+
<PackageReference Include="ReactiveUI.Fody" Version="19.5.41" />
2424
<PackageReference Include="Serilog" Version="3.1.2-dev-02097" />
2525
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
26-
<PackageReference Include="SixLabors.Fonts" Version="2.0.0" />
27-
<PackageReference Include="SixLabors.ImageSharp" Version="3.0.2" />
28-
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.0.1" />
26+
<PackageReference Include="SixLabors.Fonts" Version="2.0.1" />
27+
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.2" />
28+
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.1" />
2929
</ItemGroup>
3030

3131
<ItemGroup>

src/CoreLibs/HolyClient.SDK/HolyClient.SDK.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<PackageReference Include="MinVer" Version="5.0.0-beta.1" PrivateAssets="All" />
1212
<PackageReference Include="System.ComponentModel.Composition" Version="8.0.0" />
1313
<PackageReference Include="System.Reactive" Version="6.0.1-preview.1" />
14-
<PackageReference Include="bodong.PropertyModels" Version="11.0.4.1" />
14+
<PackageReference Include="bodong.PropertyModels" Version="11.0.6.2" />
1515
</ItemGroup>
1616

1717
<ItemGroup>

src/CoreLibs/HolyClient.StressTest/DefaultBehavior.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
using HolyClient.Abstractions.StressTest;
2+
using Serilog;
23
using System.Reactive.Disposables;
34
using System.Reactive.Linq;
45
using System.Reactive.Threading.Tasks;
56
using System.Text.RegularExpressions;
67

78
namespace HolyClient.StressTest
89
{
9-
public class DefaultBehavior : IStressTestBehavior
10+
public class DefaultBehavior : BaseStressTestBehavior
1011
{
1112
[System.ComponentModel.DisplayName("Spam text")]
1213
public string SpamText { get; set; } = "!Hello from Minecraft Holy Client";
@@ -24,7 +25,7 @@ public class DefaultBehavior : IStressTestBehavior
2425

2526
private static Regex SayVerifyRegex = new(@"\.say \/verify (\d+)");
2627

27-
public Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot> bots, CancellationToken cancellationToken)
28+
public override Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot> bots,ILogger logger, CancellationToken cancellationToken)
2829
{
2930
foreach (var bot in bots)
3031
{
@@ -50,7 +51,7 @@ public Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot
5051
{
5152
cts = null;
5253
}
53-
if (Reconnects <= 0)
54+
if (Reconnects <= 1)
5455
{
5556
await bot.Restart(true);
5657
}
@@ -89,8 +90,9 @@ public Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot
8990

9091
await Task.Delay(500);
9192

93+
await bot.Client.SendChat("/register 21qwerty");
9294
await bot.Client.SendChat("/register 21qwerty 21qwerty");
93-
95+
await bot.Client.SendChat("/login 21qwerty");
9496
try
9597
{
9698
using CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
@@ -112,6 +114,7 @@ public Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot
112114

113115
}
114116

117+
115118
var spamming = SpamMessage(cts, bot);
116119
var nuker = SpamNocomAsync(cts, bot);
117120

src/CoreLibs/HolyClient.StressTest/HolyClient.StressTest.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<ItemGroup>
1010
<PackageReference Include="ConfigureAwait.Fody" Version="3.3.2" />
1111
<PackageReference Include="MessagePack" Version="2.6.100-alpha" />
12-
<PackageReference Include="ReactiveUI.Fody" Version="19.5.39" />
12+
<PackageReference Include="ReactiveUI.Fody" Version="19.5.41" />
1313
<PackageReference Include="Serilog" Version="3.1.2-dev-02097" />
1414
<PackageReference Include="Serilog.Sinks.Console" Version="5.0.1" />
1515
</ItemGroup>

src/CoreLibs/HolyClient.StressTest/StressTestProfile.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public IStressTestBehavior Behavior
101101
[IgnoreMember]
102102
public StressTestServiceState CurrentState { get; private set; }
103103

104-
104+
105105
[IgnoreMember]
106106
public ConcurrentDictionary<Tuple<string, string>, ExceptionCounter> ExceptionCounter { get; private set; } = new();
107107

@@ -371,7 +371,7 @@ public async Task Start(Serilog.ILogger logger)
371371
logger.Information("Запуск поведения");
372372
if (Behavior is not null)
373373
{
374-
await Behavior.Activate(disposables, stressTestBots, cancellationTokenSource.Token);
374+
await Behavior.Activate(disposables, stressTestBots, logger, cancellationTokenSource.Token);
375375
}
376376
logger.Information("Поведение запущено");
377377

@@ -408,22 +408,22 @@ public async Task Start(Serilog.ILogger logger)
408408
sources.Add(new UrlProxySource(QuickProxyNet.ProxyType.SOCKS4, "https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt"));
409409
sources.Add(new UrlProxySource(QuickProxyNet.ProxyType.SOCKS5, "https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks5.txt"));
410410
}
411-
411+
412412
List<Task<IEnumerable<ProxyInfo>>> tasks = new();
413413

414414
foreach (var s in sources)
415415
{
416416
tasks.Add(s.GetProxiesAsync());
417417
}
418-
418+
419419
var result = await Task.WhenAll(tasks);
420420

421421
var proxies = result.SelectMany(x => x).ToList();
422-
422+
423423
var provider = new ProxyProvider(proxies);
424424

425425
var group = proxies.GroupBy(x => x.Type).Select(x => $"{x.Key} - {x.Count()}");
426-
426+
427427
logger.Information($"Загружено {proxies.Count} прокси. {string.Join(", ", group)}");
428428

429429
return provider;

src/CoreLibs/HolyClient.StressTest/TidePVPBehaviorAttack.cs

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,55 @@
1-
using HolyClient.Abstractions.StressTest;
1+
using Avalonia.Controls;
2+
using HolyClient.Abstractions.StressTest;
3+
using Serilog;
24
using System.Reactive.Disposables;
5+
using System.Reactive.Linq;
6+
using System.Threading.Tasks.Dataflow;
37

48
namespace HolyClient.StressTest
59
{
6-
public class TidePVPBehaviorAttack : IStressTestBehavior
10+
public class TidePVPBehaviorAttack : BaseStressTestBehavior
711
{
8-
public Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot> bots, CancellationToken cancellationToken)
12+
13+
14+
public override Task Activate(CompositeDisposable disposables, IEnumerable<IStressTestBot> bots, ILogger logger, CancellationToken cancellationToken)
915
{
16+
foreach (var bot in bots)
17+
{
18+
19+
20+
21+
22+
23+
bot.Client.OnDisconnect.Subscribe(async x =>
24+
{
25+
bool need = true;
26+
do
27+
{
28+
try
29+
{
30+
await Task.Delay(5000);
31+
32+
await bot.Restart(true);
33+
need = false;
34+
}
35+
catch
36+
{
37+
38+
}
39+
} while (need);
40+
});
41+
42+
43+
var d2 = bot.Client.OnJoinGame.Subscribe(async x =>
44+
{
45+
46+
});
47+
48+
disposables.Add(d2);
49+
50+
_ = bot.Restart(true);
51+
52+
}
1053
return Task.CompletedTask;
1154
}
1255
}

src/HolyClient/HolyClient.csproj

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,21 @@
3737

3838
<ItemGroup>
3939
<PackageReference Include="akavache" Version="9.1.20" />
40-
<PackageReference Include="Avalonia" Version="$(AvaloniaVersion)" />
41-
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.0.1" />
42-
<PackageReference Include="Avalonia.Themes.Fluent" Version="$(AvaloniaVersion)" />
43-
<PackageReference Include="Avalonia.Fonts.Inter" Version="$(AvaloniaVersion)" />
44-
<PackageReference Include="Avalonia.ReactiveUI" Version="$(AvaloniaVersion)" />
40+
<PackageReference Include="Avalonia" Version="11.0.7" />
41+
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.0.6" />
42+
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.7" />
43+
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.0.7" />
44+
<PackageReference Include="Avalonia.ReactiveUI" Version="11.0.7" />
4545
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
46-
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="$(AvaloniaVersion)" />
47-
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.5" />
48-
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="11.0.5" />
49-
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.0.1" />
50-
<PackageReference Include="bodong.Avalonia.PropertyGrid" Version="11.0.4.1" />
46+
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.7" />
47+
<PackageReference Include="Avalonia.Xaml.Behaviors" Version="11.0.6" />
48+
<PackageReference Include="Avalonia.Xaml.Interactivity" Version="11.0.6" />
49+
<PackageReference Include="AvaloniaEdit.TextMate" Version="11.0.6" />
50+
<PackageReference Include="bodong.Avalonia.PropertyGrid" Version="11.0.6.3" />
5151

52-
<PackageReference Include="Deadpikle.AvaloniaProgressRing" Version="0.10.0" />
53-
<PackageReference Include="DialogHost.Avalonia" Version="0.7.5" />
54-
<PackageReference Include="FluentAvaloniaUI" Version="2.0.4" />
52+
<PackageReference Include="Deadpikle.AvaloniaProgressRing" Version="0.10.5" />
53+
<PackageReference Include="DialogHost.Avalonia" Version="0.7.7" />
54+
<PackageReference Include="FluentAvaloniaUI" Version="2.0.5" />
5555
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-rc2" />
5656

5757
<PackageReference Include="Markdown.Avalonia" Version="11.0.2" />
@@ -62,9 +62,9 @@
6262
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.0" />
6363
<PackageReference Include="NuGet.Protocol" Version="6.8.0" />
6464
<PackageReference Include="NuGet.Resolver" Version="6.8.0" />
65-
<PackageReference Include="ReactiveUI.Fody" Version="19.5.39" />
65+
<PackageReference Include="ReactiveUI.Fody" Version="19.5.41" />
6666
<PackageReference Include="ReactiveUI.Validation" Version="3.1.7" />
67-
<PackageReference Include="SkiaSharp.Skottie" Version="2.88.6" />
67+
<PackageReference Include="SkiaSharp.Skottie" Version="2.88.7" />
6868
<PackageReference Include="SpacedGrid-Avalonia" Version="11.0.0" />
6969
<PackageReference Include="System.ComponentModel.Composition" Version="8.0.0" />
7070
<PackageReference Include="System.ComponentModel.Composition.Registration" Version="8.0.0" />
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System;
2+
3+
4+
namespace HolyClient.ViewModels;
5+
6+
public sealed class ExceptionInfoViewModel
7+
{
8+
public string Type { get; private set; }
9+
public string Message { get; private set; }
10+
public int Count { get; private set; }
11+
12+
public Tuple<string, string> Key { get; private set; }
13+
14+
public ExceptionInfoViewModel(string type, string message, int count)
15+
{
16+
Type = type;
17+
Message = message;
18+
Count = count;
19+
Key = Tuple.Create<string, string>(Type, Message);
20+
}
21+
}

0 commit comments

Comments
 (0)