diff --git a/galaxy/build.gradle.kts b/galaxy/build.gradle.kts index cf30c2f..8d5aa94 100644 --- a/galaxy/build.gradle.kts +++ b/galaxy/build.gradle.kts @@ -14,7 +14,7 @@ dependencies { compileOnly("com.gitlab.ruany:LiteBansAPI:0.6.1") // move to proxy compileOnly("org.apache.commons:commons-lang3:3.17.0") // needs an alternative, already removed from upstream api and will be removed in server compileOnly("net.luckperms:api:5.5") // Luckperms - implementation("com.alttd.inventory_gui:InventoryGUI:1.1.1-SNAPSHOT") + implementation("com.alttd.inventory_gui:InventoryGUI:1.1.2-SNAPSHOT") } tasks { diff --git a/galaxy/src/main/java/com/alttd/chat/nicknames/Nicknames.java b/galaxy/src/main/java/com/alttd/chat/nicknames/Nicknames.java index 285d394..6f368ad 100644 --- a/galaxy/src/main/java/com/alttd/chat/nicknames/Nicknames.java +++ b/galaxy/src/main/java/com/alttd/chat/nicknames/Nicknames.java @@ -116,7 +116,7 @@ public class Nicknames implements CommandExecutor, TabCompleter { sender.sendRichMessage(helpMessage(sender, HelpType.REVIEW)); return; } - NicknamesGui nicknamesGui = new NicknamesGui(); + NicknamesGui nicknamesGui = new NicknamesGui(player); ChatPlugin.getInstance().getServer().getPluginManager().registerEvents(nicknamesGui, ChatPlugin.getInstance()); nicknamesGui.openInventory(player); } diff --git a/galaxy/src/main/java/com/alttd/chat/nicknames/NicknamesGui.java b/galaxy/src/main/java/com/alttd/chat/nicknames/NicknamesGui.java index 44e1e5e..64266d9 100644 --- a/galaxy/src/main/java/com/alttd/chat/nicknames/NicknamesGui.java +++ b/galaxy/src/main/java/com/alttd/chat/nicknames/NicknamesGui.java @@ -5,6 +5,7 @@ import com.alttd.chat.config.Config; import com.alttd.chat.database.Queries; import com.alttd.chat.events.NickEvent; import com.alttd.chat.objects.Nick; +import com.alttd.chat.util.ALogger; import com.alttd.chat.util.Utility; import com.alttd.inventory_gui.click.GuiItem; import com.alttd.inventory_gui.gui.InventoryGui; @@ -37,19 +38,17 @@ public class NicknamesGui implements Listener { private final ChatPlugin plugin = ChatPlugin.getInstance(); private final InventoryGui nicknamesGui; - //Inventory is shared between GUI users so actions one person does are replicated to the other GUI's - public NicknamesGui() { + public NicknamesGui(Player player) { nicknamesGui = InventoryGui.builder() .plugin(plugin) .title(Component.text("Nicknames GUI")) .rows(6) .build(); currentPage = 1; - setItems(currentPage); + setItems(currentPage, player); } - //TODO create all pages and share those between instances so page changes don't affect others, but everything is still synchronized - public void setItems(int currentPage) { + public void setItems(int currentPage, Player player) { new BukkitRunnable() { @Override public void run() { @@ -65,8 +64,10 @@ public class NicknamesGui implements Listener { ItemStack playerSkull = createPlayerSkull(nick, Config.NICK_ITEM_LORE); nicknamesGui.getRoot().setItem(i % 27, GuiItem.clickable(playerSkull, inventoryClickEvent -> handleInventoryClick(nick, inventoryClickEvent, miniMessage, playerSkull))); + ALogger.info("Added nick " + i + " to gui: " + nick.getUuid()); i++; } else { + ALogger.info("Reached end of nicknames gui page"); hasNextPage = true; break; } @@ -77,7 +78,7 @@ public class NicknamesGui implements Listener { ItemStack itemStack = createGuiItem(Material.PAPER, "§bPrevious page", "§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)), "§aPrevious page: %previousPage%".replace("%previousPage%", String.valueOf(currentPage - 1))); - GuiItem previousPage = GuiItem.clickable(itemStack, e -> setItems(currentPage - 1)); + GuiItem previousPage = GuiItem.clickable(itemStack, e -> setItems(currentPage - 1, player)); nicknamesGui.getRoot().setItem(28, previousPage); } @@ -85,14 +86,16 @@ public class NicknamesGui implements Listener { ItemStack itemStack = createGuiItem(Material.PAPER, "§bNext page", "§aCurrent page: %page%".replace("%page%", String.valueOf(currentPage)), "§aNext page: §b%nextPage%".replace("%nextPage%", String.valueOf(currentPage + 1))); - GuiItem nextPage = GuiItem.clickable(itemStack, e -> setItems(currentPage + 1)); + GuiItem nextPage = GuiItem.clickable(itemStack, e -> setItems(currentPage + 1, player)); nicknamesGui.getRoot().setItem(36, nextPage); } + + nicknamesGui.render(player); } }.runTaskAsynchronously(ChatPlugin.getInstance()); } - private static void handleInventoryClick(Nick nick, InventoryClickEvent inventoryClickEvent, MiniMessage miniMessage, ItemStack playerSkull) { + private void handleInventoryClick(Nick nick, InventoryClickEvent inventoryClickEvent, MiniMessage miniMessage, ItemStack playerSkull) { final Player playerWhoClicked = (Player) inventoryClickEvent.getWhoClicked(); OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(nick.getUuid()); if (offlinePlayer.getName() == null) { @@ -113,7 +116,7 @@ public class NicknamesGui implements Listener { //TODO what do we do no click? } - private static void handleRightClickPlayerSkull(Nick nick, InventoryClickEvent inventoryClickEvent, OfflinePlayer offlinePlayer, Player playerWhoClicked, Component offlinePlayerName, ItemStack playerSkull) { + private void handleRightClickPlayerSkull(Nick nick, InventoryClickEvent inventoryClickEvent, OfflinePlayer offlinePlayer, Player playerWhoClicked, Component offlinePlayerName, ItemStack playerSkull) { Queries.denyNewNickname(nick.getUuid()); String newNick = nick.getNewNick(); @@ -154,6 +157,7 @@ public class NicknamesGui implements Listener { ItemStack completedNickRequestItem = createCompletedNickRequestItem(offlinePlayerName, playerSkull); inventoryClickEvent.getInventory().setItem(inventoryClickEvent.getSlot(), completedNickRequestItem); + nicknamesGui.render(playerWhoClicked); playerWhoClicked.updateInventory(); }