premium banner
A modular Forge-style event API for triggers!

Description

Triggers

forge fabric neoforge

About

Triggers is a library mod that provides a unified, modular, Forge-style event API for in-game triggers and advancement criteria. It abstracts standard Minecraft triggers (such as item enchantment, block interactions, taming animals, and earning stats) into an easy-to-use event bus. This allows developers to seamlessly listen to and handle these actions across multi-loader environments (Forge, Fabric, and NeoForge) without needing to mixin to the triggers themselves.

For Developers

Adding to your build.gradle

You can easily add Triggers to your development environment using the Modrinth Maven.

First, add the Modrinth maven to your repositories block:

repositories {
    exclusiveContent {
        forRepository { 
            maven { 
                url = "" rel="noopener nofollow" target="_blank">https://api.modrinth.com/maven" 
            } 
        }
        filter { 
            includeGroup "maven.modrinth" 
        }
    }
}

Then, add the mod as a dependency in your dependencies block:

dependencies {
    // Replace <version> with the target version of Triggers
    implementation "maven.modrinth:triggers:<version>" 
}

Example Usage

Triggers uses a custom event bus that functions similarly to Forge's event bus. You can register listeners to Triggers.EVENTS and listen for specific events.

import com.evandev.triggers.Triggers;
import com.evandev.triggers.event.events.TriggerEntityEvent;
import com.evandev.triggers.event.events.TriggerPlayerEvent;

public class MyMod {
    public static void init() {
        // Listen for when a player enchants an item
        Triggers.EVENTS.addListener(TriggerPlayerEvent.Enchant.class, event -> {
            System.out.println(event.player.getName().getString() + " enchanted " + event.item);
        });

        // Listen for when an animal is tamed
        Triggers.EVENTS.addListener(TriggerEntityEvent.TameAnimal.class, event -> {
            if (event.causedByPlayer != null) {
                System.out.println("Animal tamed by: " + event.causedByPlayer.getName().getString());
            }
        });
    }
}

License

Code license (MIT)


discord-plural github-plural