HaydenAPI avatar

HaydenAPI [1.21.1]

HaydenAPI


Простая, но мощная библиотека API для собственных нужд при разработке модов для Minecraft.

Текущие возможности

  • API конфигурации. Кроссплатформенная система конфигурации, совместимая с экосистемами Spigot/Paper, Fabric и NeoForge.

Планируемые возможности

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

Для пользователей

Данный API необходим для некоторых моих будущих модов, что позволит упростить их обновление при смене версии игры. Поместите файл .jar в папку mods или plugins, и всё будет готово к работе!

Для разработчиков

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

API конфигурации

HaydenAPI предлагает систему конфигурации, управляемую аннотациями, с удобными для использования аннотациями.

Для определения класса конфигурации необходимо указать аннотацию @Config перед объявлением класса. Когда класс помечен этой аннотацией, он будет распознан автоматически.

Определите необходимые переменные в классе с соответствующими типами. Чтобы превратить переменную в запись конфигурации, следует использовать аннотацию @Entry.

Переменную также можно пометить аннотацией @Comment(String comment) для добавления комментария. Если требуется переменная, значение которой необходимо перезагружать каждый раз при изменении пользователем без перезапуска игры или сервера, пометьте переменную аннотацией @Reloadable.

Пример:

@Config
public class Configuration {
    @Entry
    @Comment("Какое сообщение следует показывать при каждом входе игрока?")
    public static String welcomeMessage = "Welcome to the server!";

    @Entry
    @Reloadable
    @Comment("Какое сообщение дня следует показывать при каждом входе игрока?")
    public static String messageOfTheDay = "Today is a cool day! :)";
}

Чтобы использовать значение записи из конфигурации, обращайтесь с ней как с обычной переменной; API обработает изменения.

Пример: (Fabric)

    public static void onPlayerJoin() {
        ServerPlayConnectionEvents.JOIN.register((ServerPlayNetworkHandler player, PacketSender packetSender, MinecraftServer server) -> {
            if (player.player != null) {
                player.player.sendMessage(Text.of(Configuration.welcomeMessage), false);
            }
        });
    }

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

ConfigurationAPI#createConfig(String path, Class<T> configClass) - создаёт (если не существует) файл конфигурации по указанному пути (включая имя файла), структура которого определяется классом с аннотацией @Config.

ConfigurationAPI#saveConfig(String path, Class<T> configClass) - сохраняет и перезагружает значения записей, если они были изменены в вашем коде, а также проверяет данные на соответствие структуре файла конфигурации, предоставляемой классом.

ConfigurationAPI#reloadConfig(String path, Class<T> configClass) - перезагружает конфигурацию из файловой системы и проверяет данные на соответствие структуре файла конфигурации, предоставляемой классом.

Пример:

    public static void init() {
        try {
            ConfigurationAPI.createConfig(".\config\welcomeMessage.json5", Configuration.class);
            ConfigurationAPI.reloadConfig(".\config\welcomeMessage.json5", Configuration.class);
        } catch (ConfigurationException e) {
            // Здесь можно обработать ошибки валидации или другие проблемы с файлом конфигурации и использовать значения по умолчанию при необходимости.
            e.printStackTrace();
        }
    }

Настройка зависимости

В вашем build.gradle необходимо объявить Maven-репозиторий HaydenAPI (или CurseMaven, если предпочитаете) и использовать обработчик зависимостей modImplementation для загрузки библиотеки в среду разработки.

repositories {
    maven {
        name = 'BehindTheScenery Team Maven'
        url = 'https://maven.behindthescenery.online/repository/maven-public/'
    }
}

dependencies {
    modImplementation "dev.denismasterherobrine:haydenapi-${rootProject.modloader}:${rootProject.haydenapi_version}@jar"
}

И в gradle.properties:

modloader = fabric
haydenapi_version = 1.0.2

Примечание: значение fabric (среда разработки Fabric/Quilt) можно изменить на neoforge (среда разработки NeoForge) или common (среда разработки Paper/Spigot)) для указания требуемой версии HaydenAPI.

Скачать HaydenAPI

 
Тип Скачать Версия Загрузчик Обновлено Размер
Release[1.21.1] HaydenAPI v1.0.31.21+1 Fabric14 марта 20252,2 МБ
Release[1.21.1] HaydenAPI v1.0.31.21+1 NeoForge14 марта 20252,2 МБ
Release[1.21.1] HaydenAPI v1.0.41.21+1 Fabric14 марта 20252,2 МБ
Release[1.21.1] HaydenAPI v1.0.41.21+1 NeoForge14 марта 20252,4 МБ
Пожалуйста авторизуйтесь, чтобы оставить свой комментарий.