Skip to content

Commit

Permalink
Merge pull request #44 from Titlehhhh/release/2.0.0-preview.1
Browse files Browse the repository at this point in the history
new release
  • Loading branch information
Titlehhhh authored Dec 27, 2023
2 parents f201df0 + bed90da commit 35b5d68
Show file tree
Hide file tree
Showing 32 changed files with 886 additions and 556 deletions.
7 changes: 6 additions & 1 deletion .github/workflows/continuous.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,19 @@ on:
push:
branches:
- master
- release/**
paths-ignore:
- '**/*.md'
- '**/*.gitignore'
- '**/*.gitattributes'




jobs:
Libs:
name: Build and deploy NuGet
runs-on: ubuntu-latest
runs-on: ubuntu-latest
env:
FeedzApiKey: ${{ secrets.FEEDZ_TOKEN }}
DOTNET_CLI_TELEMETRY_OPTOUT: 1
Expand Down Expand Up @@ -47,6 +49,7 @@ jobs:
run: chmod +x ./build.sh

- name: Run './build.cmd'
if: github.ref == 'refs/heads/master'
run: ./build.sh LibsPush
env:
NuGetApiKey: ${{ secrets.NUGET_API_KEY }}
Expand Down Expand Up @@ -108,6 +111,7 @@ jobs:
name: "CreateRelease"
needs: [build-desktop-app]
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
Expand Down Expand Up @@ -137,6 +141,7 @@ jobs:
run: chmod +x ./build.sh

- name: Run './build.cmd'
if: github.ref == 'refs/heads/master'
run: ./build.sh CreateRelease
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
1 change: 1 addition & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
<PrivateAssets>all</PrivateAssets>
<Version>3.6.133</Version>
</PackageReference>

</ItemGroup>
</Project>
39 changes: 21 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,34 @@

# Minecraft Holy Client

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

## Основные функции
## Get Started

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

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

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

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

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


## Screenshots

### Home
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/9ea99c5f-423e-4320-a0e2-a8046abe01cf)

### Bot manager (beta)
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/89b32d18-066b-4f25-96c7-61f567aa7728)

### Stress test
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/23df982b-8f20-44a5-9197-82b43c9d8dfd)
Нажимаем на зеленую кнопку видим, что боты зашли на сервер и спамят "Hello from Minecraft Holy Client"
![image](https://github.com/Titlehhhh/Minecraft-Holy-Client/assets/93156853/51c89585-1fd5-4351-9677-a59322ececd7)


## Roadmap
Expand Down
63 changes: 63 additions & 0 deletions ReleaseNotes/2.0.0-preview.1/En.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
> [!WARNING]
> Disclaimer: This translation was generated using AI.
# What's New in Minecraft Holy Client *2.0.0-preview.1*?

## Major Fixes

This section includes the following subsections:

- [Bug Fixes](#bug-fixes)
- [Performance](#performance)
- [Stress Test](#stress-test)
- [Installer](#installer)

### Bug Fixes

#### Bot Counter

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.

#### Bot Restarts

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.

#### Socks5 Proxy

Previously, bots were unable to connect to socks5 proxies due to a protocol implementation error. Bots can now successfully connect to socks5 proxies.

### Performance

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:

- 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.

- 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.

- Optimized proxy servers. QuickProxyNet now efficiently manages memory when connecting to Socks4, Socks4a, and Socks5 proxy servers.

### Stress Test

#### Default Proxies

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).

#### Default Plugins

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.

#### Proxy Loading from Clipboard and URL

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.

#### Proxy Disabling

In the main proxy settings, the option to disable the use of proxies has been added. Bots will use the user's IP.

#### Stress Test Process Window Design

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.

### Installer

The program is now fully cross-platform and portable, so the ClickOnce installer on Windows is no longer supported.
67 changes: 67 additions & 0 deletions ReleaseNotes/2.0.0-preview.1/Ru.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Что изменилось в Minecraft Holy Client *2.0.0-preview.1*?

## Основные исправления

Этот раздел содержит следующие подразделы:

- [Исправление багов](#исправление-багов)
- [Производительность](#производительность)
- [Стресс-тест](#стресс-тест)
- [Установщик](#установщик)

### Исправление багов

#### Счетчик ботов

Была маленькая проблема, где в стресс-тест процессе счетчик количества ботов зашкаливал, когда как в реальности ботов было меньше или не было совсем. Теперь счетчик количества ботов онлайн показывает значение корректно.

#### Рестарт ботов

В предшествующих версиях боты могли не перезапускаться при возникновении ситуаций, таких как неудачная попытка подключения к прокси, выход ботов из сервера или внутренняя ошибка в процессе работы. В настоящее время бот корректно выполняет процесс перезапуска в таких сценариях.

#### Socks5 прокси

Раньше боты не могли подключатся к socks5 прокси из-за ошибки в реализации протокола. Сейчас боты могут подключаться к socks5 прокси.

### Производительность


Производительность является важнейшим аспектом функционала Minecraft Holy Client, и каждая его особенность разрабатывается с учетом максимальной эффективности. Дополнительно, в Minecraft Holy Client внедрены следующие усовершенствования, заточенные исключительно под повышение производительности:

- Радикально уменьшено потребление оперативной памяти. До этого на каждый тестовый бот создавались экземпляры MinecraftPrimitiveReader и MinecraftPrimitiveWriter, а также выделялась память при получении каждого нового пакета от сервера. Теперь мы активно используем пул объектов для повторного использования MinecraftPrimitiveReader и MinecraftPrimitiveWriter.

- Увеличена пропускная способность. Теперь боты в режиме Play разделяют процессы чтения данных из сети и их синтаксического анализа на два потока, используя библиотеку System.IO.Pipelines. Это привело к увеличению пропускной способности на 10%.

- Оптимизированы прокси-сервера. QuickProxyNet теперь максимально эффективно управляет памятью при подключении к прокси-серверам Socks4, Socks4a и Socks5.

### Стресс-тест


#### Прокси по умолчанию

Теперь в стресс-тесте используются прокси по умолчанию, если пользователь не добавил свои прокси. Эта возможность была добавлена на основе [голосования в Discord](https://discord.com/channels/1166051202367246396/1166055869566419085/1172042445928812574).

#### Плагины по умолчанию

Ранее существовала опция создания поведения для стресс-тестов с использованием плагинов, что, возможно, могло показаться сложным для обычных пользователей.
Теперь в системе представлен новый плагин по умолчанию, который упрощает процесс запуска стресс-тестов и делает его доступным для всех. Но стоит отметить, что плагин по умолчанию пока всего лишь запускает простых ботов, которые регистрируются на сервер с помощью /reg \<pass\> \<pass\> и сразу начинают спамить. В будущем функционал плагина будет дополнен.

#### Загрузка прокси из буфера обмена и URL

Раньше можно было загружать прокси только из файла, теперь импортировать прокси можно тремя способами:
- Файл
- URL
- Ручной ввод списка прокси

#### Отключение прокси

В основных настройках прокси добавлена возможность отключать использование прокси; боты будут использовать IP пользователя.

#### Дизайн окна со стресс-тест процессом

B окне со стресс-тест процессом убран график количества ботов онлайн, а также подключения в секунду. На место него поставлен логгер.
Показатели ботов онлайн и подключения в секунду перенесены наверх, также добавлен показатель пиковых подключений в секунду.

### Установщик

Теперь программа стала полностью кроссплатформенной и портативной, поэтому установщик ClickOnce на Windows больше не поддерживается.
27 changes: 18 additions & 9 deletions build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -192,11 +192,21 @@ class Build : NukeBuild
{
Console.WriteLine("Version: " + MinVer.Version);

DotNetNuGetPush(s => s
if (GitRepository.IsOnMasterBranch())
{
DotNetNuGetPush(s => s
.SetTargetPath($"{ArtifactsDirectory}/**/*.nupkg")
.SetSource("https://f.feedz.io/holyclient/holyclient/nuget/index.json")
.SetApiKey(FeedzApiKey)
);
.SetSource("https://api.nuget.org/v3/index.json")
.SetApiKey(NuGetApiKey));
}
else
{

DotNetNuGetPush(s => s
.SetTargetPath($"{ArtifactsDirectory}/**/*.nupkg")
.SetSource("https://f.feedz.io/holyclient/holyclient/nuget/index.json")
.SetApiKey(FeedzApiKey));
}
});


Expand All @@ -222,8 +232,11 @@ from runtime in Runtimes
.SetProperty("DebugType", "None")
.SetPublishReadyToRun(true)
.EnableSelfContained()
.SetAssemblyVersion(MinVer.AssemblyVersion)
.SetFileVersion(MinVer.FileVersion)

.SetOutput(BuildDirectory)
.SetFramework("net8.0")
.SetFramework("net8.0")
.SetRuntime(Runtime));


Expand Down Expand Up @@ -308,8 +321,4 @@ from runtime in Runtimes
});


private static async Task UploadReleaseAssetToGithub(Release release, string asset)
{

}
}
5 changes: 5 additions & 0 deletions docs/CustomPlugin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Как создать плагин для стресс-теста



Документация в разработке
24 changes: 0 additions & 24 deletions docs/RunStressTest.md

This file was deleted.

Loading

0 comments on commit 35b5d68

Please sign in to comment.