diff --git a/src/main/java/com/artillexstudios/axinventoryrestore/commands/subcommands/View.java b/src/main/java/com/artillexstudios/axinventoryrestore/commands/subcommands/View.java index f0cd7ec..a77118b 100644 --- a/src/main/java/com/artillexstudios/axinventoryrestore/commands/subcommands/View.java +++ b/src/main/java/com/artillexstudios/axinventoryrestore/commands/subcommands/View.java @@ -23,9 +23,8 @@ public void execute(Player sender, String player) { if (uuid == null) return; String name = Bukkit.getOfflinePlayer(uuid).getName(); - Scheduler.get().runAt(sender.getLocation(), t -> { - new MainGui(uuid, sender, Optional.ofNullable(name).orElse(player)).open(); - }); + Scheduler.get().runAt(sender.getLocation(), task -> + new MainGui(uuid, sender, Optional.ofNullable(name).orElse(player)).open()); }, Priority.HIGH); } diff --git a/src/main/java/com/artillexstudios/axinventoryrestore/guis/CategoryGui.java b/src/main/java/com/artillexstudios/axinventoryrestore/guis/CategoryGui.java index 8212bab..132e0eb 100644 --- a/src/main/java/com/artillexstudios/axinventoryrestore/guis/CategoryGui.java +++ b/src/main/java/com/artillexstudios/axinventoryrestore/guis/CategoryGui.java @@ -1,5 +1,6 @@ package com.artillexstudios.axinventoryrestore.guis; +import com.artillexstudios.axapi.scheduler.Scheduler; import com.artillexstudios.axapi.utils.ItemBuilder; import com.artillexstudios.axapi.utils.StringUtils; import com.artillexstudios.axinventoryrestore.backups.BackupData; @@ -61,9 +62,9 @@ public void open() { final ItemStack it = ItemBuilder.create(MESSAGES.getSection("guis.categorygui.item"), replacements).get(); it.setAmount(n); - categoryGui.addItem(new GuiItem(it, event -> { - new PreviewGui(cGui, backupData, categoryGui, categoryGui.getCurrentPageNum()).open(); - })); + categoryGui.addItem(new GuiItem(it, event -> + Scheduler.get().runAt(viewer.getLocation(), task -> + new PreviewGui(cGui, backupData, categoryGui, categoryGui.getCurrentPageNum()).open()))); n++; if (n > 64) { @@ -80,11 +81,10 @@ public void open() { categoryGui.setDefaultClickAction(event -> event.setCancelled(true)); - categoryGui.setItem(rows, 5, new GuiItem(ItemBuilder.create(MESSAGES.getSection("gui-items.back")).get(), event2 -> { - lastGui.open(viewer, pageNum); - })); + categoryGui.setItem(rows, 5, new GuiItem(ItemBuilder.create(MESSAGES.getSection("gui-items.back")).get(), event2 -> + Scheduler.get().runAt(viewer.getLocation(), task -> lastGui.open(viewer, pageNum)))); - categoryGui.open(viewer); + Scheduler.get().runAt(viewer.getLocation(), task -> categoryGui.open(viewer)); } public Player getViewer() { diff --git a/src/main/java/com/artillexstudios/axinventoryrestore/guis/MainGui.java b/src/main/java/com/artillexstudios/axinventoryrestore/guis/MainGui.java index 5e3cf96..3804040 100644 --- a/src/main/java/com/artillexstudios/axinventoryrestore/guis/MainGui.java +++ b/src/main/java/com/artillexstudios/axinventoryrestore/guis/MainGui.java @@ -72,11 +72,9 @@ public void open() { item = ItemBuilder.create(MESSAGES.getSection("categories." + saveReason), Map.of("%amount%", "" + backupDataList.size())).get(); } - mainGui.addItem(new GuiItem(item, event -> { - Scheduler.get().run(task -> { - new CategoryGui(this, backupDataList, mainGui, mainGui.getCurrentPageNum()).open(); - }); - })); + mainGui.addItem(new GuiItem(item, event -> + Scheduler.get().runAt(viewer.getLocation(), task -> + new CategoryGui(this, backupDataList, mainGui, mainGui.getCurrentPageNum()).open()))); } mainGui.update(); if (AxInventoryRestore.isDebugMode()) LogUtils.debug("Opened gui for {} in {}ms", viewer.getName(), System.currentTimeMillis() - time); @@ -89,11 +87,10 @@ public void open() { mainGui.setDefaultClickAction(event -> event.setCancelled(true)); - mainGui.setItem(rows, 5, new GuiItem(ItemBuilder.create(MESSAGES.getSection("gui-items.close")).get(), event2 -> { - mainGui.close(viewer); - })); + mainGui.setItem(rows, 5, new GuiItem(ItemBuilder.create(MESSAGES.getSection("gui-items.close")).get(), event2 -> + Scheduler.get().runAt(viewer.getLocation(), task -> mainGui.close(viewer)))); - mainGui.open(viewer); + Scheduler.get().runAt(viewer.getLocation(), task -> mainGui.open(viewer)); } public PaginatedGui getMainGui() { diff --git a/src/main/java/com/artillexstudios/axinventoryrestore/guis/PreviewGui.java b/src/main/java/com/artillexstudios/axinventoryrestore/guis/PreviewGui.java index b665fe8..8e3edd8 100644 --- a/src/main/java/com/artillexstudios/axinventoryrestore/guis/PreviewGui.java +++ b/src/main/java/com/artillexstudios/axinventoryrestore/guis/PreviewGui.java @@ -1,5 +1,6 @@ package com.artillexstudios.axinventoryrestore.guis; +import com.artillexstudios.axapi.scheduler.Scheduler; import com.artillexstudios.axapi.utils.ItemBuilder; import com.artillexstudios.axapi.utils.PaperUtils; import com.artillexstudios.axapi.utils.StringUtils; @@ -75,7 +76,7 @@ public void open() { if (discordAddon != null) starter = 45; previewGui.setItem(starter, new GuiItem(ItemBuilder.create(MESSAGES.getSection("gui-items.back")).get(), event -> { - lastGui.open(viewer, pageNum); + Scheduler.get().runAt(viewer.getLocation(), task -> lastGui.open(viewer, pageNum)); event.setCancelled(true); })); @@ -87,8 +88,9 @@ public void open() { return; } - PaperUtils.teleportAsync(viewer, backupData.getLocation()); - viewer.closeInventory(); + Scheduler.get().runAt(viewer.getLocation(), () -> + PaperUtils.teleportAsync(viewer, backupData.getLocation().clone()) + .thenRun(() -> Scheduler.get().runAt(viewer.getLocation(), viewer::closeInventory))); })); boolean isEnder = backupData.getReason().equals("ENDER_CHEST"); @@ -155,7 +157,7 @@ public void open() { previewGui.update(); }); - previewGui.open(viewer); + Scheduler.get().runAt(viewer.getLocation(), () -> previewGui.open(viewer)); if (AxInventoryRestore.isDebugMode()) LogUtils.debug("Preview gui opened for {} in {}ms", viewer.getName(), System.currentTimeMillis() - time); } }