jil
@jil
Привет всем!
Во время изучения официальной документации столкнулся с множеством проблем по неопытности. Я решил написать этот краткий, но понятный гайд по написанию первого плагина.
1) Скачайте IntelliJ Idea с официального сайта → ТЫК
2) Скачайте OpenJDK 25 → ТЫК
3) Проверьте установку, вписав команду java —version в cmd
Вывод должен выглядеть как-то так:

4) Скачайте HytaleServer.jar. Его можно найти по пути: %appdata%\Hytale\install\release\package\game\latest или скачайте через HytaleDownloader
1) Запустите IntelliJ Idea и создайте новый проект с такими настройками:

2) Дождитесь первоначальной сборки проекта Gradle
3) Создайте в корневой папке директорию libs
4) Скопируйте HytaleServer.jar в созданную ранее папку
5) Зайдите в файл build.gradle.kts и добавьте импорт HytaleServer.jar (первая строка на скриншоте)

6) перейдите в папку /src/main/resources и создайте файл manifest.json . В нем будуд храниться данные о нашем плагине.
7) Вставьте данный текст в файл{
"Group": "com.example",
"Name": "HelloPlugin",
"Version": "1.0.0",
"Main": "com.example.plugin.HelloPlugin"
}
Здесь мы указываем имя группы, имя мода, его версию и ссылку на главный класс плагина (чуть позже)
Здесь будет не особо много объяснений, я надеюсь вы разбираетесь в основах Java.
1) В /src/main/java создайте папку com.examples.plugin
2) В созданной нами папке создайте java-файл с именем HelloPlugin
В нем мы пишем это:
package com.example.plugin;
import com.hypixel.hytale.server.core.plugin.JavaPlugin;
import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
import javax.annotation.Nonnull;
public class HelloPlugin extends JavaPlugin {
public HelloPlugin(@Nonnull JavaPluginInit init) {
super(init);
}
@Override
protected void setup() {
super.setup();
this.getCommandRegistry().registerCommand(new HelloCommand("hello", "Say Hello To yourself", false));
}
}Здесь мы и создаем наш основной класс и регистрируем команду, которую мы сейчас создадим.
3) Создаем там же новый java-файл с именем HelloCommand
4) Пишем внутри это:
package com.example.plugin;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.server.core.Message;
import com.hypixel.hytale.server.core.command.system.CommandContext;
import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
import com.hypixel.hytale.server.core.universe.PlayerRef;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import com.hypixel.hytale.server.core.util.EventTitleUtil;
import javax.annotation.Nonnull;
public class HelloCommand extends AbstractPlayerCommand {
public HelloCommand(@Nonnull String name, @Nonnull String description, boolean requiresConfirmation) {
super(name, description, requiresConfirmation);
}
@Override
protected void execute(@Nonnull CommandContext commandContext,
@Nonnull Store<EntityStore> store,
@Nonnull Ref<EntityStore> ref,
@Nonnull PlayerRef playerRef,
@Nonnull World world)
{
EventTitleUtil.showEventTitleToPlayer(
playerRef,
Message.raw("Hello World!"),
Message.raw("42 6055"),
true
);
}
}
Здесь мы создаем класс команды и указываем, что она будет делать (выводить в верхней части экрана текст). Важно указать playerRef, так как команда должна работать только на вызвавшего ее человека.
1) Справа находим значок Gradle и жмем на него.
2) Запускаем билд кнопкой build

3) Через время наш плагин появится в папке /build/libs

4) Теперь достаточно перенести его в папку с модами вашего сервера.
Спасибо за внимание! Надеюсь я хоть сколько-то помог вам разобраться с созданием плагинов для серверов Hytale!