mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-07 07:32:03 -07:00
more ItemFlag fixes
This commit is contained in:
66
patches/api/Fix-ItemFlags.patch
Normal file
66
patches/api/Fix-ItemFlags.patch
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
|
Date: Sat, 27 Apr 2024 13:28:17 -0700
|
||||||
|
Subject: [PATCH] Fix ItemFlags
|
||||||
|
|
||||||
|
Adds new flag in HIDE_STORED_ENCHANTS which was split
|
||||||
|
from HIDE_ADDITIONAL_INFO. Adds a migration to account for
|
||||||
|
this, adding the new flag if the itemstack is old and had the
|
||||||
|
old flag.
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/inventory/ItemFlag.java b/src/main/java/org/bukkit/inventory/ItemFlag.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/inventory/ItemFlag.java
|
||||||
|
+++ b/src/main/java/org/bukkit/inventory/ItemFlag.java
|
||||||
|
@@ -0,0 +0,0 @@ package org.bukkit.inventory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A ItemFlag can hide some Attributes from ItemStacks
|
||||||
|
+ * @apiNote Setting these without also setting the data they are hiding
|
||||||
|
+ * may not result in the item flag being persisted in the ItemMeta/ItemStack.
|
||||||
|
*/
|
||||||
|
public enum ItemFlag {
|
||||||
|
|
||||||
|
@@ -0,0 +0,0 @@ public enum ItemFlag {
|
||||||
|
HIDE_PLACED_ON,
|
||||||
|
/**
|
||||||
|
* Setting to show/hide potion effects, book and firework information, map
|
||||||
|
- * tooltips, patterns of banners, and enchantments of enchanted books.
|
||||||
|
+ * tooltips, patterns of banners.
|
||||||
|
+ * @see #HIDE_STORED_ENCHANTS HIDE_STORED_ENCHANTS for hiding stored enchants (like on enchanted books)
|
||||||
|
*/
|
||||||
|
HIDE_ADDITIONAL_TOOLTIP,
|
||||||
|
/**
|
||||||
|
@@ -0,0 +0,0 @@ public enum ItemFlag {
|
||||||
|
/**
|
||||||
|
* Setting to show/hide armor trim from armor.
|
||||||
|
*/
|
||||||
|
- HIDE_ARMOR_TRIM;
|
||||||
|
+ HIDE_ARMOR_TRIM,
|
||||||
|
+ /**
|
||||||
|
+ * Setting to show/hide stored enchants on an item, such as enchantments
|
||||||
|
+ * on an enchanted book.
|
||||||
|
+ */
|
||||||
|
+ HIDE_STORED_ENCHANTS,
|
||||||
|
+ ;
|
||||||
|
// Paper start
|
||||||
|
/**
|
||||||
|
* Setting to show/hide item-specific information, including, but not limited to:
|
||||||
|
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||||
|
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||||
|
@@ -0,0 +0,0 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||||
|
Object raw = args.get("meta");
|
||||||
|
if (raw instanceof ItemMeta) {
|
||||||
|
((ItemMeta) raw).setVersion(version);
|
||||||
|
+ // Paper start - for pre 1.20.5 itemstacks, add HIDE_STORED_ENCHANTS flag if HIDE_ADDITIONAL_TOOLTIP is set
|
||||||
|
+ if (version < 3837) { // 1.20.5
|
||||||
|
+ if (((ItemMeta) raw).hasItemFlag(ItemFlag.HIDE_ADDITIONAL_TOOLTIP)) {
|
||||||
|
+ ((ItemMeta) raw).addItemFlags(ItemFlag.HIDE_STORED_ENCHANTS);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ // Paper end
|
||||||
|
result.setItemMeta((ItemMeta) raw);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,11 +1,37 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
||||||
Date: Sat, 27 Apr 2024 12:16:38 -0700
|
Date: Sat, 27 Apr 2024 12:16:38 -0700
|
||||||
Subject: [PATCH] Fix ItemFlag HIDE_DESTROYES & HIDE_PLACED_ON
|
Subject: [PATCH] Fix ItemFlags
|
||||||
|
|
||||||
|
Re-adds missing functionality for HIDE_DESTROYS and
|
||||||
|
HIDE_PLACED_ON. Also adds new flag in HIDE_STORED_ENCHANTS
|
||||||
|
which was split from HIDE_ADDITIONAL_TOOLTIP.
|
||||||
|
|
||||||
== AT ==
|
== AT ==
|
||||||
public net.minecraft.world.item.AdventureModePredicate predicates
|
public net.minecraft.world.item.AdventureModePredicate predicates
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java
|
||||||
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java
|
||||||
|
@@ -0,0 +0,0 @@ class CraftMetaEnchantedBook extends CraftMetaItem implements EnchantmentStorage
|
||||||
|
getOrEmpty(tag, CraftMetaEnchantedBook.STORED_ENCHANTMENTS).ifPresent((itemEnchantments) -> {
|
||||||
|
this.enchantments = buildEnchantments(itemEnchantments);
|
||||||
|
if (!itemEnchantments.showInTooltip) {
|
||||||
|
- this.addItemFlags(ItemFlag.HIDE_ADDITIONAL_TOOLTIP);
|
||||||
|
+ this.addItemFlags(ItemFlag.HIDE_STORED_ENCHANTS); // Paper - new ItemFlag
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@@ -0,0 +0,0 @@ class CraftMetaEnchantedBook extends CraftMetaItem implements EnchantmentStorage
|
||||||
|
void applyToItem(CraftMetaItem.Applicator itemTag) {
|
||||||
|
super.applyToItem(itemTag);
|
||||||
|
|
||||||
|
- this.applyEnchantments(this.enchantments, itemTag, CraftMetaEnchantedBook.STORED_ENCHANTMENTS, ItemFlag.HIDE_ADDITIONAL_TOOLTIP);
|
||||||
|
+ this.applyEnchantments(this.enchantments, itemTag, CraftMetaEnchantedBook.STORED_ENCHANTMENTS, ItemFlag.HIDE_STORED_ENCHANTS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
|
Reference in New Issue
Block a user