Code Patterns

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

← Back to Patterns
ecs

Marker Component

Create marker components (boolean flags) using singleton pattern for entities without data.

Example Code

java
public class PoisonedComponent implements Component<EntityStore> {
    // Singleton instance - no data needed
    public static final PoisonedComponent INSTANCE = new PoisonedComponent();

    // Private constructor prevents external instantiation
    private PoisonedComponent() {}

    @Override
    public PoisonedComponent clone() {
        return INSTANCE;  // Same instance is fine for markers
    }
}

// Usage:
// Add marker
store.addComponent(ref, PoisonedComponent.getComponentType(), PoisonedComponent.INSTANCE);

// Check if entity has marker
boolean isPoisoned = store.getComponent(ref, PoisonedComponent.getComponentType()) != null;

// Remove marker
store.removeComponent(ref, PoisonedComponent.getComponentType());