Code Patterns
Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.
All
225
Command
60
Damage
2
Ecs
27
Entity
5
Gui
75
Interaction
2
Inventory
4
Moderation
3
Permission
2
Player
9
Plugin
4
Storage
2
Teleport
3
Ui
22
Util
5
← Back to Patterns
java
ecs
ECS Event Handler
Handle ECS events like crafting, block breaking, damage using EntityEventSystem.
Example Code
public class CancelFibreCraft extends EntityEventSystem<EntityStore, CraftRecipeEvent.Pre> {
public CancelFibreCraft() {
super(CraftRecipeEvent.Pre.class);
}
@Override
public void handle(int index,
@NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk,
@NonNullDecl Store<EntityStore> store,
@NonNullDecl CommandBuffer<EntityStore> commandBuffer,
@NonNullDecl CraftRecipeEvent.Pre event) {
CraftingRecipe recipe = event.getCraftedRecipe();
if (recipe.getInput() != null) {
for (MaterialQuantity mq : recipe.getInput()) {
if (Objects.equals(mq.getItemId(), "Ingredient_Fibre")) {
event.setCancelled(true);
break;
}
}
}
}
@Override
public Query<EntityStore> getQuery() {
return Archetype.empty();
}
}
// Register in setup():
getEntityStoreRegistry().registerSystem(new CancelFibreCraft());
Thread Safety
ECS events run on world thread.
Common Mistakes
Using registerGlobal instead of registerSystem for ECS events. Forgetting getQuery() implementation.