From 4511edb84951d8b7251f288bfa2c6c3f90d47c68 Mon Sep 17 00:00:00 2001 From: masmc05 <63639746+masmc05@users.noreply.github.com> Date: Sun, 13 Apr 2025 12:28:03 +0300 Subject: [PATCH] [ci skip] Don't promote checking enchantment by legacy lore (#12421) --- .../bukkit/event/entity/PlayerDeathEvent.java | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/paper-api/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java index deb1e59ef..d49dffbc2 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/PlayerDeathEvent.java @@ -264,19 +264,18 @@ public class PlayerDeathEvent extends EntityDeathEvent { *
* You MUST remove the item from the .getDrops() collection too or it will duplicate! *
{@code
-     *    {@literal @EventHandler(ignoreCancelled = true)}
-     *     public void onPlayerDeath(PlayerDeathEvent event) {
-     *         for (Iterator iterator = event.getDrops().iterator(); iterator.hasNext(); ) {
-     *             ItemStack drop = iterator.next();
-     *             List lore = drop.getLore();
-     *             if (lore != null && !lore.isEmpty()) {
-     *                 if (lore.get(0).contains("(SOULBOUND)")) {
-     *                     iterator.remove();
-     *                     event.getItemsToKeep().add(drop);
-     *                 }
-     *             }
+     * private static final NamespacedKey SOULBOUND_KEY = new NamespacedKey("testplugin", "soulbound");
+     *
+     * @EventHandler(ignoreCancelled = true)
+     * public void onPlayerDeath(PlayerDeathEvent event) {
+     *     for (Iterator iterator = event.getDrops().iterator(); iterator.hasNext(); ) {
+     *         ItemStack drop = iterator.next();
+     *         if (drop.getPersistentDataContainer().getOrDefault(SOULBOUND_KEY, PersistentDataType.BOOLEAN, false)) {
+     *             iterator.remove();
+     *             event.getItemsToKeep().add(drop);
      *         }
      *     }
+     * }
      * }
*

* Adding an item to this list that the player did not previously have will give them the item on death.