Don't show a player on map if they're vanished. Fixes BUKKIT-1882

This commit is contained in:
Travis Watkins 2012-11-17 10:31:13 -06:00
parent 2d832bf148
commit 20c074ec6c

View file

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