mirror of https://github.com/PaperMC/Paper.git
add holder for ItemStack
This commit is contained in:
parent
0bd0027954
commit
26bf30cc16
|
@ -110,33 +110,6 @@ index 0000000000000000000000000000000000000000..6d227528930c4d25ebfcc8829057cbac
|
|||
+ return (DataKey.Valued<T>) Registry.DATA_KEYS.get(NamespacedKey.minecraft(name));
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/datakey/PatchedDataComponentHolder.java b/src/main/java/io/papermc/paper/datakey/PatchedDataComponentHolder.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..a226c4d1d901ea6086ac49263a0f21867328e36f
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/datakey/PatchedDataComponentHolder.java
|
||||
@@ -0,0 +1,21 @@
|
||||
+package io.papermc.paper.datakey;
|
||||
+
|
||||
+import io.papermc.paper.datakey.map.DataKeyMap;
|
||||
+import org.jetbrains.annotations.Nullable;
|
||||
+
|
||||
+public interface PatchedDataComponentHolder {
|
||||
+
|
||||
+ DataKeyMap data();
|
||||
+
|
||||
+ @Nullable
|
||||
+ <T> T setData(DataKey.Valued<T> type, @Nullable T value);
|
||||
+
|
||||
+ @Nullable
|
||||
+ <T> T setData(DataKey.NonValued type);
|
||||
+
|
||||
+ @Nullable
|
||||
+ <T> T removeData(DataKey type);
|
||||
+
|
||||
+ boolean hasData(DataKey type);
|
||||
+
|
||||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/datakey/map/DataKeyMap.java b/src/main/java/io/papermc/paper/datakey/map/DataKeyMap.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..75d07bd3ec9b51f039715590881272eced13ea4f
|
||||
|
@ -170,10 +143,10 @@ index 0000000000000000000000000000000000000000..75d07bd3ec9b51f039715590881272ec
|
|||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/datakey/map/DataKeyMapBridge.java b/src/main/java/io/papermc/paper/datakey/map/DataKeyMapBridge.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..9da6ab689eb43eb960429fe9a752c0c6c4183232
|
||||
index 0000000000000000000000000000000000000000..889439e91b4785b1090894815bb6ba739363244f
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/datakey/map/DataKeyMapBridge.java
|
||||
@@ -0,0 +1,26 @@
|
||||
@@ -0,0 +1,27 @@
|
||||
+package io.papermc.paper.datakey.map;
|
||||
+
|
||||
+import net.kyori.adventure.util.Services;
|
||||
|
@ -194,6 +167,7 @@ index 0000000000000000000000000000000000000000..9da6ab689eb43eb960429fe9a752c0c6
|
|||
+
|
||||
+ ItemMeta toMeta(Material material, PatchedDataKeyMap dataKeyMap);
|
||||
+
|
||||
+ @ApiStatus.Internal
|
||||
+ class Holder {
|
||||
+
|
||||
+ public static DataKeyMapBridge BRIDGE = Services.service(DataKeyMapBridge.class)
|
||||
|
@ -202,10 +176,10 @@ index 0000000000000000000000000000000000000000..9da6ab689eb43eb960429fe9a752c0c6
|
|||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/datakey/map/PatchedDataKeyMap.java b/src/main/java/io/papermc/paper/datakey/map/PatchedDataKeyMap.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..3340e13d6f161c521af5bca7a57c173bc0bdfead
|
||||
index 0000000000000000000000000000000000000000..5aa31b3d178f5b3453d6f864a243ca5933fe88cc
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/datakey/map/PatchedDataKeyMap.java
|
||||
@@ -0,0 +1,36 @@
|
||||
@@ -0,0 +1,33 @@
|
||||
+package io.papermc.paper.datakey.map;
|
||||
+
|
||||
+import io.papermc.paper.datakey.DataKey;
|
||||
|
@ -223,17 +197,14 @@ index 0000000000000000000000000000000000000000..3340e13d6f161c521af5bca7a57c173b
|
|||
+ return DataKeyMapBridge.Holder.BRIDGE.of(map);
|
||||
+ }
|
||||
+
|
||||
+ @Nullable
|
||||
+ <T> T set(DataKey.Valued<T> type, @Nullable T value);
|
||||
+ <T> void set(DataKey.Valued<T> type, @Nullable T value);
|
||||
+
|
||||
+ void set(DataKey.NonValued type);
|
||||
+
|
||||
+ <T> void remove(DataKey.Valued<T> type);
|
||||
+
|
||||
+ // Returns if this value was previously set
|
||||
+ boolean set(DataKey.NonValued type);
|
||||
+
|
||||
+ @Nullable
|
||||
+ <T> T remove(DataKey.Valued<T> type);
|
||||
+
|
||||
+ // Returns if this value was previously set
|
||||
+ boolean remove(DataKey.NonValued type);
|
||||
+ void remove(DataKey.NonValued type);
|
||||
+
|
||||
+ @NotNull
|
||||
+ DataKeyMapPatch asPatch();
|
||||
|
@ -242,6 +213,41 @@ index 0000000000000000000000000000000000000000..3340e13d6f161c521af5bca7a57c173b
|
|||
+
|
||||
+ PatchedDataKeyMap clone();
|
||||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/datakey/map/PatchedDataKeyMapHolder.java b/src/main/java/io/papermc/paper/datakey/map/PatchedDataKeyMapHolder.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..aa37cdc7b0628870e4a2013900632ea36fa3597c
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/io/papermc/paper/datakey/map/PatchedDataKeyMapHolder.java
|
||||
@@ -0,0 +1,29 @@
|
||||
+package io.papermc.paper.datakey.map;
|
||||
+
|
||||
+import io.papermc.paper.datakey.DataKey;
|
||||
+import org.jetbrains.annotations.ApiStatus;
|
||||
+import org.jetbrains.annotations.NotNull;
|
||||
+import org.jetbrains.annotations.Nullable;
|
||||
+
|
||||
+@ApiStatus.NonExtendable
|
||||
+@ApiStatus.Experimental
|
||||
+public interface PatchedDataKeyMapHolder {
|
||||
+
|
||||
+ @NotNull PatchedDataKeyMap data();
|
||||
+
|
||||
+ default <T> void setData(final DataKey.@NotNull Valued<T> dataKey, final @Nullable T value) {
|
||||
+ this.data().set(dataKey, value);
|
||||
+ }
|
||||
+
|
||||
+ default void setData(final DataKey.@NotNull NonValued dataKey) {
|
||||
+ this.data().set(dataKey);
|
||||
+ }
|
||||
+
|
||||
+ default <T> void removeData(final DataKey.@NotNull Valued<T> dataKey) {
|
||||
+ this.data().remove(dataKey);
|
||||
+ }
|
||||
+
|
||||
+ default void removeData(final DataKey.@NotNull NonValued dataKey) {
|
||||
+ this.data().remove(dataKey);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/io/papermc/paper/datakey/patch/DataKeyMapPatch.java b/src/main/java/io/papermc/paper/datakey/patch/DataKeyMapPatch.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..325a597b8d3e0c574b7bc80b7c9d0deeb3b28037
|
||||
|
@ -370,7 +376,7 @@ index 98a970a6582dca22e719a31559c7becea4725cb2..84708afee2316108babbd64c9c667146
|
|||
|
||||
/**
|
||||
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
index 84a7bf0936d35bf42b5ed038d295d5c31740f472..d036e24e602d086e962723cb96a5e3896172e1b9 100644
|
||||
index 84a7bf0936d35bf42b5ed038d295d5c31740f472..4625bc9194f03d3aff5e90aaf536b32109c364fa 100644
|
||||
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
@@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
|
@ -381,7 +387,12 @@ index 84a7bf0936d35bf42b5ed038d295d5c31740f472..d036e24e602d086e962723cb96a5e389
|
|||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Translatable;
|
||||
@@ -29,7 +30,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||
@@ -25,11 +26,11 @@ import org.jetbrains.annotations.Nullable;
|
||||
* use this class to encapsulate Materials for which {@link Material#isItem()}
|
||||
* returns false.</b>
|
||||
*/
|
||||
-public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>, net.kyori.adventure.translation.Translatable { // Paper
|
||||
+public class ItemStack implements Cloneable, ConfigurationSerializable, Translatable, net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>, net.kyori.adventure.translation.Translatable, io.papermc.paper.datakey.map.PatchedDataKeyMapHolder { // Paper
|
||||
private Material type = Material.AIR;
|
||||
private int amount = 0;
|
||||
private MaterialData data = null;
|
||||
|
@ -425,7 +436,7 @@ index 84a7bf0936d35bf42b5ed038d295d5c31740f472..d036e24e602d086e962723cb96a5e389
|
|||
- if (this.meta != null) {
|
||||
- itemStack.meta = this.meta.clone();
|
||||
- }
|
||||
+ itemStack.dataKeyMap = this.getDataKeyMap().clone(); // Paper
|
||||
+ itemStack.dataKeyMap = this.data().clone(); // Paper
|
||||
|
||||
if (this.data != null) {
|
||||
itemStack.data = this.data.clone();
|
||||
|
@ -509,7 +520,7 @@ index 84a7bf0936d35bf42b5ed038d295d5c31740f472..d036e24e602d086e962723cb96a5e389
|
|||
@UndefinedNullability // Paper
|
||||
public ItemMeta getItemMeta() {
|
||||
- return this.meta == null ? Bukkit.getItemFactory().getItemMeta(this.type) : this.meta.clone();
|
||||
+ return io.papermc.paper.datakey.map.DataKeyMapBridge.Holder.BRIDGE.toMeta(this.type, this.getDataKeyMap());
|
||||
+ return io.papermc.paper.datakey.map.DataKeyMapBridge.Holder.BRIDGE.toMeta(this.type, this.data());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -547,13 +558,14 @@ index 84a7bf0936d35bf42b5ed038d295d5c31740f472..d036e24e602d086e962723cb96a5e389
|
|||
|
||||
return true;
|
||||
}
|
||||
@@ -1073,4 +1060,10 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||
@@ -1073,4 +1060,11 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||
return Bukkit.getUnsafe().computeTooltipLines(this, tooltipContext, player);
|
||||
}
|
||||
// Paper end - expose itemstack tooltip lines
|
||||
+ // Paper start
|
||||
+ @NotNull
|
||||
+ public PatchedDataKeyMap getDataKeyMap() {
|
||||
+ @Override
|
||||
+ public PatchedDataKeyMap data() {
|
||||
+ return this.dataKeyMap;
|
||||
+ }
|
||||
+ // Paper end
|
||||
|
|
|
@ -150,58 +150,64 @@ index e55c1bcbf62de62d7699cf2a050132b208083a3d..478c73363e64e861a8285234f2f294f4
|
|||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/io/papermc/paper/datakey/PaperPatchedDataKeyMap.java b/src/main/java/io/papermc/paper/datakey/PaperPatchedDataKeyMap.java
|
||||
index a7bd48c01c473ccde84760d121dcad73aa6d0a59..36802d32ed1724e87f707c0cc46e566ef04a5b77 100644
|
||||
index a7bd48c01c473ccde84760d121dcad73aa6d0a59..c218949484a1f9484a1e0fd41fb0f10bddfe1c11 100644
|
||||
--- a/src/main/java/io/papermc/paper/datakey/PaperPatchedDataKeyMap.java
|
||||
+++ b/src/main/java/io/papermc/paper/datakey/PaperPatchedDataKeyMap.java
|
||||
@@ -17,16 +17,25 @@ public class PaperPatchedDataKeyMap extends PaperDataKeyMap implements PatchedDa
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
- public <T> T set(final DataKey<T> type, @Nullable final T value) {
|
||||
+ public <T> T set(final DataKey.Valued<T> type, @Nullable final T value) {
|
||||
PaperComponentType<T, Object> paperComponentType = (PaperComponentType<T, Object>) type;
|
||||
ComponentAdapters.ComponentAdapter<T, Object> adapter = paperComponentType.getAdapter();
|
||||
|
||||
return adapter.apiConverter().apply(this.patched().set(paperComponentType.getHandle(), value == null ? null : adapter.nmsConverter().apply(value)));
|
||||
@@ -15,27 +15,40 @@ public class PaperPatchedDataKeyMap extends PaperDataKeyMap implements PatchedDa
|
||||
super(patchedDataKeyMap);
|
||||
}
|
||||
|
||||
- @Nullable
|
||||
+ @SuppressWarnings("unchecked")
|
||||
@Override
|
||||
- public <T> T remove(final DataKey<T> type) {
|
||||
+ public boolean set(final DataKey.NonValued type) {
|
||||
+ PaperComponentType<?, Object> paperComponentType = (PaperComponentType<?, Object>) type;
|
||||
+ ComponentAdapters.ComponentAdapter<?, Object> adapter = paperComponentType.getAdapter();
|
||||
+
|
||||
+ boolean hasValue = this.has(type);
|
||||
+ this.patched().set(paperComponentType.getHandle(), adapter.nmsConverter().apply(null));
|
||||
+ return hasValue;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public <T> @Nullable T remove(final DataKey.Valued<T> type) {
|
||||
PaperComponentType<T, Object> paperComponentType = (PaperComponentType<T, Object>) type;
|
||||
ComponentAdapters.ComponentAdapter<T, Object> adapter = paperComponentType.getAdapter();
|
||||
- public <T> T set(final DataKey<T> type, @Nullable final T value) {
|
||||
- PaperComponentType<T, Object> paperComponentType = (PaperComponentType<T, Object>) type;
|
||||
- ComponentAdapters.ComponentAdapter<T, Object> adapter = paperComponentType.getAdapter();
|
||||
+ public <T> void set(final DataKey.Valued<T> type, @Nullable final T value) {
|
||||
+ final PaperComponentType<T, Object> paperComponentType = (PaperComponentType<T, Object>) type;
|
||||
+ final ComponentAdapters.ComponentAdapter<T, Object> adapter = paperComponentType.getAdapter();
|
||||
|
||||
@@ -38,6 +47,19 @@ public class PaperPatchedDataKeyMap extends PaperDataKeyMap implements PatchedDa
|
||||
return adapter.apiConverter().apply(removed);
|
||||
- return adapter.apiConverter().apply(this.patched().set(paperComponentType.getHandle(), value == null ? null : adapter.nmsConverter().apply(value)));
|
||||
+ this.patched().set(paperComponentType.getHandle(), value == null ? null : adapter.nmsConverter().apply(value));
|
||||
}
|
||||
|
||||
+ @Override
|
||||
+ public boolean remove(final DataKey.NonValued type) {
|
||||
+ PaperComponentType<?, Object> paperComponentType = (PaperComponentType<?, Object>) type;
|
||||
+ ComponentAdapters.ComponentAdapter<?, Object> adapter = paperComponentType.getAdapter();
|
||||
+
|
||||
+ Object removed = this.patched().remove(adapter.type());
|
||||
+ if (removed == null) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
- @Nullable
|
||||
+ @SuppressWarnings("unchecked")
|
||||
@Override
|
||||
- public <T> T remove(final DataKey<T> type) {
|
||||
- PaperComponentType<T, Object> paperComponentType = (PaperComponentType<T, Object>) type;
|
||||
- ComponentAdapters.ComponentAdapter<T, Object> adapter = paperComponentType.getAdapter();
|
||||
+ public void set(final DataKey.NonValued type) {
|
||||
+ final PaperComponentType<?, Object> paperComponentType = (PaperComponentType<?, Object>) type;
|
||||
+ final ComponentAdapters.ComponentAdapter<?, Object> adapter = paperComponentType.getAdapter();
|
||||
|
||||
- Object removed = this.patched().remove(adapter.type());
|
||||
- if (removed == null) {
|
||||
- return null;
|
||||
- }
|
||||
+ this.patched().set(paperComponentType.getHandle(), adapter.nmsConverter().apply(null));
|
||||
+ }
|
||||
+
|
||||
+ @SuppressWarnings("unchecked")
|
||||
+ @Override
|
||||
+ public <T> void remove(final DataKey.Valued<T> type) {
|
||||
+ final PaperComponentType<T, Object> paperComponentType = (PaperComponentType<T, Object>) type;
|
||||
+ final ComponentAdapters.ComponentAdapter<T, Object> adapter = paperComponentType.getAdapter();
|
||||
+
|
||||
+ this.patched().remove(adapter.type());
|
||||
+ }
|
||||
+
|
||||
+ @SuppressWarnings("unchecked")
|
||||
+ @Override
|
||||
+ public void remove(final DataKey.NonValued type) {
|
||||
+ final PaperComponentType<?, Object> paperComponentType = (PaperComponentType<?, Object>) type;
|
||||
+ final ComponentAdapters.ComponentAdapter<?, Object> adapter = paperComponentType.getAdapter();
|
||||
|
||||
- return adapter.apiConverter().apply(removed);
|
||||
+ this.patched().remove(adapter.type());
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull DataKeyMapPatch asPatch() {
|
||||
return null;
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java b/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
|
||||
index 189b8d995caa7e8190c6c07400c75d791f6465ed..2ea46a3620fffcee18ad0e1d571ebfeedb66fd41 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftRegistry.java
|
||||
|
@ -215,8 +221,21 @@ index 189b8d995caa7e8190c6c07400c75d791f6465ed..2ea46a3620fffcee18ad0e1d571ebfee
|
|||
}
|
||||
// Paper end
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||
index 2ab8cc39ef9a039c620b5784d150bc519177b462..78e76bb3d21eacbe59fe7959de5ba8489aaa1693 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
|
||||
@@ -769,7 +769,7 @@ public final class CraftItemStack extends ItemStack {
|
||||
}
|
||||
|
||||
@Override
|
||||
- public io.papermc.paper.datakey.PaperPatchedDataKeyMap getDataKeyMap() {
|
||||
+ public io.papermc.paper.datakey.PaperPatchedDataKeyMap data() {
|
||||
if (this.handle == null) {
|
||||
return new io.papermc.paper.datakey.PaperPatchedDataKeyMap(new net.minecraft.core.component.PatchedDataComponentMap(net.minecraft.core.component.DataComponentMap.EMPTY)); // Paper
|
||||
}
|
||||
diff --git a/src/test/java/io/papermc/paper/item/MetaDataKeyMetaTest.java b/src/test/java/io/papermc/paper/item/MetaDataKeyMetaTest.java
|
||||
index c60ec00464d5d4216544240f64a867e51ac7335d..517ea27fe792b1e6ec54075b4330d9a08c834bcf 100644
|
||||
index c60ec00464d5d4216544240f64a867e51ac7335d..a97e1d5612f900f15fca468877428a0eda21a2c3 100644
|
||||
--- a/src/test/java/io/papermc/paper/item/MetaDataKeyMetaTest.java
|
||||
+++ b/src/test/java/io/papermc/paper/item/MetaDataKeyMetaTest.java
|
||||
@@ -3,7 +3,6 @@ package io.papermc.paper.item;
|
||||
|
@ -227,16 +246,29 @@ index c60ec00464d5d4216544240f64a867e51ac7335d..517ea27fe792b1e6ec54075b4330d9a0
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@@ -56,23 +55,23 @@ public class MetaDataKeyMetaTest extends AbstractTestingBase {
|
||||
@@ -45,36 +44,36 @@ public class MetaDataKeyMetaTest extends AbstractTestingBase {
|
||||
@Test
|
||||
public void testUnbreakable() {
|
||||
ItemStack itemStack = new ItemStack(Material.STONE);
|
||||
- itemStack.getDataKeyMap().set(DataKeys.UNBREAKABLE, Unbreakable.of(false));
|
||||
+ itemStack.data().set(DataKeys.UNBREAKABLE, Unbreakable.of(false));
|
||||
|
||||
Assertions.assertTrue(itemStack.getItemMeta().isUnbreakable());
|
||||
Assertions.assertTrue(itemStack.getItemMeta().getItemFlags().contains(ItemFlag.HIDE_UNBREAKABLE));
|
||||
- itemStack.getDataKeyMap().set(DataKeys.UNBREAKABLE, null);
|
||||
+ itemStack.data().set(DataKeys.UNBREAKABLE, null);
|
||||
Assertions.assertFalse(itemStack.getItemMeta().isUnbreakable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToolTipAdditional() {
|
||||
ItemStack itemStack = new ItemStack(Material.STONE);
|
||||
- itemStack.getDataKeyMap().set(DataKeys.HIDE_ADDITIONAL_TOOLTIP, Unit.of());
|
||||
+ itemStack.getDataKeyMap().set(DataKeys.HIDE_ADDITIONAL_TOOLTIP);
|
||||
+ itemStack.data().set(DataKeys.HIDE_ADDITIONAL_TOOLTIP);
|
||||
|
||||
Assertions.assertTrue(itemStack.getItemMeta().getItemFlags().contains(ItemFlag.HIDE_ADDITIONAL_TOOLTIP));
|
||||
- itemStack.getDataKeyMap().set(DataKeys.HIDE_ADDITIONAL_TOOLTIP, null);
|
||||
+ itemStack.getDataKeyMap().remove(DataKeys.HIDE_ADDITIONAL_TOOLTIP);
|
||||
+ itemStack.data().remove(DataKeys.HIDE_ADDITIONAL_TOOLTIP);
|
||||
Assertions.assertFalse(itemStack.getItemMeta().getItemFlags().contains(ItemFlag.HIDE_ADDITIONAL_TOOLTIP));
|
||||
}
|
||||
|
||||
|
@ -257,7 +289,11 @@ index c60ec00464d5d4216544240f64a867e51ac7335d..517ea27fe792b1e6ec54075b4330d9a0
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
- private static <T, M> void testSimpleValue(ItemStack itemStack, DataKey<T> dataKey, T value, Function<M, T> metaGetter, BiConsumer<M, T> metaSetter, Class<M> meta) {
|
||||
- itemStack.getDataKeyMap().set(dataKey, value);
|
||||
- Assertions.assertEquals(value, itemStack.getDataKeyMap().get(dataKey));
|
||||
+ private static <T, M> void testSimpleValue(ItemStack itemStack, DataKey.Valued<T> dataKey, T value, Function<M, T> metaGetter, BiConsumer<M, T> metaSetter, Class<M> meta) {
|
||||
itemStack.getDataKeyMap().set(dataKey, value);
|
||||
Assertions.assertEquals(value, itemStack.getDataKeyMap().get(dataKey));
|
||||
+ itemStack.data().set(dataKey, value);
|
||||
+ Assertions.assertEquals(value, itemStack.data().get(dataKey));
|
||||
|
||||
Assertions.assertEquals(metaGetter.apply((M) itemStack.getItemMeta()), value);
|
||||
|
||||
|
|
Loading…
Reference in New Issue