Скачать HookLib — Minecraft Моды — MetaMods

HookLib

Активный

Установок

0

Последнее обновление

6 месяцев назад

Версии

1.12.2
Клиент
Forge
Библиотеки
Утилиты

HookLib

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

Основные возможности

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

Как работают хуки

Когда возникает необходимость изменить определенный участок кода (будь то код Minecraft или другого мода), можно использовать следующий подход:

@HookContainer
public class MyHooks {
    @Hook
    @OnBegin
    public static void resize(Minecraft mc, int x, int y) {
        System.out.println("Изменение размера, x=" + x + ", y=" + y);
    }
}

HookLib автоматически найдет метод с именем resize, принимающий два аргумента типа int в классе Minecraft, и добавит вызов MyHooks#resize в начало целевого метода. В результате в консоли будет появляться сообщение при каждом изменении размера окна.

Начало работы

Добавление зависимости

В файл build.gradle необходимо добавить:

repositories {
    maven {
        url "https://cursemaven.com"
    }
}
dependencies {
    implementation "curse.maven:hooklib:12345"
}

Настройка VM параметра

Добавьте VM опцию: -Dfml.coreMods.load=gloomyfolken.hooklib.minecraft.MainHookLoader

Альтернативно, через Gradle:

minecraft {
    mappings channel: 'snapshot', version: '20171003-1.12'

    runs {
        client {
            workingDirectory project.file('run')
            property "fml.coreMods.load", "gloomyfolken.hooklib.minecraft.MainHookLoader"
        }

        server {
            workingDirectory project.file('run')
            property "fml.coreMods.load", "gloomyfolken.hooklib.minecraft.MainHookLoader"
        }
    }
}

После внесения изменений выполните обновление Gradle в вашей IDE.

Дальнейшее изучение

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

Планы развития

  • [x] Создание HookLib как загрузчика кор-модов
  • [x] Точка внедрения при вызове метода
  • [x] Возможность вывода доступных аргументов @LocalVariable
  • [x] Точка внедрения на уровне выражений
  • [x] Доступ к приватным переменным
  • [ ] Портируемость на новые версии Minecraft
  • [ ] Аннотационный процессор для проверки на этапе компиляции
  • [ ] Конфигурации для кор-модов
  • [ ] Кэширование целевых классов с примененными хуками
Участники проекта
hohserg

hohserg

Разработчик

hohserg1

hohserg1

Создан: 26 ноя 2024

ID: 37534