Fill unused particle menu columns with gray panes

Unused bottom bar columns show a gray glass pane instead of a barrier,
and the slot editor drops its use button since the particle menu
toggles slots with a click.
This commit is contained in:
2026-10-26 09:48:32 +01:00
parent e41f76937e
commit 54d30f4a42
4 changed files with 6 additions and 18 deletions
@@ -72,8 +72,6 @@ PARTICLE_SLOT_CLICK_STOP = §eClick to stop using
PARTICLE_SLOT_SHIFT_EDIT = §eShift click to edit
PARTICLE_SLOT_NAME = §f{0} §8(§e{1}§8/§7{2}§8)
PARTICLE_SLOT_TITLE = §0{0} §8({1}/{2})
PARTICLE_SLOT_USE = §aUse this slot
PARTICLE_SLOT_STOP_USING = §cStop using this slot
PARTICLE_SHIFT_TO_DELETE = §7Shift click to delete
PARTICLE_SECTION_DESIGN = §6§lDesign
PARTICLE_SECTION_PARTICLE = §6§lParticle
@@ -72,8 +72,6 @@ PARTICLE_SLOT_CLICK_STOP = §eZum Beenden klicken
PARTICLE_SLOT_SHIFT_EDIT = §eZum Bearbeiten Shift-Klick
PARTICLE_SLOT_NAME = §f{0} §8(§e{1}§8/§7{2}§8)
PARTICLE_SLOT_TITLE = §0{0} §8({1}/{2})
PARTICLE_SLOT_USE = §aDiesen Slot verwenden
PARTICLE_SLOT_STOP_USING = §cDiesen Slot nicht mehr verwenden
PARTICLE_SHIFT_TO_DELETE = §7Zum Löschen Shift-Klick
PARTICLE_SECTION_DESIGN = §6§lDesign
PARTICLE_SECTION_PARTICLE = §6§lPartikel
@@ -31,7 +31,8 @@ class BottomBar {
// Taken by the page arrows of list menus
final int PREVIOUS_PAGE = 0;
final int BACK = 1;
final int USE = 2;
// Shows why a locked slot cannot be edited
final int STATUS = 2;
final int ADD = 3;
final int RENAME = 4;
final int ICON = 5;
@@ -45,13 +46,13 @@ class BottomBar {
return inventorySize - 9 + column;
}
// Marks the columns this menu does not use, so the buttons it does use stay recognisable by position.
// Fills the columns this menu does not use, so the buttons it does use stay recognisable by position.
// List menus keep the outer columns free for the page arrows they add when opened.
void fillUnused(SWInventory inventory, int inventorySize, boolean listMenu) {
for (int column = listMenu ? 1 : 0; column < (listMenu ? 8 : 9); column++) {
int position = position(inventorySize, column);
if (!inventory.hasItem(position)) {
inventory.setItem(position, new SWItem(Material.BARRIER, "§8-", clickType -> {
inventory.setItem(position, new SWItem(Material.GRAY_STAINED_GLASS_PANE, " ", clickType -> {
}));
}
}
@@ -45,7 +45,7 @@ public class SlotEditor {
private final int SIZE = 54;
private final int BACK = BottomBar.position(SIZE, BottomBar.BACK);
private final int USE = BottomBar.position(SIZE, BottomBar.USE);
private final int STATUS = BottomBar.position(SIZE, BottomBar.STATUS);
private final int ADD_ENTRY = BottomBar.position(SIZE, BottomBar.ADD);
private final int RENAME = BottomBar.position(SIZE, BottomBar.RENAME);
private final int ICON = BottomBar.position(SIZE, BottomBar.ICON);
@@ -81,7 +81,7 @@ public class SlotEditor {
inventory.setItem(BACK, new SWItem(Material.ARROW, msg("PARTICLE_BACK", player), clickType -> ParticleMenu.open(player)));
if (!editable) {
List<String> lore = new ArrayList<>(requirement(ParticleSlots.requirement(index), player));
inventory.setItem(USE, new SWItem(Material.IRON_BARS, msg("PARTICLE_LOCKED", player), lore, false, clickType -> {
inventory.setItem(STATUS, new SWItem(Material.BARRIER, msg("PARTICLE_LOCKED", player), lore, false, clickType -> {
}));
inventory.setItem(COST, costItem(player, user, slot));
BottomBar.fillUnused(inventory, SIZE, false);
@@ -89,15 +89,6 @@ public class SlotEditor {
return;
}
boolean active = lobbyPlayer.getActiveSlot() == index;
inventory.setItem(USE, new SWItem(active ? Material.LIME_DYE : Material.GRAY_DYE, msg(active ? "PARTICLE_SLOT_STOP_USING" : "PARTICLE_SLOT_USE", player), List.of(), active, clickType -> {
if (active) {
lobbyPlayer.deselect();
open(player, index);
} else if (lobbyPlayer.selectSlot(index)) {
ParticleMenu.selected(player);
}
}));
inventory.setItem(ADD_ENTRY, new SWItem(Material.NETHER_STAR, msg("PARTICLE_SLOT_ADD_ENTRY", player), clickType -> {
if (entries.size() >= ParticleSlots.MAX_ENTRIES) {
LobbySystem.getMessage().send("PARTICLE_SLOT_MAX_ENTRIES", player);