mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-30 12:11:47 +01:00
26734e83b0
* Updated Upstream (Bukkit/CraftBukkit/Spigot) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 8085edde SPIGOT-6918: Add SpawnCategory API and configurations for Axolotls 04c7e13c PR-719: Add Player Profile API 71564210 SPIGOT-6910: Add BlockDamageAbortEvent CraftBukkit Changes: febaa1c6 SPIGOT-6918: Add SpawnCategory API and configurations for Axolotls 9dafd109 Don't send updates over large distances bdac46b0 SPIGOT-6782: EntityPortalEvent should not destroy entity when setTo() uses same world as getFrom() 8f361ece PR-1002: Add Player Profile API 911875d4 Increase outdated build delay e5f8a767 SPIGOT-6917: Use main scoreboard for /trigger a672a531 Clean up callBlockDamageEvent 8e1bdeef SPIGOT-6910: Add BlockDamageAbortEvent Spigot Changes: 6edb62f3 Rebuild patches 7fbc6a1e Rebuild patches * Updated Upstream (CraftBukkit) Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: de951355 SPIGOT-6927: Fix default value of spawn-limits in Worlds
61 lines
2.8 KiB
Diff
61 lines
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Riley Park <riley.park@meino.net>
|
|
Date: Sun, 23 May 2021 05:04:28 -0700
|
|
Subject: [PATCH] ItemStack#editMeta
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
index e126c45a4184cd637c94b55c5eb14fe4b5afe32e..7dfc84c77d8e185bb0513d9f9c603ce1b501a5e0 100644
|
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
|
@@ -543,6 +543,50 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, net.kyor
|
|
return result.ensureServerConversions(); // Paper
|
|
}
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Edits the {@link ItemMeta} of this stack.
|
|
+ * <p>
|
|
+ * The {@link java.util.function.Consumer} must only interact
|
|
+ * with this stack's {@link ItemMeta} through the provided {@link ItemMeta} instance.
|
|
+ * Calling this method or any other meta-related method of the {@link ItemStack} class
|
|
+ * (such as {@link #getItemMeta()}, {@link #addItemFlags(ItemFlag...)}, {@link #lore()}, etc.)
|
|
+ * from inside the consumer is disallowed and will produce undefined results or exceptions.
|
|
+ * </p>
|
|
+ *
|
|
+ * @param consumer the meta consumer
|
|
+ * @return {@code true} if the edit was successful, {@code false} otherwise
|
|
+ */
|
|
+ public boolean editMeta(final @NotNull java.util.function.Consumer<? super ItemMeta> consumer) {
|
|
+ return editMeta(ItemMeta.class, consumer);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Edits the {@link ItemMeta} of this stack if the meta is of the specified type.
|
|
+ * <p>
|
|
+ * The {@link java.util.function.Consumer} must only interact
|
|
+ * with this stack's {@link ItemMeta} through the provided {@link ItemMeta} instance.
|
|
+ * Calling this method or any other meta-related method of the {@link ItemStack} class
|
|
+ * (such as {@link #getItemMeta()}, {@link #addItemFlags(ItemFlag...)}, {@link #lore()}, etc.)
|
|
+ * from inside the consumer is disallowed and will produce undefined results or exceptions.
|
|
+ * </p>
|
|
+ *
|
|
+ * @param metaClass the type of meta to edit
|
|
+ * @param consumer the meta consumer
|
|
+ * @param <M> the meta type
|
|
+ * @return {@code true} if the edit was successful, {@code false} otherwise
|
|
+ */
|
|
+ public <M extends ItemMeta> boolean editMeta(final @NotNull Class<M> metaClass, final @NotNull java.util.function.Consumer<@NotNull ? super M> consumer) {
|
|
+ final @Nullable ItemMeta meta = this.getItemMeta();
|
|
+ if (metaClass.isInstance(meta)) {
|
|
+ consumer.accept((M) meta);
|
|
+ this.setItemMeta(meta);
|
|
+ return true;
|
|
+ }
|
|
+ return false;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Get a copy of this ItemStack's {@link ItemMeta}.
|
|
*
|