Recoded Paginated menu api and redid all arena menus

This commit is contained in:
Luca
2021-11-23 13:33:53 +01:00
parent e11fdd3931
commit 1775f11016
8 changed files with 86 additions and 83 deletions

View File

@ -1,15 +1,16 @@
package rip.tilly.bedwars.utils.menu.buttons;
import lombok.AllArgsConstructor;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import rip.tilly.bedwars.utils.ItemBuilder;
import rip.tilly.bedwars.utils.menu.Button;
import rip.tilly.bedwars.utils.menu.Menu;
import java.util.Arrays;
@AllArgsConstructor
public class BackButton extends Button {
@ -17,19 +18,16 @@ public class BackButton extends Button {
@Override
public ItemStack getButtonItem(Player player) {
ItemStack itemStack = new ItemStack(Material.BED);
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(ChatColor.RED + "Go back");
itemStack.setItemMeta(itemMeta);
return itemStack;
return new ItemBuilder(Material.BED)
.name("&cGo Back")
.lore(Arrays.asList(" ", "&9Click to go back."))
.hideFlags()
.build();
}
@Override
public void clicked(Player player, int i, ClickType clickType, int hb) {
Button.playNeutral(player);
this.back.openMenu(player);
playNeutral(player);
}
}

View File

@ -1,15 +1,15 @@
package rip.tilly.bedwars.utils.menu.pagination;
import lombok.AllArgsConstructor;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import rip.tilly.bedwars.utils.ItemBuilder;
import rip.tilly.bedwars.utils.menu.Button;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
@AllArgsConstructor
public class JumpToPageButton extends Button {
@ -20,26 +20,27 @@ public class JumpToPageButton extends Button {
@Override
public ItemStack getButtonItem(Player player) {
ItemStack itemStack = new ItemStack(this.current ? Material.ENCHANTED_BOOK : Material.BOOK, this.page);
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(ChatColor.GREEN + "Page " + this.page);
List<String> lore = new ArrayList<>();
lore.add(" ");
if (this.current) {
itemMeta.setLore(Arrays.asList(
"",
ChatColor.GREEN + "Current page"
));
lore.add("&9Current page");
} else {
lore.add("&9Other page");
}
lore.add(" ");
itemStack.setItemMeta(itemMeta);
return itemStack;
return new ItemBuilder(Material.INK_SACK)
.name("&d&lPage: &e" + this.page)
.durability(this.current ? 10 : 8)
.lore(lore)
.hideFlags()
.build();
}
@Override
public void clicked(Player player, int i, ClickType clickType, int hb) {
this.menu.modPage(player, this.page - this.menu.getPage());
Button.playNeutral(player);
playNeutral(player);
}
}

View File

@ -1,15 +1,15 @@
package rip.tilly.bedwars.utils.menu.pagination;
import lombok.AllArgsConstructor;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import rip.tilly.bedwars.utils.ItemBuilder;
import rip.tilly.bedwars.utils.menu.Button;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
@AllArgsConstructor
public class PageButton extends Button {
@ -19,24 +19,19 @@ public class PageButton extends Button {
@Override
public ItemStack getButtonItem(Player player) {
ItemStack itemStack = new ItemStack(Material.CARPET);
ItemMeta itemMeta = itemStack.getItemMeta();
List<String> lore = new ArrayList<>();
if (this.hasNext(player)) {
itemMeta.setDisplayName(this.mod > 0 ? ChatColor.GREEN + "Next page" : ChatColor.RED + "Previous page");
} else {
itemMeta.setDisplayName(ChatColor.GRAY + (this.mod > 0 ? "Last page" : "First page"));
}
lore.add(" ");
lore.add("&9Right Click to");
lore.add("&9switch to a page.");
lore.add(" ");
itemMeta.setLore(Arrays.asList(
"",
ChatColor.GREEN + "Right click to",
ChatColor.GREEN + "jump to a page"
));
itemStack.setItemMeta(itemMeta);
return itemStack;
return new ItemBuilder(Material.CARPET)
.name(this.hasNext(player) ? (this.mod > 0 ? "&aNext Page" : "&cPrevious Page") : (this.mod > 0 ? "&7Last Page" : "&7First Page"))
.durability(this.hasNext(player) ? (this.mod > 0 ? 5 : 14) : 8)
.lore(lore)
.hideFlags()
.build();
}
@Override
@ -47,9 +42,9 @@ public class PageButton extends Button {
} else {
if (hasNext(player)) {
this.menu.modPage(player, this.mod);
Button.playNeutral(player);
playNeutral(player);
} else {
Button.playFail(player);
playFail(player);
}
}
}

View File

@ -3,8 +3,10 @@ package rip.tilly.bedwars.utils.menu.pagination;
import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import rip.tilly.bedwars.utils.CC;
import rip.tilly.bedwars.utils.ItemBuilder;
import rip.tilly.bedwars.utils.menu.Button;
import rip.tilly.bedwars.utils.menu.Menu;
import rip.tilly.bedwars.utils.menu.buttons.BackButton;
@ -19,7 +21,7 @@ public class ViewAllPagesMenu extends Menu {
@Override
public String getTitle(Player player) {
return CC.translate("&eJump to page");
return CC.translate("&eSwitch to page...");
}
@Override
@ -37,6 +39,8 @@ public class ViewAllPagesMenu extends Menu {
}
}
fillEmptySlots(buttons, new ItemBuilder(Material.STAINED_GLASS_PANE).durability(7).name(" ").build());
return buttons;
}
@ -44,4 +48,9 @@ public class ViewAllPagesMenu extends Menu {
public boolean isAutoUpdate() {
return true;
}
@Override
public int getSize() {
return 3 * 9;
}
}