2024-02-10 02:12:50 +01:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Yannick Lamprecht <yannicklamprecht@live.de>
Date: Mon, 22 Jan 2024 13:27:30 +0100
Subject: [PATCH] ItemStack Tooltip API
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
2024-10-25 14:55:49 +02:00
index ca201861b383bac4ea93284ac017e85ae0b3b17c..8feba2bd411abe36e64a39a0c599c73d07c19e20 100644
2024-02-10 02:12:50 +01:00
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
2024-10-21 00:06:54 +02:00
@@ -628,6 +628,21 @@ public final class CraftMagicNumbers implements UnsafeValues {
2024-02-10 02:12:50 +01:00
}
2024-05-23 19:32:02 +02:00
// Paper end - fix custom stats criteria creation
2024-02-10 02:12:50 +01:00
+ // Paper start - expose itemstack tooltip lines
+ @Override
2024-04-25 07:16:04 +02:00
+ public java.util.List<net.kyori.adventure.text.Component> computeTooltipLines(final ItemStack itemStack, final io.papermc.paper.inventory.tooltip.TooltipContext tooltipContext, final org.bukkit.entity.Player player) {
2024-02-10 02:12:50 +01:00
+ Preconditions.checkArgument(tooltipContext != null, "tooltipContext cannot be null");
+ net.minecraft.world.item.TooltipFlag.Default flag = tooltipContext.isAdvanced() ? net.minecraft.world.item.TooltipFlag.ADVANCED : net.minecraft.world.item.TooltipFlag.NORMAL;
+ if (tooltipContext.isCreative()) {
+ flag = flag.asCreative();
+ }
2024-04-26 04:54:07 +02:00
+ final java.util.List<net.minecraft.network.chat.Component> lines = CraftItemStack.asNMSCopy(itemStack).getTooltipLines(
+ net.minecraft.world.item.Item.TooltipContext.of(player == null ? net.minecraft.server.MinecraftServer.getServer().registryAccess() : ((org.bukkit.craftbukkit.entity.CraftPlayer) player).getHandle().level().registryAccess()),
+ player == null ? null : ((org.bukkit.craftbukkit.entity.CraftPlayer) player).getHandle(), flag);
2024-02-10 02:12:50 +01:00
+ return lines.stream().map(io.papermc.paper.adventure.PaperAdventure::asAdventure).toList();
+ }
+ // Paper end - expose itemstack tooltip lines
2024-05-23 19:32:02 +02:00
+
2024-02-10 02:12:50 +01:00
@Override
2024-05-11 23:48:37 +02:00
public String get(Class<?> aClass, String s) {
2024-05-23 19:32:02 +02:00
if (aClass == Enchantment.class) {