From 013d2defd039a7905977cf5bea08a52450052264 Mon Sep 17 00:00:00 2001 From: mallusrgreatv2 Date: Fri, 20 Feb 2026 20:31:16 +0530 Subject: [PATCH 1/2] Improve duel menus - Add receiver player name to menu titles - Skip round select if there is only 1 entry --- .../lrxh/neptune/configs/impl/MenusLocale.java | 6 +++--- .../feature/hotbar/impl/ItemAction.java | 3 +-- .../dev/lrxh/neptune/feature/party/Party.java | 18 +++++++++++------- .../menu/buttons/events/PartyDuelButton.java | 4 ++-- .../neptune/game/duel/command/DuelCommand.java | 2 +- .../game/duel/menu/ArenaSelectMenu.java | 7 +++---- .../game/duel/menu/KitSelectButton.java | 11 ++++++----- .../neptune/game/duel/menu/KitSelectMenu.java | 7 +++---- .../game/duel/menu/RoundSelectButton.java | 6 ++---- .../game/duel/menu/RoundsSelectMenu.java | 7 +++---- 10 files changed, 35 insertions(+), 36 deletions(-) diff --git a/Plugin/src/main/java/dev/lrxh/neptune/configs/impl/MenusLocale.java b/Plugin/src/main/java/dev/lrxh/neptune/configs/impl/MenusLocale.java index 03ce485e..71c6db29 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/configs/impl/MenusLocale.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/configs/impl/MenusLocale.java @@ -82,14 +82,14 @@ public enum MenusLocale implements IDataAccessor { "&fKit: &b", "", "&a&lClick to watch match!"), - DUEL_TITLE("DUEL.TITLE", DataType.STRING, "&7Select Kit"), + DUEL_TITLE("DUEL.TITLE", DataType.STRING, "Select Kit | "), DUEL_SIZE("DUEL.SIZE", DataType.INT, "36"), DUEL_FILTER("DUEL.FILTER-TYPE", "FILL, BORDER, NONE", DataType.STRING, "FILL"), DUEL_ITEM_NAME("DUEL.ITEM.NAME", DataType.STRING, "&b"), DUEL_LORE("DUEL.LORE", DataType.STRING_LIST, "", "&a&lClick to select kit!"), - ROUNDS_TITLE("ROUNDS.TITLE", DataType.STRING, "&7Select Rounds amount"), + ROUNDS_TITLE("ROUNDS.TITLE", DataType.STRING, "Select Rounds Amount | "), ROUNDS_SIZE("ROUNDS.SIZE", DataType.INT, "27"), ROUNDS_STARTING_SLOT("DUEL.STARTING-SLOT", DataType.INT, "10"), ROUNDS_FILTER("ROUNDS.FILTER-TYPE", "FILL, BORDER, NONE", DataType.STRING, "FILL"), @@ -100,7 +100,7 @@ public enum MenusLocale implements IDataAccessor { "&a&lClick to select rounds amount!"), ROUNDS_LIST("ROUNDS.AMOUNT", "Change the amount of rounds available", DataType.STRING, "1, 3, 5, 6, 10, 15, 20"), - ARENA_TITLE("ARENA.TITLE", DataType.STRING, "Select an arena"), + ARENA_TITLE("ARENA.TITLE", DataType.STRING, "Select Arena | "), ARENA_FILTER("ARENA.FILTER-TYPE", DataType.STRING, "FILL"), ARENA_SIZE("ARENA.SIZE", DataType.INT, "27"), ARENA_LIST_STARTING_SLOT("ARENA.LIST.STARTING-SLOT", DataType.INT, "1"), diff --git a/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java b/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java index 6adba76d..37a6381b 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java @@ -23,7 +23,6 @@ import dev.lrxh.neptune.game.match.menu.MatchSpectateTeleportMenu; import dev.lrxh.neptune.profile.data.ProfileState; import dev.lrxh.neptune.profile.impl.Profile; -import dev.lrxh.neptune.utils.CC; import dev.lrxh.neptune.utils.PlayerUtil; import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; @@ -95,7 +94,7 @@ public void execute(Player player) { } Party party = profile.getGameData().getParty(); MessagesLocale.PARTY_INFO.send(player.getUniqueId(), TagResolver.resolver( - Placeholder.unparsed("leader", party.getLeaderName()), + Placeholder.unparsed("leader", party.getLeaderPlayer().getName()), Placeholder.unparsed("privacy", party.isOpen() ? MessagesLocale.PARTY_PRIVACY_OPEN.getString() : MessagesLocale.PARTY_PRIVACY_CLOSED.getString()), Placeholder.unparsed("max", String.valueOf(party.getMaxUsers())), Placeholder.unparsed("members", party.getUserNames()), diff --git a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java index 1861ce30..131c7355 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java @@ -43,13 +43,17 @@ public Party(UUID leader, int max, Neptune plugin) { setupPlayer(leader, false); } - public String getLeaderName() { + public Player getLeaderPlayer() { Player player = Bukkit.getPlayer(leader); if (player == null) { users.remove(leader); - return ""; + return null; } - + return player; + } + public String getLeaderName() { + Player player = getLeaderPlayer(); + if (player == null) return ""; return player.getName(); } @@ -64,7 +68,7 @@ public void invite(UUID playerUUID) { MessagesLocale.PARTY_INVITATION.send(playerUUID, TagResolver.resolver( TagResolver.resolver("accept", Tag.styling(ClickEvent.runCommand("/party accept " + getLeader()))), - Placeholder.unparsed("leader", getLeaderName()), + Placeholder.unparsed("leader", getLeaderPlayer().getName()), Placeholder.unparsed("party-max", String.valueOf(getMaxUsers())), Placeholder.unparsed("party-size", String.valueOf(getUsers().size())) )); @@ -95,7 +99,7 @@ private void setupPlayer(UUID playerUUID, boolean ad) { } public void kick(UUID playerUUID) { - broadcast(MessagesLocale.PARTY_KICK, Placeholder.unparsed("player", getLeaderName())); + broadcast(MessagesLocale.PARTY_KICK, Placeholder.unparsed("player", getLeaderPlayer().getName())); remove(playerUUID); } @@ -175,8 +179,8 @@ public boolean advertise() { setOpen(true); for (Profile profile : ProfileService.get().profiles.values()) { MessagesLocale.PARTY_ADVERTISE_MESSAGE.send(profile.getPlayerUUID(), TagResolver.resolver( - Placeholder.parsed("leader", getLeaderName()), - TagResolver.resolver("join", Tag.styling(ClickEvent.runCommand("/party joinad " + getLeaderName()))) + Placeholder.parsed("leader", getLeaderPlayer().getName()), + TagResolver.resolver("join", Tag.styling(ClickEvent.runCommand("/party joinad " + getLeaderPlayer().getName()))) )); } diff --git a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java index a8c2a0f9..9354bda4 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java @@ -27,7 +27,7 @@ public PartyDuelButton(int slot, Party targetParty) { @Override public void onClick(ClickType type, Player player) { - new KitSelectMenu(targetParty.getLeader(), true).open(player); + new KitSelectMenu(targetParty.getLeaderPlayer(), true).open(player); } @Override @@ -51,7 +51,7 @@ public ItemStack getItemStack(Player player) { else lore.add(line); } return new ItemBuilder(itemStack) - .name(MenusLocale.PARTY_DUEL_PARTY_TITLE.getString().replaceAll("", targetParty.getLeaderName())) + .name(MenusLocale.PARTY_DUEL_PARTY_TITLE.getString().replaceAll("", targetParty.getLeaderPlayer().getName())) .componentLore(ItemUtils.getLore(lore), player) .build(); } diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/command/DuelCommand.java b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/command/DuelCommand.java index f4f57523..404efa3c 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/command/DuelCommand.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/command/DuelCommand.java @@ -60,7 +60,7 @@ public void duel(@Sender Player player, Player target) { return; } - new KitSelectMenu(target.getUniqueId(), userProfile.getState().equals(ProfileState.IN_PARTY)).open(player); + new KitSelectMenu(target, userProfile.getState().equals(ProfileState.IN_PARTY)).open(player); } @Command(name = "accept-uuid", desc = "", usage = "", hidden = true) diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/ArenaSelectMenu.java b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/ArenaSelectMenu.java index c832aa79..2b1aa361 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/ArenaSelectMenu.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/ArenaSelectMenu.java @@ -20,16 +20,15 @@ import java.util.ArrayList; import java.util.List; -import java.util.UUID; import java.util.stream.Collectors; public class ArenaSelectMenu extends Menu { private final Kit kit; - private final UUID receiver; + private final Player receiver; private final int round; - public ArenaSelectMenu(Kit kit, UUID receiver, int round) { - super(MenusLocale.ARENA_TITLE.getString(), MenusLocale.ARENA_SIZE.getInt(), Filter.valueOf(MenusLocale.ARENA_FILTER.getString())); + public ArenaSelectMenu(Kit kit, Player receiver, int round) { + super(MenusLocale.ARENA_TITLE.getString().replaceAll("", receiver.getName()), MenusLocale.ARENA_SIZE.getInt(), Filter.valueOf(MenusLocale.ARENA_FILTER.getString())); this.kit = kit; this.receiver = receiver; this.round = round; diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectButton.java b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectButton.java index 285101be..48e5425d 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectButton.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectButton.java @@ -14,14 +14,12 @@ import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; -import java.util.UUID; - public class KitSelectButton extends Button { private final Kit kit; - private final UUID receiver; + private final Player receiver; private final boolean party; - public KitSelectButton(int slot, Kit kit, UUID receiver, boolean party) { + public KitSelectButton(int slot, Kit kit, Player receiver, boolean party) { super(slot); this.kit = kit; this.receiver = receiver; @@ -51,7 +49,10 @@ public void onClick(ClickType type, Player player) { Bukkit.getScheduler().runTask(Neptune.get(), () -> player.closeInventory()); }); } else { - new RoundsSelectMenu(kit, receiver).open(player); + String[] roundsList = MenusLocale.ROUNDS_LIST.getString().replace(" ", "").split(","); + if (roundsList.length == 1) + new RoundSelectButton(0, kit, receiver, Integer.parseInt(roundsList[0])).onClick(ClickType.LEFT, player); + else new RoundsSelectMenu(kit, receiver).open(player); } } } \ No newline at end of file diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectMenu.java b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectMenu.java index 0d144a37..80fe2b24 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectMenu.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/KitSelectMenu.java @@ -11,14 +11,13 @@ import java.util.ArrayList; import java.util.List; -import java.util.UUID; public class KitSelectMenu extends Menu { - private final UUID receiver; + private final Player receiver; private final boolean party; - public KitSelectMenu(UUID receiver, boolean party) { - super(MenusLocale.DUEL_TITLE.getString(), MenusLocale.DUEL_SIZE.getInt(), Filter.valueOf(MenusLocale.DUEL_FILTER.getString())); + public KitSelectMenu(Player receiver, boolean party) { + super(MenusLocale.DUEL_TITLE.getString().replaceAll("", receiver.getName()), MenusLocale.DUEL_SIZE.getInt(), Filter.valueOf(MenusLocale.DUEL_FILTER.getString())); this.receiver = receiver; this.party = party; } diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundSelectButton.java b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundSelectButton.java index 0660b9a9..c3e4c80d 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundSelectButton.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundSelectButton.java @@ -14,14 +14,12 @@ import org.bukkit.event.inventory.ClickType; import org.bukkit.inventory.ItemStack; -import java.util.UUID; - public class RoundSelectButton extends Button { private final Kit kit; - private final UUID receiver; + private final Player receiver; private final int round; - public RoundSelectButton(int slot, Kit kit, UUID receiver, int round) { + public RoundSelectButton(int slot, Kit kit, Player receiver, int round) { super(slot); this.kit = kit; this.receiver = receiver; diff --git a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundsSelectMenu.java b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundsSelectMenu.java index 68a326f7..b9a288c0 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundsSelectMenu.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/game/duel/menu/RoundsSelectMenu.java @@ -9,14 +9,13 @@ import java.util.ArrayList; import java.util.List; -import java.util.UUID; public class RoundsSelectMenu extends Menu { private final Kit kit; - private final UUID receiver; + private final Player receiver; - public RoundsSelectMenu(Kit kit, UUID receiver) { - super(MenusLocale.ROUNDS_TITLE.getString(), MenusLocale.ROUNDS_SIZE.getInt(), Filter.valueOf(MenusLocale.ROUNDS_FILTER.getString())); + public RoundsSelectMenu(Kit kit, Player receiver) { + super(MenusLocale.ROUNDS_TITLE.getString().replaceAll("", receiver.getName()), MenusLocale.ROUNDS_SIZE.getInt(), Filter.valueOf(MenusLocale.ROUNDS_FILTER.getString())); this.kit = kit; this.receiver = receiver; } From 5517501acc09ce34f7831dbb72ba687e336e1215 Mon Sep 17 00:00:00 2001 From: mallusrgreatv2 Date: Fri, 20 Feb 2026 20:36:36 +0530 Subject: [PATCH 2/2] revert to getLeaderName() --- .../dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java | 2 +- .../main/java/dev/lrxh/neptune/feature/party/Party.java | 8 ++++---- .../party/menu/buttons/events/PartyDuelButton.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java b/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java index 37a6381b..7bfe972f 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/feature/hotbar/impl/ItemAction.java @@ -94,7 +94,7 @@ public void execute(Player player) { } Party party = profile.getGameData().getParty(); MessagesLocale.PARTY_INFO.send(player.getUniqueId(), TagResolver.resolver( - Placeholder.unparsed("leader", party.getLeaderPlayer().getName()), + Placeholder.unparsed("leader", party.getLeaderName()), Placeholder.unparsed("privacy", party.isOpen() ? MessagesLocale.PARTY_PRIVACY_OPEN.getString() : MessagesLocale.PARTY_PRIVACY_CLOSED.getString()), Placeholder.unparsed("max", String.valueOf(party.getMaxUsers())), Placeholder.unparsed("members", party.getUserNames()), diff --git a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java index 131c7355..27acec05 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/Party.java @@ -68,7 +68,7 @@ public void invite(UUID playerUUID) { MessagesLocale.PARTY_INVITATION.send(playerUUID, TagResolver.resolver( TagResolver.resolver("accept", Tag.styling(ClickEvent.runCommand("/party accept " + getLeader()))), - Placeholder.unparsed("leader", getLeaderPlayer().getName()), + Placeholder.unparsed("leader", getLeaderName()), Placeholder.unparsed("party-max", String.valueOf(getMaxUsers())), Placeholder.unparsed("party-size", String.valueOf(getUsers().size())) )); @@ -99,7 +99,7 @@ private void setupPlayer(UUID playerUUID, boolean ad) { } public void kick(UUID playerUUID) { - broadcast(MessagesLocale.PARTY_KICK, Placeholder.unparsed("player", getLeaderPlayer().getName())); + broadcast(MessagesLocale.PARTY_KICK, Placeholder.unparsed("player", getLeaderName())); remove(playerUUID); } @@ -179,8 +179,8 @@ public boolean advertise() { setOpen(true); for (Profile profile : ProfileService.get().profiles.values()) { MessagesLocale.PARTY_ADVERTISE_MESSAGE.send(profile.getPlayerUUID(), TagResolver.resolver( - Placeholder.parsed("leader", getLeaderPlayer().getName()), - TagResolver.resolver("join", Tag.styling(ClickEvent.runCommand("/party joinad " + getLeaderPlayer().getName()))) + Placeholder.parsed("leader", getLeaderName()), + TagResolver.resolver("join", Tag.styling(ClickEvent.runCommand("/party joinad " + getLeaderName()))) )); } diff --git a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java index 9354bda4..05186bb9 100644 --- a/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java +++ b/Plugin/src/main/java/dev/lrxh/neptune/feature/party/menu/buttons/events/PartyDuelButton.java @@ -51,7 +51,7 @@ public ItemStack getItemStack(Player player) { else lore.add(line); } return new ItemBuilder(itemStack) - .name(MenusLocale.PARTY_DUEL_PARTY_TITLE.getString().replaceAll("", targetParty.getLeaderPlayer().getName())) + .name(MenusLocale.PARTY_DUEL_PARTY_TITLE.getString().replaceAll("", targetParty.getLeaderName())) .componentLore(ItemUtils.getLore(lore), player) .build(); }