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

EventsLib

Активный

Установок

0

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

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

Версии

1.21 — 1.21.5
Клиент и сервер
Neoforge
Библиотеки

EventsLib

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

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

// Пример использования MobEffectTickEvent
@SubscribeEvent
public static void onMobEffectTick(MobEffectTickEvent event) {
    float remainingPercentage = event.getPercentageLeft();
    String entityName = event.getEntity().getName().getString();
    String effectName = event.getEffectInstance().getEffect().value().toString();

    System.out.println("Существо: " + entityName
            + " находится под действием: " + effectName
            + " с остатком " + remainingPercentage + "% продолжительности.");

    if (remainingPercentage == 50.0f) {
        System.out.println("Эффект на " + entityName + " достиг половины продолжительности: " + effectName);
    }
    if (remainingPercentage == 20.0f) {
        System.out.println("Эффект на " + entityName + " снизился до 20% продолжительности: " + effectName);
    }
}

Также библиотека включает метод, который активируется однократно в момент полного завершения действия эффекта. Например, в модификации Fargo's Talismans данный функционал используется для удаления атрибутов, добавленных к игроку через пьедестал, что является более эффективным решением по сравнению с постоянным отслеживанием через PlayerTick метод.

// Пример использования onEffectRemoved (в классе, расширяющем MobEffectEndEffect)
@Override
public void onEffectRemoved(LivingEntity entity, int amplifier) {
    super.onEffectRemoved(entity, amplifier);
    if (entity instanceof Player) {
        System.out.println("Действие эффекта завершилось.");
    }
}
Участники проекта
STS15

STS15

Разработчик

Создан: 22 мая 2025

ID: 65426