Code Patterns

Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.

← Back to Patterns
entity

Apply Entity Effect

Apply a buff/debuff effect to an entity using EffectControllerComponent.

Example Code

java
world.execute(() -> {
    if (!ref.isValid()) return;

    EffectControllerComponent effects = store.getComponent(ref, EffectControllerComponent.getComponentType());
    if (effects == null) return;

    // Add effect with duration (seconds)
    effects.addEffect(ref, entityEffect, duration, OverlapBehavior.EXTEND, accessor);

    // Or add infinite effect
    effects.addInfiniteEffect(ref, effectIndex, entityEffect, accessor);

    // Remove effect
    effects.removeEffect(ref, effectIndex, accessor);

    // Clear all effects
    effects.clearEffects(ref, accessor);
});

Thread Safety

Must run inside world.execute() for ECS safety.

Common Mistakes

Forgetting to get the EntityEffect asset from registry. Not handling null EffectControllerComponent.