From 20c074ec6c71863d50165338999795a226435254 Mon Sep 17 00:00:00 2001 From: Travis Watkins Date: Sat, 17 Nov 2012 10:31:13 -0600 Subject: [PATCH] Don't show a player on map if they're vanished. Fixes BUKKIT-1882 --- .../org/bukkit/craftbukkit/map/CraftMapRenderer.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java b/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java index 0272462d34..81abeb5593 100644 --- a/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java +++ b/src/main/java/org/bukkit/craftbukkit/map/CraftMapRenderer.java @@ -3,6 +3,7 @@ package org.bukkit.craftbukkit.map; import net.minecraft.server.WorldMap; import net.minecraft.server.WorldMapDecoration; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.map.MapCanvas; import org.bukkit.map.MapCursorCollection; @@ -32,8 +33,15 @@ public class CraftMapRenderer extends MapRenderer { while (cursors.size() > 0) { cursors.removeCursor(cursors.getCursor(0)); } - for (Object object : worldMap.g.values()) { - WorldMapDecoration decoration = (WorldMapDecoration) object; + + for (Object key : worldMap.g.keySet()) { + // If this cursor is for a player check visibility with vanish system + Player other = Bukkit.getPlayerExact((String) key); + if (other != null && !player.canSee(other)) { + continue; + } + + WorldMapDecoration decoration = (WorldMapDecoration) worldMap.g.get(key); cursors.addCursor(decoration.locX, decoration.locY, (byte) (decoration.rotation & 15), (byte) (decoration.type)); } }