如何从地图中删除光标(Bukkit)

How to remove cursor from a Map (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);
    }
}

一切正常,但红圈里有个小东西我想去掉,但不知道怎么去掉。

我已经尝试过的东西

如果有人能帮助我,那就太好了。

提前致谢

要删除光标,您必须删除所有其他地图渲染器或至少 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,您可以遍历列表并删除它们。