Эта библиотека предназначена для использования с модами, требующими более специфичных событий для эффектов. Данный мод не добавляет предметов и не изменяет игру. Он не приносит пользы игрокам напрямую, если только не используется другим модом, требующим его и использующим дополнительные события.
Он добавляет событие MobEffectTickEvent, предоставляющее моддеру интерфейс для получения процента оставшейся длительности эффекта, экземпляра эффекта и сущности при необходимости.
// Пример использования MobEffectTickEvent
@SubscribeEvent
public static void onMobEffectTick(MobEffectTickEvent event) {
float percentageLeft = event.getPercentageLeft();
String entityName = event.getEntity().getName().getString();
String effectName = event.getEffectInstance().getEffect().value().toString();
System.out.println("Entity: " + entityName
+ " is affected by: " + effectName
+ " with " + percentageLeft + "% duration remaining.");
if (percentageLeft == 50.0f) {
System.out.println("Effect on " + entityName + " is at 50% duration for effect: " + effectName);
}
if (percentageLeft == 20.0f) {
System.out.println("Effect on " + entityName + " is at 20% duration for effect: " + effectName);
}
}
Также добавлен метод onEffectRemoved, выполняемый однократно при окончании эффекта. В моде 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("Эффект закончился.");
}
}