Это реализация игры Hypixel-SkyBlock в Minestom, размещенная на моем сервере discord.gg/theatlas. Эта реализация далеко не завершена и не готова к производству. Есть еще части кодовой базы, которые беспорядочны и не соответствуют надлежащей стандартной практике Minestom.
Хайпиксель СкайБлок
Воссоздание HypixelSkyBlock версий 1.8–1.21 с использованием Minestom с целью создания правильно абстрактной и масштабируемой кодовой базы.
Релизы
Релизы автоматически развертываются при отправке на страницу релизов GitHub, которую можно найти здесь. Обновления также периодически отправляются на мой сервер Discord, расположенный по адресу discord.gg/theatlas.
Javaдокументация
Javadocs можно найти здесь.
Рекомендуемые характеристики устройства
Этот проект не предназначен для использования в качестве небольшого сервера, поэтому для его запуска требуется приличное количество ресурсов. Ниже приведены минимальные требования для запуска этого сервера:
- 16 ГБ ОЗУ (4 ГБ для MongoDB, 12 ГБ для серверов и служб)
- 6 ядер (для достаточной многопоточности)
- 15 ГБ памяти
Руководство по установке
Видео, как я прохожу руководство, можно найти здесь.
- Убедитесь, что ваше устройство соответствует рекомендованным характеристикам устройства, указанным выше.
- Запустите службу MongoDB локально или удаленно. Руководство по установке можно найти здесь.
- Убедитесь, что у вас установлен
Java 21
SDK. - Запустите сервер Redis. Если вы используете Windows, вы можете запустить установщик здесь.
- Следуйте «Руководству по настройке прокси» ниже. (Обратите внимание: если вы хотите запустить взломанный сервер, вы должны установить для параметра «require-authentication» значение true в вашей конфигурации)
- Следуйте приведенному ниже «Руководству по настройке игрового сервера». (Обратите внимание: если вы хотите запустить взломанный сервер, вы должны установить для параметра «require-authentication» значение true в вашей конфигурации)
- Следуйте приведенному ниже «Руководству по настройке службы».
- Следуйте «Руководству по установке пакета ресурсов» ниже.
- Чтобы назначить себе АДМИН, войдите на сервер и выйдите из него, войдите в компас MongoDB, нажмите Minestom -> данные, найдите свой профиль и установите свой ранг на «АДМИН». Войдите в систему и вы получите это.
Руководство по настройке прокси
- Загрузите SkyBlockProxy.jar со страницы выпусков здесь.
- Загрузите прокси-сервер Velocity отсюда.
- Загрузите файл
velocity.toml
отсюда и переместите его туда, где вы хотите, чтобы работал ваш прокси-сервер. - Переместите JAR-файл прокси-сервера Velocity в эту папку и запустите прокси-сервер, используя команду
java -jar velocity-3.3.0-SNAPSHOT-400.jar
в этом каталоге. - Закройте этот прокси-сервер после создания папки
plugins
, просто нажав CTRL + C
или закрыв командную строку CMD. - Переместите ранее созданный
SkyBlockProxy.jar
в папку плагинов. - Создайте новую папку, в которой находится ваш
velocity.toml
, и назовите ее configuration
- Загрузите
resources.json
отсюда. - Переместите этот файл в только что созданную папку
configuration
. - Снова запустите прокси, используя
java -jar velocity-3.3.0-SNAPSHOT-400.jar
. Это должно быть включено, чтобы ваши игровые серверы работали.
Руководство по настройке игрового сервера
- Загрузите SkyBlockCore.jar со страницы выпусков здесь.
- Создайте папку с именем
configuration
в том же каталоге, что и файл JAR. (Обратите внимание, что это место должно располагаться не там, где находится ваш прокси) - Загрузите
resources.json
отсюда. - Переместите этот файл в только что созданную папку
configuration
. - Загрузите файлы мира для миров Хаба и Острова.
- Получите хаб Hypixel SkyBlock из загрузки, указанной выше, и поместите его в созданную вами папку конфигурации под именем
hypixel_hub
. - Получите шаблон Hypixel Island по умолчанию из загрузки выше и поместите его в созданную вами папку конфигурации под именем
hypixel_island_template
. - Там должен быть файл
forwarding.secret
, в котором находится ваш JAR-файл Velocity, возьмите его и поместите в свой resources.json
под velocity-secret
. - Запустите jar с помощью
java -jar {Insert the JAR file} ISLAND
, это создаст островной сервер, который будет подключаться к вашему работающему прокси-серверу. - Чтобы создать другие игровые серверы для других островов, просто запустите приведенную выше команду еще раз, но с другими типами островов, вы можете увидеть все возможные типы здесь.
- Загрузите
NanoLimbo-1.7-all.jar
отсюда и загрузите его файл конфигурации оттуда же. Запустите его в фоновом режиме, используя java -jar NanoLimbo-1.7-all.jar
. - Загрузите
Minestom.regions.csv
отсюда и загрузите их в коллекцию regions
созданную в вашем Mongo после запуска сервера. Как только вы это сделаете, перезагрузите сервер. - (НЕОБЯЗАТЕЛЬНО) Если вы хотите иметь души фей, скачайте
Minestom.fairysouls.csv
отсюда и загрузите их в коллекцию fairysouls
созданную в вашем Mongo, после запуска сервера. Как только вы это сделаете, перезагрузите сервер. - (НЕОБЯЗАТЕЛЬНО) Если вы хотите иметь кристаллы Hub (вы также можете просто
/addcrystal
), загрузите Minestom.crystals.csv
отсюда и загрузите их в коллекцию crystals
созданную в вашем Mongo, после запуска сервера. Как только вы это сделаете, перезагрузите сервер. - (НЕОБЯЗАТЕЛЬНО) Если вы хотите иметь песни на своем сервере, скопируйте папку
songs
отсюда и поместите ее в папку конфигурации.
Руководство по настройке сервиса
- Из-за особенностей SkyBlock может потребоваться запуск множества сервисов. Перейдите на страницу выпусков здесь и загрузите все файлы .JAR, начинающиеся с
Service
. - Переместите эти файлы JAR в тот же каталог, что и ваши игровые серверы, они будут использовать JSON конфигурации совместно со службами.
- Запустите их, используя
java -jar {Insert the JAR file}
.
Руководство по установке пакета ресурсов
- При подготовке к SkyBlock версии 1 у нас уже есть настройка системы пакетов ресурсов. Для начала загрузите
SkyBlockPacker.jar
со страницы выпусков здесь. - Загрузите папки package_textures и SkyBlockPack и переместите их туда, где находится JAR-архив упаковщика.
- Запустите JAR-файл упаковщика, используя
java -jar SkyBlockPacker.jar -v (Location of SkyBlockPack) -o (Output Directory) -t (Location of Pack Textures)
. - После завершения у вас должен появиться пакет ресурсов в указанном вами выходном каталоге. Просто примените это в Minecraft, и все будет в порядке.
Общие проблемы
redis.clients.jedis.exceptions.JedisConnectionException: Failed to connect to any host resolved for DNS name.
=> Ваш Memurai не работает.
Preview features are not enabled for... Try running with '--enable-preview'
=> попробуйте java --enable-preview -jar SkyBlockCore.jar {ServerType}
Кредиты
Благодаря:
- Всем милым людям в дискорде Minestom за то, что в одиночку передали все мои знания об этом API.
- Я и другие участники, которых можно просмотреть на этой странице Git.