Triggers
A modular Forge-style event API for triggers!
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Triggers
Triggers
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:
```gradle repositories { exclusiveContent { forRepository { maven { url = "https://api.modrinth.com/maven" } } filter { includeGroup "maven.modrinth" } } } ````
Then, add the mod as a dependency in your `dependencies` block:
```gradle 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.
```java 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
---