Compatibility
Minecraft: Java Edition
Platforms
Supported environments
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
This library is intended to be used along side some of my mods that require more specific events for effects. This mod adds in no items or changes the game in any way. It has no beneficial use for players unless there is another mod that requires it and utilizes the additional events.
It adds in an event called MobEffectTickEvent which provides the modder with an interface to get the percentage left of the duration of the effect, as well as the effect instance and entity should you need any of those.
// Example for 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);
}
}
It also adds in a method that is run once when the effect wears off. In my Fargo's Talismans mod, I use this to remove the attributes that are added to the player by the pedestal, rather than by running a PlayerTick method.
// Example for onEffectRemoved (In a MobEffectEndEffect extended class)
@Override
public void onEffectRemoved(LivingEntity entity, int amplifier) {
super.onEffectRemoved(entity, amplifier);
if (entity instanceof Player) {
System.out.println("Effect has worn off.");
}
}