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
ui
Navigation Bar Setup
Helper for setting up navigation bar in custom UI pages with permission-filtered entries
Example Code
public class NavBarHelper {
public static void setupBar(Ref<EntityStore> ref, UICommandBuilder uiCommandBuilder,
UIEventBuilder uiEventBuilder, Store<EntityStore> store) {
var player = store.getComponent(ref, Player.getComponentType());
int index = 0;
uiCommandBuilder.appendInline("#TopNavBar #NavButtons", "Group #NavCards { LayoutMode: Left; }");
for (Entry entry : Registry.getInstance().getEntries()) {
if (!entry.permission().hasPermission(player)) continue;
uiCommandBuilder.append("#NavCards", "Pages/Nav/NavButton.ui");
uiCommandBuilder.set("#NavCards[" + index + "] #Button.Text", entry.displayName());
uiEventBuilder.addEventBinding(CustomUIEventBindingType.Activating,
"#NavCards[" + index + "] #Button", EventData.of("NavBar", entry.id()));
++index;
}
}
public static boolean handleData(Ref<EntityStore> ref, Store<EntityStore> store,
String navBarData, Runnable onCancel) {
if (navBarData == null) return false;
var entry = Registry.getInstance().getEntry(navBarData);
if (entry == null) return false;
var playerRef = store.getComponent(ref, PlayerRef.getComponentType());
var player = store.getComponent(ref, Player.getComponentType());
onCancel.run();
player.getPageManager().openCustomPage(ref, store, entry.guiSupplier().apply(playerRef));
return true;
}
}