Skip to content

Commit

Permalink
Set all util guis to 45 element size.
Browse files Browse the repository at this point in the history
Add Glass Pane Borders to these guis.
  • Loading branch information
BONNe committed Jan 21, 2019
1 parent ce794d7 commit 6078927
Show file tree
Hide file tree
Showing 7 changed files with 243 additions and 122 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@

import java.util.function.Consumer;

import world.bentobox.bentobox.api.panels.PanelItem;
import world.bentobox.bentobox.api.panels.builders.PanelBuilder;
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.challenges.utils.GuiUtils;


/**
Expand Down Expand Up @@ -37,25 +39,62 @@ public void build()
{
PanelBuilder panelBuilder = new PanelBuilder().user(this.user).name(this.user.getTranslation("challenges.gui.admin.confirm-title"));

panelBuilder.item(3, new PanelItemBuilder().
name(this.user.getTranslation("challenges.gui.admin.buttons.proceed")).
icon(Material.GREEN_STAINED_GLASS_PANE).
clickHandler((panel, user1, clickType, index) -> {
this.consumer.accept(true);
return true;
}).
build());
GuiUtils.fillBorder(panelBuilder, Material.BLUE_STAINED_GLASS_PANE);

// Accept buttons
panelBuilder.item(10, this.getButton(true));
panelBuilder.item(11, this.getButton(true));
panelBuilder.item(12, this.getButton(true));

panelBuilder.item(19, this.getButton(true));
panelBuilder.item(20, this.getButton(true));
panelBuilder.item(21, this.getButton(true));

panelBuilder.item(28, this.getButton(true));
panelBuilder.item(29, this.getButton(true));
panelBuilder.item(30, this.getButton(true));

// Cancel Buttons
panelBuilder.item(14, this.getButton(false));
panelBuilder.item(15, this.getButton(false));
panelBuilder.item(16, this.getButton(false));

panelBuilder.item(23, this.getButton(false));
panelBuilder.item(24, this.getButton(false));
panelBuilder.item(25, this.getButton(false));

panelBuilder.item(32, this.getButton(false));
panelBuilder.item(33, this.getButton(false));
panelBuilder.item(34, this.getButton(false));

panelBuilder.item(44,
new PanelItemBuilder().
icon(Material.OAK_DOOR).
name(this.user.getTranslation("challenges.gui.buttons.return")).
clickHandler( (panel, user1, clickType, slot) -> {
this.consumer.accept(false);
return true;
}).build());

panelBuilder.item(5, new PanelItemBuilder().
name(this.user.getTranslation("challenges.gui.admin.buttons.cancel")).
icon(Material.RED_STAINED_GLASS_PANE).
panelBuilder.build();
}


/**
* This method creates button with requested value.
* @param returnValue requested value
* @return PanelItem button.
*/
private PanelItem getButton(boolean returnValue)
{
return new PanelItemBuilder().
name(this.user.getTranslation("challenges.gui.admin.buttons." + (returnValue ? "accept" : "cancel"))).
icon(returnValue ? Material.GRAY_STAINED_GLASS_PANE : Material.RED_STAINED_GLASS_PANE).
clickHandler((panel, user1, clickType, i) -> {
this.consumer.accept(false);
this.consumer.accept(returnValue);
return true;
}).
build());

panelBuilder.build();
build();
}


Expand Down
49 changes: 27 additions & 22 deletions src/main/java/world/bentobox/challenges/panel/util/NumberGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import world.bentobox.bentobox.api.panels.builders.PanelBuilder;
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.challenges.utils.GuiUtils;


/**
Expand Down Expand Up @@ -54,11 +55,15 @@ private void build()
{
PanelBuilder panelBuilder = new PanelBuilder().user(this.user).name(this.user.getTranslation("challenges.gui.edit-number-title"));

GuiUtils.fillBorder(panelBuilder);

// Others
panelBuilder.item(0, this.getButton(Button.SAVE));
panelBuilder.item(1, this.getButton(Button.VALUE));
panelBuilder.item(8, this.getButton(Button.CANCEL));
panelBuilder.item(10, this.getButton(Button.INPUT));
panelBuilder.item(1, this.getButton(Button.SAVE));

panelBuilder.item(19, this.getButton(Button.VALUE));
panelBuilder.item(44, this.getButton(Button.CANCEL));

panelBuilder.item(2, this.getButton(Button.INPUT));

// operations
panelBuilder.item(3, this.getButton(Button.SET));
Expand All @@ -67,23 +72,23 @@ private void build()
panelBuilder.item(6, this.getButton(Button.MULTIPLY));

// Numbers
panelBuilder.item(20, this.createNumberButton(1));
panelBuilder.item(21, this.createNumberButton(10));
panelBuilder.item(22, this.createNumberButton(100));
panelBuilder.item(23, this.createNumberButton(1000));
panelBuilder.item(24, this.createNumberButton(10000));

panelBuilder.item(29, this.createNumberButton(2));
panelBuilder.item(30, this.createNumberButton(20));
panelBuilder.item(31, this.createNumberButton(200));
panelBuilder.item(32, this.createNumberButton(2000));
panelBuilder.item(33, this.createNumberButton(20000));

panelBuilder.item(38, this.createNumberButton(5));
panelBuilder.item(39, this.createNumberButton(50));
panelBuilder.item(40, this.createNumberButton(500));
panelBuilder.item(41, this.createNumberButton(5000));
panelBuilder.item(42, this.createNumberButton(50000));
panelBuilder.item(11, this.createNumberButton(1));
panelBuilder.item(12, this.createNumberButton(10));
panelBuilder.item(13, this.createNumberButton(100));
panelBuilder.item(14, this.createNumberButton(1000));
panelBuilder.item(15, this.createNumberButton(10000));

panelBuilder.item(20, this.createNumberButton(2));
panelBuilder.item(21, this.createNumberButton(20));
panelBuilder.item(22, this.createNumberButton(200));
panelBuilder.item(23, this.createNumberButton(2000));
panelBuilder.item(24, this.createNumberButton(20000));

panelBuilder.item(29, this.createNumberButton(5));
panelBuilder.item(30, this.createNumberButton(50));
panelBuilder.item(31, this.createNumberButton(500));
panelBuilder.item(32, this.createNumberButton(5000));
panelBuilder.item(33, this.createNumberButton(50000));

panelBuilder.build();
}
Expand Down Expand Up @@ -120,7 +125,7 @@ private PanelItem getButton(Button button)
{
name = this.user.getTranslation("challenges.gui.buttons.cancel");
description = Collections.emptyList();
icon = new ItemStack(Material.IRON_DOOR);
icon = new ItemStack(Material.OAK_DOOR);
clickHandler = (panel, user, clickType, slot) -> {
this.consumer.accept(false, this.value);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ public void build(int pageIndex)
PanelBuilder panelBuilder = new PanelBuilder().user(this.user).
name(this.user.getTranslation("challenges.gui.admin.select-block"));

GuiUtils.fillBorder(panelBuilder, Material.BLUE_STAINED_GLASS_PANE);

final int MAX_ELEMENTS = 21;
final int correctPage;
Expand All @@ -93,7 +94,7 @@ else if (pageIndex > (this.elements.size() / MAX_ELEMENTS))
int entitiesIndex = MAX_ELEMENTS * correctPage;

// I want first row to be only for navigation and return button.
int index = 9;
int index = 10;

while (entitiesIndex < ((correctPage + 1) * MAX_ELEMENTS) &&
entitiesIndex < this.elements.size())
Expand All @@ -106,17 +107,39 @@ else if (pageIndex > (this.elements.size() / MAX_ELEMENTS))
index++;
}

// Add navigation Buttons
panelBuilder.item(3,
panelBuilder.item(4,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.previous")).
icon(Material.RED_STAINED_GLASS_PANE).
name(this.user.getTranslation("challenges.gui.buttons.cancel")).
clickHandler( (panel, user1, clickType, slot) -> {
this.build(correctPage - 1);
this.consumer.accept(false, null);
return true;
}).build());

panelBuilder.item(4,
if (this.elements.size() > MAX_ELEMENTS)
{
// Navigation buttons if necessary

panelBuilder.item(18,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.previous")).
clickHandler((panel, user1, clickType, slot) -> {
this.build(correctPage - 1);
return true;
}).build());

panelBuilder.item(26,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.next")).
clickHandler((panel, user1, clickType, slot) -> {
this.build(correctPage + 1);
return true;
}).build());
}

panelBuilder.item(44,
new PanelItemBuilder().
icon(Material.OAK_DOOR).
name(this.user.getTranslation("challenges.gui.buttons.return")).
Expand All @@ -125,15 +148,6 @@ else if (pageIndex > (this.elements.size() / MAX_ELEMENTS))
return true;
}).build());

panelBuilder.item(5,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.next")).
clickHandler( (panel, user1, clickType, slot) -> {
this.build(correctPage + 1);
return true;
}).build());

panelBuilder.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import world.bentobox.bentobox.api.panels.builders.PanelItemBuilder;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.challenges.database.object.Challenges;
import world.bentobox.challenges.utils.GuiUtils;


/**
Expand All @@ -34,8 +35,10 @@ private void build(int pageIndex)
{
PanelBuilder panelBuilder = new PanelBuilder().user(this.user).name(this.user.getTranslation("challenges.gui.choose-challenge-title"));

GuiUtils.fillBorder(panelBuilder, Material.BLUE_STAINED_GLASS_PANE);

// Maximal elements in page.
final int MAX_ELEMENTS = 36;
final int MAX_ELEMENTS = 21;

final int correctPage;

Expand All @@ -52,47 +55,64 @@ else if (pageIndex > (this.challengesList.size() / MAX_ELEMENTS))
correctPage = pageIndex;
}

// Navigation buttons

panelBuilder.item(3,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.previous")).
clickHandler( (panel, user1, clickType, slot) -> {
this.build(correctPage - 1);
return true;
}).build());

panelBuilder.item(4,
new PanelItemBuilder().
icon(Material.OAK_DOOR).
icon(Material.RED_STAINED_GLASS_PANE).
name(this.user.getTranslation("challenges.gui.buttons.return")).
clickHandler( (panel, user1, clickType, slot) -> {
this.consumer.accept(false, null);
return true;
}).build());

panelBuilder.item(5,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.next")).
clickHandler( (panel, user1, clickType, slot) -> {
this.build(correctPage + 1);
return true;
}).build());
if (this.challengesList.size() > MAX_ELEMENTS)
{
// Navigation buttons if necessary

panelBuilder.item(18,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.previous")).
clickHandler((panel, user1, clickType, slot) -> {
this.build(correctPage - 1);
return true;
}).build());

panelBuilder.item(26,
new PanelItemBuilder().
icon(Material.SIGN).
name(this.user.getTranslation("challenges.gui.buttons.next")).
clickHandler((panel, user1, clickType, slot) -> {
this.build(correctPage + 1);
return true;
}).build());
}

int challengesIndex = MAX_ELEMENTS * correctPage;

// I want first row to be only for navigation and return button.
int index = 9;
int index = 10;

while (challengesIndex < ((correctPage + 1) * MAX_ELEMENTS) &&
challengesIndex < this.challengesList.size())
challengesIndex < this.challengesList.size() &&
index < 36)
{
panelBuilder.item(index++, this.createChallengeButton(this.challengesList.get(challengesIndex++)));
if (!panelBuilder.slotOccupied(index))
{
panelBuilder.item(index,
this.createChallengeButton(this.challengesList.get(challengesIndex++)));
}

index++;
}

panelBuilder.build();
panelBuilder.item(44,
new PanelItemBuilder().
icon(Material.OAK_DOOR).
name(this.user.getTranslation("challenges.gui.buttons.return")).
clickHandler( (panel, user1, clickType, slot) -> {
this.consumer.accept(false, null);
return true;
}).build());

panelBuilder.build();
}
Expand Down

0 comments on commit 6078927

Please sign in to comment.