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
gui
UI Dropdown
Create dropdown menus in custom UI with selectable options.
Example Code
@Override
public void build(Ref<EntityStore> ref, UICommandBuilder ui, UIEventBuilder events, Store<EntityStore> store) {
ui.append("Pages/MyPage.ui");
// Create dropdown entries
List<DropdownEntryInfo> gamemodes = Arrays.stream(GameMode.values())
.map(mode -> new DropdownEntryInfo(
LocalizableString.fromString(mode.name()),
mode.name()
))
.collect(Collectors.toList());
// Set dropdown entries and current value
ui.set("#GamemodeDropdown.Entries", gamemodes);
ui.set("#GamemodeDropdown.Value", player.getGameMode().name());
// Bind value change event
events.addEventBinding(
CustomUIEventBindingType.ValueChanged,
"#GamemodeDropdown",
EventData.of("Action", "ChangeGamemode")
.append("@SelectedValue", "#GamemodeDropdown.Value"),
false
);
}
@Override
public void handleDataEvent(Ref<EntityStore> ref, Store<EntityStore> store, GuiData data) {
if ("ChangeGamemode".equals(data.action)) {
GameMode mode = GameMode.valueOf(data.selectedValue);
Player.setGameMode(ref, mode, store);
}
}
Common Mistakes
Forgetting to set .Entries before .Value. Using wrong event type for dropdowns.