Skip to content

Commit 35b5d68

Browse files
authored
Merge pull request #44 from Titlehhhh/release/2.0.0-preview.1
new release
2 parents f201df0 + bed90da commit 35b5d68

32 files changed

+886
-556
lines changed

.github/workflows/continuous.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,19 @@ on:
44
push:
55
branches:
66
- master
7+
- release/**
78
paths-ignore:
89
- '**/*.md'
910
- '**/*.gitignore'
1011
- '**/*.gitattributes'
12+
1113

1214

1315

1416
jobs:
1517
Libs:
1618
name: Build and deploy NuGet
17-
runs-on: ubuntu-latest
19+
runs-on: ubuntu-latest
1820
env:
1921
FeedzApiKey: ${{ secrets.FEEDZ_TOKEN }}
2022
DOTNET_CLI_TELEMETRY_OPTOUT: 1
@@ -47,6 +49,7 @@ jobs:
4749
run: chmod +x ./build.sh
4850

4951
- name: Run './build.cmd'
52+
if: github.ref == 'refs/heads/master'
5053
run: ./build.sh LibsPush
5154
env:
5255
NuGetApiKey: ${{ secrets.NUGET_API_KEY }}
@@ -108,6 +111,7 @@ jobs:
108111
name: "CreateRelease"
109112
needs: [build-desktop-app]
110113
runs-on: ubuntu-latest
114+
111115
steps:
112116
- uses: actions/checkout@v4
113117
with:
@@ -137,6 +141,7 @@ jobs:
137141
run: chmod +x ./build.sh
138142

139143
- name: Run './build.cmd'
144+
if: github.ref == 'refs/heads/master'
140145
run: ./build.sh CreateRelease
141146
env:
142147
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Directory.Build.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
<PrivateAssets>all</PrivateAssets>
66
<Version>3.6.133</Version>
77
</PackageReference>
8+
89
</ItemGroup>
910
</Project>

README.md

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,34 @@
44

55
# Minecraft Holy Client
66

7-
Удобное, высокопроизводительное, легко масштабируемое и кроссплатформенное приложение для создания и управления ботами Minecraft.
7+
Высокопроизводительная платформа для запуска стресс-тест ботов Minecraft, написанная на C#.
88

9-
## Основные функции
9+
## Get Started
1010

11-
- Стресс-тест - высокопроизводительные боты, которые тестируют Ваш сервер на устойчивость к распределенным кибер-атакам типа "Отказ в обслуживании". Поведение ботов можно переопределять с помощью плагинов.
12-
- Менеджер ботов(в разработке) - Вы можете создавать и запускать простых ботов на сервера для автоматизации игровых процессов, например, авто-рыбалка.
11+
[Скачайте в релизах](https://github.com/Titlehhhh/Minecraft-Holy-Client/releases) последнюю версию Minecraft Holy Client и запустите её.
1312

13+
После запуска приложения Вас встретит окно с главной страницей.
14+
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/4d582c49-13bd-44c7-81b4-f6ebd5b924cd)
1415

15-
## Начать пользоваться
16+
После открытия навигационного меню Вы увидите несколько пунктов:
17+
- Главная. Страница где есть основная информация о приложении: GitHub, Наш Discord сервер, а также документация(в разрботке).
18+
- Бот менеджер. Эта экспериментальная функция. Планируется в программу добавить простых ботов, таких как, боты афк-рыбалки или подобные.
19+
- Настройки. Вы можете настроить язык. Пока можно настроить только это.
20+
- Стресс-тест. Основная возможность приложения. Здесь Вы можете протестировать Ваш сервер под высокой нагрузкой.
21+
- Управление расширениями. Здесь Вы можете добавить свои плагины в программу.
22+
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/3a156e06-bd3c-4882-9c5c-ce123c14b9c2)
1623

17-
[Скачайте](https://raw.githubusercontent.com/Titlehhhh/HolyClientTestDeploy/main/preview/setup.exe) установщик, установите программу и запустите её.
24+
### Запуск стресс-теста
1825

19-
Как запустить стресс-тест смотрите [здесь](docs/RunStressTest.md).
26+
1) Перейдем на страницу Стресс-тест и введем Ip адрес сервера, который мы хотим нагрузить.
27+
2) Далее поставить префикс ника для ботов. Пусть будет "Title_"
28+
3) Затем укажем количество ботов. Это количество, которое система будет стремиться запустить. Например 1000.
29+
4) Укажем, что нужно в тестировании использовать прокси сервера, а также укажем версию 1.16.5.
30+
5) В настройках поведения укажем, чтобы боты спамили "Hello from Minecraft Holy Client".
31+
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/fdbab77e-0eed-44ed-bbe3-30e6d100802b)
2032

21-
22-
## Screenshots
23-
24-
### Home
25-
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/9ea99c5f-423e-4320-a0e2-a8046abe01cf)
26-
27-
### Bot manager (beta)
28-
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/89b32d18-066b-4f25-96c7-61f567aa7728)
29-
30-
### Stress test
31-
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/23df982b-8f20-44a5-9197-82b43c9d8dfd)
33+
Нажимаем на зеленую кнопку видим, что боты зашли на сервер и спамят "Hello from Minecraft Holy Client"
34+
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/51c89585-1fd5-4351-9677-a59322ececd7)
3235

3336

3437
## Roadmap

ReleaseNotes/2.0.0-preview.1/En.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
> [!WARNING]
2+
> Disclaimer: This translation was generated using AI.
3+
4+
# What's New in Minecraft Holy Client *2.0.0-preview.1*?
5+
6+
## Major Fixes
7+
8+
This section includes the following subsections:
9+
10+
- [Bug Fixes](#bug-fixes)
11+
- [Performance](#performance)
12+
- [Stress Test](#stress-test)
13+
- [Installer](#installer)
14+
15+
### Bug Fixes
16+
17+
#### Bot Counter
18+
19+
There was a minor issue where, during the stress test process, the bot count would spike, inaccurately portraying more bots than actually present. The bot counter now accurately reflects the current number of online bots.
20+
21+
#### Bot Restarts
22+
23+
In previous versions, bots might fail to restart in situations such as unsuccessful attempts to connect to a proxy, bots exiting the server, or internal errors during operation. Currently, bots correctly execute the restart process in such scenarios.
24+
25+
#### Socks5 Proxy
26+
27+
Previously, bots were unable to connect to socks5 proxies due to a protocol implementation error. Bots can now successfully connect to socks5 proxies.
28+
29+
### Performance
30+
31+
Performance is a crucial aspect of Minecraft Holy Client, with each feature designed for maximum efficiency. Additionally, the following enhancements have been implemented in Minecraft Holy Client, specifically geared towards improving performance:
32+
33+
- Drastically reduced RAM consumption. Previously, instances of MinecraftPrimitiveReader and MinecraftPrimitiveWriter were created for each test bot, and memory was allocated for each new packet received from the server. Now, we actively use an object pool for reusing MinecraftPrimitiveReader and MinecraftPrimitiveWriter.
34+
35+
- Increased throughput. Bots in Play mode now separate the processes of reading data from the network and parsing packets into two threads, using the System.IO.Pipelines library. This has resulted in a 10% increase in throughput.
36+
37+
- Optimized proxy servers. QuickProxyNet now efficiently manages memory when connecting to Socks4, Socks4a, and Socks5 proxy servers.
38+
39+
### Stress Test
40+
41+
#### Default Proxies
42+
43+
Now, default proxies are used in the stress test if the user hasn't added their own proxies. This feature was added based on a [Discord poll](https://discord.com/channels/1166051202367246396/1166055869566419085/1172042445928812574).
44+
45+
#### Default Plugins
46+
47+
Previously, there was an option to create behavior for stress tests using plugins, which might have been challenging for regular users. Now, a new default plugin has been introduced, simplifying the process of launching stress tests and making it accessible to everyone. It's worth noting that the default plugin currently only runs simple bots that register on the server using /reg \<pass\> \<pass\> and immediately start spamming. The plugin's functionality will be expanded in the future.
48+
49+
#### Proxy Loading from Clipboard and URL
50+
51+
Previously, proxies could only be loaded from a file. Now, proxies can be imported in three ways: file, URL, and manual entry of the proxy list.
52+
53+
#### Proxy Disabling
54+
55+
In the main proxy settings, the option to disable the use of proxies has been added. Bots will use the user's IP.
56+
57+
#### Stress Test Process Window Design
58+
59+
The stress test process window no longer displays a graph of the number of online bots and connections per second. Instead, a logger has been added. Online bot and connections per second indicators have been moved to the top, and a peak connections per second indicator has been added.
60+
61+
### Installer
62+
63+
The program is now fully cross-platform and portable, so the ClickOnce installer on Windows is no longer supported.

ReleaseNotes/2.0.0-preview.1/Ru.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Что изменилось в Minecraft Holy Client *2.0.0-preview.1*?
2+
3+
## Основные исправления
4+
5+
Этот раздел содержит следующие подразделы:
6+
7+
- [Исправление багов](#исправление-багов)
8+
- [Производительность](#производительность)
9+
- [Стресс-тест](#стресс-тест)
10+
- [Установщик](#установщик)
11+
12+
### Исправление багов
13+
14+
#### Счетчик ботов
15+
16+
Была маленькая проблема, где в стресс-тест процессе счетчик количества ботов зашкаливал, когда как в реальности ботов было меньше или не было совсем. Теперь счетчик количества ботов онлайн показывает значение корректно.
17+
18+
#### Рестарт ботов
19+
20+
В предшествующих версиях боты могли не перезапускаться при возникновении ситуаций, таких как неудачная попытка подключения к прокси, выход ботов из сервера или внутренняя ошибка в процессе работы. В настоящее время бот корректно выполняет процесс перезапуска в таких сценариях.
21+
22+
#### Socks5 прокси
23+
24+
Раньше боты не могли подключатся к socks5 прокси из-за ошибки в реализации протокола. Сейчас боты могут подключаться к socks5 прокси.
25+
26+
### Производительность
27+
28+
29+
Производительность является важнейшим аспектом функционала Minecraft Holy Client, и каждая его особенность разрабатывается с учетом максимальной эффективности. Дополнительно, в Minecraft Holy Client внедрены следующие усовершенствования, заточенные исключительно под повышение производительности:
30+
31+
- Радикально уменьшено потребление оперативной памяти. До этого на каждый тестовый бот создавались экземпляры MinecraftPrimitiveReader и MinecraftPrimitiveWriter, а также выделялась память при получении каждого нового пакета от сервера. Теперь мы активно используем пул объектов для повторного использования MinecraftPrimitiveReader и MinecraftPrimitiveWriter.
32+
33+
- Увеличена пропускная способность. Теперь боты в режиме Play разделяют процессы чтения данных из сети и их синтаксического анализа на два потока, используя библиотеку System.IO.Pipelines. Это привело к увеличению пропускной способности на 10%.
34+
35+
- Оптимизированы прокси-сервера. QuickProxyNet теперь максимально эффективно управляет памятью при подключении к прокси-серверам Socks4, Socks4a и Socks5.
36+
37+
### Стресс-тест
38+
39+
40+
#### Прокси по умолчанию
41+
42+
Теперь в стресс-тесте используются прокси по умолчанию, если пользователь не добавил свои прокси. Эта возможность была добавлена на основе [голосования в Discord](https://discord.com/channels/1166051202367246396/1166055869566419085/1172042445928812574).
43+
44+
#### Плагины по умолчанию
45+
46+
Ранее существовала опция создания поведения для стресс-тестов с использованием плагинов, что, возможно, могло показаться сложным для обычных пользователей.
47+
Теперь в системе представлен новый плагин по умолчанию, который упрощает процесс запуска стресс-тестов и делает его доступным для всех. Но стоит отметить, что плагин по умолчанию пока всего лишь запускает простых ботов, которые регистрируются на сервер с помощью /reg \<pass\> \<pass\> и сразу начинают спамить. В будущем функционал плагина будет дополнен.
48+
49+
#### Загрузка прокси из буфера обмена и URL
50+
51+
Раньше можно было загружать прокси только из файла, теперь импортировать прокси можно тремя способами:
52+
- Файл
53+
- URL
54+
- Ручной ввод списка прокси
55+
56+
#### Отключение прокси
57+
58+
В основных настройках прокси добавлена возможность отключать использование прокси; боты будут использовать IP пользователя.
59+
60+
#### Дизайн окна со стресс-тест процессом
61+
62+
B окне со стресс-тест процессом убран график количества ботов онлайн, а также подключения в секунду. На место него поставлен логгер.
63+
Показатели ботов онлайн и подключения в секунду перенесены наверх, также добавлен показатель пиковых подключений в секунду.
64+
65+
### Установщик
66+
67+
Теперь программа стала полностью кроссплатформенной и портативной, поэтому установщик ClickOnce на Windows больше не поддерживается.

build/Build.cs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,21 @@ class Build : NukeBuild
192192
{
193193
Console.WriteLine("Version: " + MinVer.Version);
194194

195-
DotNetNuGetPush(s => s
195+
if (GitRepository.IsOnMasterBranch())
196+
{
197+
DotNetNuGetPush(s => s
196198
.SetTargetPath($"{ArtifactsDirectory}/**/*.nupkg")
197-
.SetSource("https://f.feedz.io/holyclient/holyclient/nuget/index.json")
198-
.SetApiKey(FeedzApiKey)
199-
);
199+
.SetSource("https://api.nuget.org/v3/index.json")
200+
.SetApiKey(NuGetApiKey));
201+
}
202+
else
203+
{
204+
205+
DotNetNuGetPush(s => s
206+
.SetTargetPath($"{ArtifactsDirectory}/**/*.nupkg")
207+
.SetSource("https://f.feedz.io/holyclient/holyclient/nuget/index.json")
208+
.SetApiKey(FeedzApiKey));
209+
}
200210
});
201211

202212

@@ -222,8 +232,11 @@ from runtime in Runtimes
222232
.SetProperty("DebugType", "None")
223233
.SetPublishReadyToRun(true)
224234
.EnableSelfContained()
235+
.SetAssemblyVersion(MinVer.AssemblyVersion)
236+
.SetFileVersion(MinVer.FileVersion)
237+
225238
.SetOutput(BuildDirectory)
226-
.SetFramework("net8.0")
239+
.SetFramework("net8.0")
227240
.SetRuntime(Runtime));
228241

229242

@@ -308,8 +321,4 @@ from runtime in Runtimes
308321
});
309322

310323

311-
private static async Task UploadReleaseAssetToGithub(Release release, string asset)
312-
{
313-
314-
}
315324
}

docs/CustomPlugin.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Как создать плагин для стресс-теста
2+
3+
4+
5+
Документация в разработке

docs/RunStressTest.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)