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

[Обсудим] Как модам приделывают баккит ивенты?

MrTrojan

Активный участник
Пользователь
Баллы
98
Имя в Minecraft
BlackTrojan
Как модам приделывают баккит ивенты? Есть ли где туториалы по этому?
 
Как я понял просто берешь классы из темы и кидаешь с заменой в мод нужной версии и этот модифицированный мод на сервер. Если я думаю не так закидайте камнями
 
Как модам приделывают баккит ивенты? Есть ли где туториалы по этому?
Думаю, сначала пишутся сами эвенты для баккита, которые потом вызываются из мода
Как я понял просто берешь классы из темы и кидаешь с заменой в мод нужной версии и этот модифицированный мод на сервер. Если я думаю не так закидайте камнями
Он про разработку этих самых классов.
 
Думаю, сначала пишутся сами эвенты для баккита, которые потом вызываются из мода

Он про разработку этих самых классов.
А я правельно думаю по их установке? Хоть и не по теме
 
Как модам приделывают баккит ивенты? Есть ли где туториалы по этому?
Достаточно знать основы моддинга или владеть логикой. Для каждого случая в моде подход индивидуальный(ввиду того что разработчики модов почти поголовно говнокодеры).
Инструкция по декомпиляции и сборке модов где то лежит на рб.
 
То место, где происходит установка/разрушение блока или дамажится энтити обворачивается в проверку. В проверке должно быть
if(!event.isCanceled) {
//То, что надо делать, если проверка прошла успешно
}
Но перед этим надо создать и вызвать сам эвент. Конструкторы для эвентов можно посмотреть в документации к АПИ. Но есть одна проблема: баккитовские эвенты при создании требуют баккитовские объекты мира и игрока. Значит из форжевских объектов нам надо получить баккитовские. В этом нам поможет рефлексия (объяснять долго, посмотри в ихсходниках эвентов от sirse). После этого вызываешь созданный эвент баккитовскими средставами (вроде, Bukkit.getServer().getPluginManager().callEvent(event). Ну и на конечном этапе выполняется та проверка, о которой я написал в начале. Надеюсь, максимально доступно и понятно объяснил.
 

Поделиться этой страницей

Назад
Верх