mirror of
https://github.com/BentoBoxWorld/Challenges.git
synced 2025-01-06 16:27:58 +01:00
Create common buttons in CommonGUI panel.
This commit is contained in:
parent
6a5ec144d1
commit
594fa0f27f
@ -3,6 +3,10 @@ package world.bentobox.challenges.panel;
|
|||||||
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import world.bentobox.bentobox.api.panels.PanelItem;
|
import world.bentobox.bentobox.api.panels.PanelItem;
|
||||||
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
|
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
|
||||||
@ -66,6 +70,17 @@ public abstract class CommonGUI
|
|||||||
protected PanelItem returnButton;
|
protected PanelItem returnButton;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This enum contains buttons that is offten used in multiple GUIs.
|
||||||
|
*/
|
||||||
|
protected enum CommonButtons
|
||||||
|
{
|
||||||
|
NEXT,
|
||||||
|
PREVIOUS,
|
||||||
|
RETURN
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
// Section: Constants
|
// Section: Constants
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
@ -155,8 +170,6 @@ public abstract class CommonGUI
|
|||||||
this.parentGUI.build();
|
this.parentGUI.build();
|
||||||
return true;
|
return true;
|
||||||
}).build();
|
}).build();
|
||||||
|
|
||||||
this.build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -169,5 +182,55 @@ public abstract class CommonGUI
|
|||||||
* This method builds all necessary elements in GUI panel.
|
* This method builds all necessary elements in GUI panel.
|
||||||
*/
|
*/
|
||||||
public abstract void build();
|
public abstract void build();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns PanelItem that represents given Button.
|
||||||
|
* @param button Button that must be returned.
|
||||||
|
* @return PanelItem with requested functionality.
|
||||||
|
*/
|
||||||
|
protected PanelItem getButton(CommonButtons button)
|
||||||
|
{
|
||||||
|
ItemStack icon;
|
||||||
|
String name;
|
||||||
|
List<String> description;
|
||||||
|
PanelItem.ClickHandler clickHandler;
|
||||||
|
|
||||||
|
switch (button)
|
||||||
|
{
|
||||||
|
case NEXT:
|
||||||
|
{
|
||||||
|
name = this.user.getTranslation("challenges.gui.buttons.next");
|
||||||
|
description = Collections.emptyList();
|
||||||
|
icon = new ItemStack(Material.SIGN);
|
||||||
|
clickHandler = (panel, user, clickType, slot) -> {
|
||||||
|
this.pageIndex++;
|
||||||
|
this.build();
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case PREVIOUS:
|
||||||
|
{
|
||||||
|
name = this.user.getTranslation("challenges.gui.buttons.previous");
|
||||||
|
description = Collections.emptyList();
|
||||||
|
icon = new ItemStack(Material.SIGN);
|
||||||
|
clickHandler = (panel, user, clickType, slot) -> {
|
||||||
|
this.pageIndex--;
|
||||||
|
this.build();
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RETURN:
|
||||||
|
return this.returnButton;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new PanelItem(icon, name, description, false, clickHandler, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user