From 91670cf264a8345201fa9751bcc82060fce187ef Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Wed, 8 Apr 2026 21:07:27 +0200 Subject: [PATCH 1/3] fix letter sending --- .../mailboxes/menu/letter/LetterMenu.java | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java b/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java index 112c42258..d5b9f6e22 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java @@ -15,7 +15,6 @@ import fr.openmc.core.utils.messages.Prefix; import fr.openmc.core.utils.serializer.BukkitSerializer; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.World; @@ -35,6 +34,7 @@ public class LetterMenu extends Menu { private final Letter letter; private final LetterHead letterHead; + private ItemStack[] letterItems; @Override public @NotNull String getName() { @@ -82,7 +82,15 @@ public static void refuseLetter(Player player, int id) { } public void accept() { + ItemStack[] items = getLetterItems(); + if (MailboxManager.deleteLetter(letterHead.getLetterId())) { + HashMap remainingItems = getOwner().getInventory().addItem(items); + World world = getOwner().getWorld(); + for (ItemStack item : remainingItems.values()) { + world.dropItemNaturally(getOwner().getLocation(), item); + } + MessagesManager.sendMessage( getOwner(), Component.text("Vous avez reçu ", NamedTextColor.DARK_GREEN) @@ -94,14 +102,10 @@ public void accept() { ); Bukkit.getScheduler().runTask(OMCPlugin.getInstance(), () -> - Bukkit.getPluginManager().callEvent(new ClaimLetterEvent(getOwner(), MailboxManager.getById(getOwner(), letterHead.getLetterId()))) + Bukkit.getPluginManager().callEvent(new ClaimLetterEvent(getOwner(), letter)) ); - HashMap remainingItems = getOwner().getInventory().addItem(letter.getCachedItems()); - World world = getOwner().getWorld(); - for (ItemStack item : remainingItems.values()) { - world.dropItemNaturally(getOwner().getLocation(), item); - } + } else { Component message = Component.text("La lettre avec l'id ", NamedTextColor.DARK_RED) .append(Component.text(letterHead.getLetterId(), NamedTextColor.RED)) @@ -132,7 +136,7 @@ public void onClose(InventoryCloseEvent event) {} public @NotNull Map getContent() { Map content = new HashMap<>(); - ItemStack[] items = letter.getCachedItems(); + ItemStack[] items = getLetterItems(); if (items == null || items.length == 0) { byte[] serializedItems = letter.getItems(); @@ -164,6 +168,17 @@ public void cancel() { ); } + private ItemStack[] getLetterItems() { + if (letterItems != null) return letterItems; + ItemStack[] items = letter.getCachedItems(); + if (items == null || items.length == 0) { + byte[] serializedItems = letter.getItems(); + items = serializedItems != null ? BukkitSerializer.deserializeItemStacks(serializedItems) : new ItemStack[0]; + } + letterItems = items; + return items; + } + @Override public List getTakableSlot() { return List.of(); From 9d50c2d68029e00c52834765cff0456db91e0839 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Wed, 8 Apr 2026 21:17:27 +0200 Subject: [PATCH 2/3] add lore warning for cancel --- .../core/features/mailboxes/utils/MailboxMenuManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java b/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java index cd2ca3cd2..bd45c1a43 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java @@ -34,7 +34,11 @@ public static ItemBuilder getBtn(Menu menu, String symbol, String name, String c } public static ItemBuilder cancelBtn(Menu menu) { - return getBtn(menu, "✘", "Annuler", "omc_menus:mailbox_cancel_btn", NamedTextColor.DARK_RED, true); + ItemBuilder item = getBtn(menu, "✘", "Annuler", "omc_menus:mailbox_cancel_btn", NamedTextColor.DARK_RED, true); + item.editMeta( + meta -> meta.lore(List.of(Component.text("Si vous faites cela, les items seront supprimés", NamedTextColor.RED, TextDecoration.BOLD))) + ); + return item; } public static ItemStack nextPageBtn() { From f4e2be1668e7b17235a5a3fdb98e1b9dbeb31e36 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Wed, 8 Apr 2026 21:22:33 +0200 Subject: [PATCH 3/3] stupid --- .../features/mailboxes/utils/MailboxMenuManager.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java b/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java index bd45c1a43..3d700b25c 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java @@ -34,11 +34,7 @@ public static ItemBuilder getBtn(Menu menu, String symbol, String name, String c } public static ItemBuilder cancelBtn(Menu menu) { - ItemBuilder item = getBtn(menu, "✘", "Annuler", "omc_menus:mailbox_cancel_btn", NamedTextColor.DARK_RED, true); - item.editMeta( - meta -> meta.lore(List.of(Component.text("Si vous faites cela, les items seront supprimés", NamedTextColor.RED, TextDecoration.BOLD))) - ); - return item; + return getBtn(menu, "✘", "Annuler", "omc_menus:mailbox_cancel_btn", NamedTextColor.DARK_RED, true); } public static ItemStack nextPageBtn() { @@ -70,7 +66,11 @@ public static ItemBuilder sendBtn(Menu menu) { } public static ItemBuilder refuseBtn(Menu menu) { - return getBtn(menu, "✘", "Refuser", "omc_menus:mailbox_refuse_btn", NamedTextColor.DARK_RED, true); + ItemBuilder item = getBtn(menu, "✘", "Refuser", "omc_menus:mailbox_refuse_btn", NamedTextColor.DARK_RED, true); + item.editMeta( + meta -> meta.lore(List.of(Component.text("Si vous faites cela, les items seront supprimés", NamedTextColor.RED, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false))) + ); + return item; } public static ItemBuilder homeBtn(Menu menu) {