-
Notifications
You must be signed in to change notification settings - Fork 0
Usage Examples
virtualWinter edited this page Aug 30, 2025
·
2 revisions
Here are a few examples of how to use the menu library.
This example creates a simple menu with a list of items that spans multiple pages.
import club.catmc.utils.menu.MenuBuilder;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.List;
public class MenuExamples {
public void openSimpleMenu(Player player) {
List<ItemStack> items = new ArrayList<>();
for (int i = 1; i <= 50; i++) {
items.add(new ItemStack(Material.DIAMOND, i));
}
MenuBuilder.create("My Awesome Menu", 54)
.items(items)
.onOpen(p -> p.sendMessage("Welcome to the menu!"))
.onClose(p -> p.sendMessage("You closed the menu."))
.buildAndOpen(player);
}
}This example shows how to create a confirmation dialog with confirm and cancel actions.
import club.catmc.utils.menu.MenuBuilder;
import org.bukkit.entity.Player;
public class MenuExamples {
public void openConfirmationMenu(Player player) {
MenuBuilder.confirmation(
"Are you sure?",
p -> {
p.sendMessage("You confirmed!");
// Add your confirmation logic here
},
p -> {
p.sendMessage("You cancelled.");
// Add your cancellation logic here
}
).buildAndOpen(player);
}
}This example demonstrates how to get text input from a player using a sign.
import club.catmc.utils.menu.SignInputMenu;
import org.bukkit.entity.Player;
public class MenuExamples {
public void openSignInputMenu(Player player) {
SignInputMenu.create(
player,
new String[]{"", "^^^^^^^^^^^^^^^", "Enter your", "text here"},
lines -> {
String combined = String.join(" ", lines);
player.sendMessage("You entered: " + combined);
}
).open(player);
}
}This example demonstrates a paginated menu where each item has a specific click action.
import club.catmc.utils.menu.MenuBuilder;
import club.catmc.utils.menu.MenuItem;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class MenuExamples {
public void openAdvancedMenu(Player player) {
MenuBuilder builder = MenuBuilder.create("Advanced Menu", 36);
for (int i = 1; i <= 20; i++) {
int finalI = i;
builder.addItem(
new MenuItem(Material.EMERALD, finalI)
.name("§aItem #" + finalI)
.lore("§7Click me!")
.build(),
event -> {
Player p = (Player) event.getWhoClicked();
p.sendMessage("You clicked item #" + finalI);
p.closeInventory();
}
);
}
builder.buildAndOpen(player);
}
}This example shows how to get text input from a player using an anvil interface.
import club.catmc.utils.menu.AnvilInputMenu;
import org.bukkit.entity.Player;
public class MenuExamples {
public void openAnvilInputMenu(Player player) {
AnvilInputMenu.create(
player,
"Enter your name",
name -> {
player.sendMessage("Your name is: " + name);
},
p -> {
p.sendMessage("You cancelled the input.");
}
).open(player);
}
}© 2025 CatMC Network. This project is licensed under the ISC License.