2017-06-06 50 views
4

我目前正在开发的一个插件,只呈现图像的地图是这样的:如何从一个地图(Bukkit)删除光标

public class MapRendererTest extends MapRenderer { 

    private Image image; 

    public MapRendererTest(File file) { 
     try { 
      this.image = ImageIO.read(file); 
     } 
     catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public void render(MapView mapView, MapCanvas mapCanvas, Player player) { 
     mapCanvas.drawImage(0, 0, image); 
    } 
} 

一切工作正常,但有这个小东西在红圈,我想删除,但我不知道如何。

T

事情我已经尝试过

  • 设置的emtpy MapCursorCollection
  • MapView.setWorld这个世界里,没有人是玩。
  • 与无形光标

这将是惊人的,如果有人可以帮助我与创建MapCursorCollection。提前

回答

2

感谢为了摆脱光标,你必须删除所有其他地图渲染器或至少CraftMapRanderer

为了做到这一点,你必须做到以下几点:

@EventHandler 
public void onMapInitialized(MapInitializeEvent e) { 
    e.getMap().removeRenderer(e.getMap().getRenderers().get(0)); 
    e.getMap().addRenderer(new MapRendererTest(new File(Main.getInstance().getDataFolder() + "/image.png"))); 
} 

当然,这仅适用于如果没有分配给这个地图没有其他的自定义地图渲染,所以只有注册是CraftMapRenderer

如果您有多个MapRenderers,您可以遍历列表并将其删除。