Code Patterns

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

← Back to Patterns
ui

UI Registry Pattern

Singleton registry for registering UI pages with navigation bar and command shortcuts

Example Code

java
public class UIRegistry {
    private static final UIRegistry INSTANCE = new UIRegistry();
    public static UIRegistry getInstance() { return INSTANCE; }

    private List<Entry> entries = new ArrayList<>();

    public UIRegistry register(Entry entry) {
        this.entries.add(entry);
        return this;
    }

    public record Entry(
        String id,
        String displayName,
        PermissionList permission,
        Function<PlayerRef, ? extends InteractiveCustomUIPage<?>> guiSupplier,
        boolean showsInNavBar,
        String... commandShortcut
    ) {}
}