如何从Map中删除游标(Bukkit)

时间:2017-06-06 15:43:38

标签: java 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

如果有人可以帮助我,那就太棒了。

提前致谢

1 个答案:

答案 0 :(得分: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,则可以遍历列表并将其删除。