From 5367eecd54394e495ae82d641a34164cab8ddcab Mon Sep 17 00:00:00 2001 From: Cinnazeyy Date: Wed, 1 Apr 2026 22:51:56 +0200 Subject: [PATCH 1/2] Create AbandonConfirmMenu.java and default item for plot-abandon to TNT --- .../core/menus/AbandonConfirmMenu.java | 68 +++++++++++++++++++ .../core/menus/PlotActionsMenu.java | 3 +- src/main/resources/items.yml | 5 +- 3 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java diff --git a/src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java b/src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java new file mode 100644 index 00000000..b7d7ceea --- /dev/null +++ b/src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java @@ -0,0 +1,68 @@ +package com.alpsbte.plotsystem.core.menus; + +import com.alpsbte.alpslib.utils.item.ItemBuilder; +import com.alpsbte.alpslib.utils.item.LoreBuilder; +import com.alpsbte.plotsystem.core.system.plot.Plot; +import com.alpsbte.plotsystem.utils.Utils; +import com.alpsbte.plotsystem.utils.io.LangPaths; +import com.alpsbte.plotsystem.utils.io.LangUtil; +import com.alpsbte.plotsystem.utils.items.BaseItems; +import com.alpsbte.plotsystem.utils.items.MenuItems; +import org.bukkit.entity.Player; +import org.ipvp.canvas.mask.BinaryMask; +import org.ipvp.canvas.mask.Mask; + +import static net.kyori.adventure.text.Component.text; +import static net.kyori.adventure.text.format.NamedTextColor.GRAY; +import static net.kyori.adventure.text.format.NamedTextColor.RED; +import static net.kyori.adventure.text.format.TextDecoration.BOLD; + +public class AbandonConfirmMenu extends AbstractMenu { + private final Plot plot; + + public AbandonConfirmMenu(Player player, Plot plot) { + super(3, "Abandon plot #" + plot.getId() + "?", player); + this.plot = plot; + } + + @Override + protected void setMenuItemsAsync() { + getMenu().getSlot(12) + .setItem(new ItemBuilder(BaseItems.PLOT_ABANDON.getItem()) + .setName(text(LangUtil.getInstance().get(getMenuPlayer(), LangPaths.MenuTitle.ABANDON), RED).decoration(BOLD, true)) + .setLore(new LoreBuilder() + .addLine(LangUtil.getInstance().get(getMenuPlayer(), LangPaths.MenuDescription.ABANDON), true) + .emptyLine() + .addLine(Utils.ItemUtils.getNoteFormat(LangUtil.getInstance().get(getMenuPlayer(), LangPaths.Note.WONT_BE_ABLE_CONTINUE_BUILDING))) + .build()) + .build()); + + getMenu().getSlot(14) + .setItem(new ItemBuilder(BaseItems.MENU_BACK.getItem()) + .setName(text(LangUtil.getInstance().get(getMenuPlayer(), LangPaths.MenuTitle.CANCEL), RED).decoration(BOLD, true)) + .build()); + } + + @Override + protected void setItemClickEventsAsync() { + getMenu().getSlot(12).setClickHandler((clickPlayer, clickInformation) -> { + clickPlayer.closeInventory(); + clickPlayer.performCommand("plot abandon " + plot.getId()); + }); + + getMenu().getSlot(14).setClickHandler((clickPlayer, clickInformation) -> { + clickPlayer.closeInventory(); + new PlotActionsMenu(clickPlayer, plot); + }); + } + + @Override + protected Mask getMask() { + return BinaryMask.builder(getMenu()) + .item(Utils.DEFAULT_ITEM) + .pattern(Utils.FULL_MASK) + .pattern(Utils.EMPTY_MASK) + .pattern(Utils.FULL_MASK) + .build(); + } +} diff --git a/src/main/java/com/alpsbte/plotsystem/core/menus/PlotActionsMenu.java b/src/main/java/com/alpsbte/plotsystem/core/menus/PlotActionsMenu.java index d2924c14..57650a6c 100644 --- a/src/main/java/com/alpsbte/plotsystem/core/menus/PlotActionsMenu.java +++ b/src/main/java/com/alpsbte/plotsystem/core/menus/PlotActionsMenu.java @@ -136,8 +136,7 @@ protected void setItemClickEventsAsync() { // Set click event for abandon plot item getMenu().getSlot(hasReview ? 14 : 16).setClickHandler((clickPlayer, clickInformation) -> { - clickPlayer.closeInventory(); - clickPlayer.performCommand("plot abandon " + plot.getId()); + new AbandonConfirmMenu(clickPlayer, plot); }); // Set click event for feedback menu button diff --git a/src/main/resources/items.yml b/src/main/resources/items.yml index 8185b795..a73f25b6 100644 --- a/src/main/resources/items.yml +++ b/src/main/resources/items.yml @@ -47,7 +47,7 @@ plot-undo-submit: material: FIRE_CHARGE modelId: '' plot-abandon: - material: BARRIER + material: TNT modelId: '' plot-teleport: material: COMPASS @@ -112,9 +112,6 @@ review-point-five: review-submit: material: FIREWORK_ROCKET modelId: '' -review-cancel: - material: RED_CONCRETE - modelId: '' review-info: material: head(46488) modelId: '' From cf132623c7acc35e0cbf497128ee0a315a208690 Mon Sep 17 00:00:00 2001 From: Cinnazeyy Date: Fri, 10 Apr 2026 22:30:46 +0200 Subject: [PATCH 2/2] add translations for AbandonConfirmMenu title --- .../com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java | 4 +--- src/main/java/com/alpsbte/plotsystem/utils/io/LangPaths.java | 3 ++- src/main/resources/lang/de_DE.yml | 3 ++- src/main/resources/lang/en_GB.yml | 1 + src/main/resources/lang/fr_FR.yml | 1 + 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java b/src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java index b7d7ceea..9f19ce1f 100644 --- a/src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java +++ b/src/main/java/com/alpsbte/plotsystem/core/menus/AbandonConfirmMenu.java @@ -7,13 +7,11 @@ import com.alpsbte.plotsystem.utils.io.LangPaths; import com.alpsbte.plotsystem.utils.io.LangUtil; import com.alpsbte.plotsystem.utils.items.BaseItems; -import com.alpsbte.plotsystem.utils.items.MenuItems; import org.bukkit.entity.Player; import org.ipvp.canvas.mask.BinaryMask; import org.ipvp.canvas.mask.Mask; import static net.kyori.adventure.text.Component.text; -import static net.kyori.adventure.text.format.NamedTextColor.GRAY; import static net.kyori.adventure.text.format.NamedTextColor.RED; import static net.kyori.adventure.text.format.TextDecoration.BOLD; @@ -21,7 +19,7 @@ public class AbandonConfirmMenu extends AbstractMenu { private final Plot plot; public AbandonConfirmMenu(Player player, Plot plot) { - super(3, "Abandon plot #" + plot.getId() + "?", player); + super(3, LangUtil.getInstance().get(player, LangPaths.MenuTitle.ABANDON_CONFIRM, String.valueOf(plot.getId())), player); this.plot = plot; } diff --git a/src/main/java/com/alpsbte/plotsystem/utils/io/LangPaths.java b/src/main/java/com/alpsbte/plotsystem/utils/io/LangPaths.java index fbf11a5d..3b4168c4 100644 --- a/src/main/java/com/alpsbte/plotsystem/utils/io/LangPaths.java +++ b/src/main/java/com/alpsbte/plotsystem/utils/io/LangPaths.java @@ -86,6 +86,7 @@ private MenuTitle() {} public static final String SUBMIT = MENU_TITLES + "submit"; public static final String TELEPORT = MENU_TITLES + "teleport"; public static final String ABANDON = MENU_TITLES + "abandon"; + public static final String ABANDON_CONFIRM = MENU_TITLES + "abandon-confirm"; public static final String UNDO_SUBMIT = MENU_TITLES + "undo-submit"; public static final String MANAGE_MEMBERS = MENU_TITLES + "manage-members"; public static final String FEEDBACK = MENU_TITLES + "feedback"; @@ -406,4 +407,4 @@ private Database() {} public static final String STATUS = DATABASE_PREFIX + "status"; public static final String TOGGLE_CRITERIA = DATABASE_PREFIX + "toggle-criteria"; } -} \ No newline at end of file +} diff --git a/src/main/resources/lang/de_DE.yml b/src/main/resources/lang/de_DE.yml index b2062814..3afeaa15 100644 --- a/src/main/resources/lang/de_DE.yml +++ b/src/main/resources/lang/de_DE.yml @@ -82,6 +82,7 @@ menu-title: submit: 'Einreichen' teleport: 'Teleportieren' abandon: 'Löschen' + abandon-confirm: 'Plot #{0} löschen?' undo-submit: 'Einreichung Zurückziehen' manage-members: 'Mitglieder Verwalten' feedback: 'Feedback | Bewertung #{0}' @@ -446,4 +447,4 @@ database: correct_window_type: 'Richtige Verstrebungen' windows_blacked_out: 'Alle Fenster verdunkelt' #NOTE: Do not change -config-version: 2.5 \ No newline at end of file +config-version: 2.5 diff --git a/src/main/resources/lang/en_GB.yml b/src/main/resources/lang/en_GB.yml index a103e28e..77d22e9d 100644 --- a/src/main/resources/lang/en_GB.yml +++ b/src/main/resources/lang/en_GB.yml @@ -82,6 +82,7 @@ menu-title: submit: 'Submit' teleport: 'Teleport' abandon: 'Abandon' + abandon-confirm: 'Abandon plot #{0}?' undo-submit: 'Undo Submit' manage-members: 'Manage Members' feedback: 'Feedback | Review #{0}' diff --git a/src/main/resources/lang/fr_FR.yml b/src/main/resources/lang/fr_FR.yml index f6d6f75c..91169f91 100644 --- a/src/main/resources/lang/fr_FR.yml +++ b/src/main/resources/lang/fr_FR.yml @@ -82,6 +82,7 @@ menu-title: submit: 'Soumettre' teleport: 'Téléport' abandon: 'Abandonner' + abandon-confirm: 'Abandonner le Plot #{0} ?' undo-submit: 'Annuler Soumission' manage-members: 'Gérer Membres' feedback: 'Retour | Review #{0}'