Skip to content

Commit 2766c69

Browse files
Changes
1 parent 399091b commit 2766c69

File tree

1 file changed

+32
-27
lines changed

1 file changed

+32
-27
lines changed

src/main/java/me/flame/menus/menu/PaginatedMenu.java

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public final class PaginatedMenu extends BaseMenu<PaginatedMenu> {
3737

3838
private static final BukkitScheduler sch = Bukkit.getScheduler();
3939

40-
public PaginatedMenu updateTitle(String title) {
40+
PaginatedMenu updateTitle(String title, Inventory inventory) {
4141
String colorizedTitle = translateAlternateColorCodes('&', title);
4242
Inventory updatedInventory = type == MenuType.CHEST
4343
? Bukkit.createInventory(this, size, colorizedTitle)
@@ -52,6 +52,10 @@ public PaginatedMenu updateTitle(String title) {
5252
return this;
5353
}
5454

55+
public PaginatedMenu updateTitle(String title) {
56+
return this.updateTitle(title, getInventory());
57+
}
58+
5559
public <T extends Decorator> T getPageDecorator(Class<T> pageClass) {
5660
return pageClass.cast(pageDecorator);
5761
}
@@ -64,16 +68,6 @@ public void addPage() {
6468
pageList.add(Page.of(this));
6569
}
6670

67-
@Override
68-
public PaginatedMenu update() {
69-
this.updating = true;
70-
this.recreateItems();
71-
List<HumanEntity> entities = ImmutableList.copyOf(inventory.getViewers());
72-
entities.forEach(e -> ((Player) e).updateInventory());
73-
this.updating = false;
74-
return this;
75-
}
76-
7771
/**
7872
* Main constructor to provide a way to create PaginatedMenu
7973
*
@@ -123,6 +117,20 @@ public static PaginatedMenu create(String title, int rows, int pages, EnumSet<Mo
123117
public static PaginatedMenu create(String title, MenuType type, int pages, EnumSet<Modifier> modifiers) {
124118
return new PaginatedMenu(type, pages, title, modifiers);
125119
}
120+
121+
PaginatedMenu update(Inventory inventory) {
122+
this.updating = true;
123+
recreateItems(inventory);
124+
List<HumanEntity> entities = new ArrayList<>(inventory.getViewers());
125+
entities.forEach(e -> ((Player) e).updateInventory());
126+
this.updating = false;
127+
return this;
128+
}
129+
130+
@Override
131+
public PaginatedMenu update() {
132+
return this.update(getInventory());
133+
}
126134

127135
/**
128136
* Sets the next page item for the given slot with the provided item stack.
@@ -267,25 +275,23 @@ public void updateItem(@NotNull Slot slot, @NotNull final MenuItem item) {
267275
}
268276

269277
@Override
270-
public PaginatedMenu removeItems(@NotNull final MenuItem... item) {
271-
currentPage.removeItem(item);
272-
return this;
273-
}
274-
275-
@Override
276-
public PaginatedMenu removeItems(@NotNull final ItemStack... item) {
278+
public PaginatedMenu removeItem(@NotNull final MenuItem... item) {
277279
currentPage.removeItem(item);
278280
return this;
279281
}
280282

283+
/**
284+
* @param itemStacks the items to remove
285+
* @return the object for chaining
286+
*/
281287
@Override
282-
public PaginatedMenu removeItem(@NotNull final ItemStack item) {
283-
currentPage.removeItem(item);
288+
public PaginatedMenu removeItem(@NotNull List<MenuItem> itemStacks) {
289+
currentPage.removeItem(itemStacks.toArray(new MenuItem[0]));
284290
return this;
285291
}
286292

287293
@Override
288-
public PaginatedMenu removeItem(@NotNull final MenuItem item) {
294+
public PaginatedMenu removeItem(@NotNull final ItemStack... item) {
289295
currentPage.removeItem(item);
290296
return this;
291297
}
@@ -378,7 +384,7 @@ public void open(@NotNull final HumanEntity player, final int openPage) {
378384
this.pageNum = openPage;
379385
this.currentPage = pageList.get(openPage);
380386

381-
recreateItems();
387+
update();
382388
player.openInventory(inventory);
383389
}
384390

@@ -411,8 +417,7 @@ public int getPagesSize() {
411417
return pageList.size();
412418
}
413419

414-
@Override
415-
protected void recreateItems() {
420+
protected void recreateItems(Inventory inventory) {
416421
final int endIndex = currentPage.size();
417422

418423
for (int i = 0; i < endIndex; i++) {
@@ -432,7 +437,7 @@ public boolean next() {
432437
pageNum++;
433438
this.currentPage = pageList.get(pageNum);
434439

435-
recreateItems();
440+
update();
436441
return true;
437442
}
438443

@@ -447,7 +452,7 @@ public boolean previous() {
447452
pageNum--;
448453
this.currentPage = pageList.get(pageNum);
449454

450-
recreateItems();
455+
update();
451456
return true;
452457
}
453458

@@ -462,7 +467,7 @@ public boolean page(int pageNum) {
462467
this.pageNum = pageNum;
463468
this.currentPage = pageList.get(pageNum);
464469

465-
recreateItems();
470+
update();
466471
return true;
467472
}
468473

0 commit comments

Comments
 (0)