From 6db87b5f3e68888412c03e32fbb3cff7eaa47898 Mon Sep 17 00:00:00 2001 From: Amaury Carrade Date: Sat, 26 Oct 2019 18:12:05 +0200 Subject: [PATCH] Maps names are no longer visible when on a frame - Fixed a regression where the map's name was visible when hovering the map on the wall. The name is still visible if the map was manually renamed by the player. --- pom.xml | 1 + .../moribus/imageonmap/ui/MapItemManager.java | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a365b5f..e8367d9 100644 --- a/pom.xml +++ b/pom.xml @@ -64,6 +64,7 @@ fr.zcraft zlib 0.99-SNAPSHOT + compile diff --git a/src/main/java/fr/moribus/imageonmap/ui/MapItemManager.java b/src/main/java/fr/moribus/imageonmap/ui/MapItemManager.java index 9ce621f..95c0005 100644 --- a/src/main/java/fr/moribus/imageonmap/ui/MapItemManager.java +++ b/src/main/java/fr/moribus/imageonmap/ui/MapItemManager.java @@ -24,7 +24,6 @@ import fr.moribus.imageonmap.map.PosterMap; import fr.moribus.imageonmap.map.SingleMap; import fr.zcraft.zlib.components.i18n.I; import fr.zcraft.zlib.core.ZLib; -import fr.zcraft.zlib.tools.PluginLogger; import fr.zcraft.zlib.tools.items.ItemStackBuilder; import fr.zcraft.zlib.tools.items.ItemUtils; import org.bukkit.*; @@ -37,6 +36,7 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.MapMeta; import java.util.ArrayDeque; @@ -238,7 +238,20 @@ public class MapItemManager implements Listener } else { - frame.setItem(mapItem); + // If the item has a display name, bot not one from an anvil by the player, we remove it + // si it is not displayed on hover on the wall. + if (mapItem.hasItemMeta() && mapItem.getItemMeta().hasDisplayName() && mapItem.getItemMeta().getDisplayName().startsWith("§r")) + { + final ItemStack frameItem = mapItem.clone(); + final ItemMeta meta = frameItem.getItemMeta(); + + meta.setDisplayName(null); + frameItem.setItemMeta(meta); + + frame.setItem(frameItem); + } + + else frame.setItem(mapItem); } ItemUtils.consumeItem(player);