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.
This commit is contained in:
Amaury Carrade 2019-10-26 18:12:05 +02:00
parent b05335359a
commit 6db87b5f3e
2 changed files with 16 additions and 2 deletions

View File

@ -64,6 +64,7 @@
<groupId>fr.zcraft</groupId>
<artifactId>zlib</artifactId>
<version>0.99-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -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);