Create severale pages menu

Methods

onCloseMenu [OVERRIDE]

This event is called when player close the menu

protected abstract void onCloseMenu(Player player);
onOpenMenu [OVERRIDE]

This event is called when player open the menu

protected abstract void onOpenMenu(Player player);
onSwitchPage [OVERRIDE]

This event is called when player change page of menu

protected abstract void onSwitchPage(Player player, int page);
addItem

refreshPage

I'm inviting you to see the same doc on refreshPage in this part.

What's several page menu ?

several page menu is chest menu that allow you several pages. All pagination page logic is already set, you just have to place your items.

When you gonna give your menu size, the system will keep last 9 slot for him and you cannot place items on thoses 9 last slots.

Create your first menu

public class MySimpleMenu extends ChestPaginationMenu {
    public MySimpleMenu(JavaPlugin plugin) {
        int menuSize = 27;
        super(plugin, "My Menu Title", menuSize);
    }
    
    @Override
    protected void onCloseMenu(Player player) {
        //event when user open your menu
    }
    
    @Override
    protected void onOpenMenu(Player player) {
        //event when user close your menu
    }
    
    @Override
    protected void onSwitchPage(Player player, int page) {
        //event when user chnage page
    }
}

Now you have your menu, let's add it to menu system.

public MyPlugin extends JavaPlugin {
    GuiManager guiManager;
    
    public MyPlugin() {
    
    }
    
    private void initMyMenus() {
        MySimpleMenu simpleMenu = new MySimpleMenu(this);
        guiManager.registerMenus(simpleMenu, "MySimpleMenu");
    }
}

To init GuiManager, please refer to this documentation :

Init your plugin

Add items in menu

public class MySimpleMenu extends ChestPaginationMenu {
    public MySimpleMenu(JavaPlugin plugin) {
        ...
        GuiItem item = new GuiItem(...);
        // add item in slot 2 page 0
        addItem(item, 2, 0);
    }
    
    @Override
    protected void onOpenMenu(Player player) {
        GuiItem otherItem = new GuiItem(...);
        // place only for the player otherItem in slot 3 page 1
        addItem(player, otherItem, 3, 1);
    }
}

Last updated