如何从地图中删除光标(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);
}
}
一切正常,但红圈里有个小东西我想去掉,但不知道怎么去掉。
我已经尝试过的东西
- 设置空
MapCursorCollection
MapView.setWorld
到一个没人玩的世界
- 使用不可见光标创建
MapCursorCollection
如果有人能帮助我,那就太好了。
提前致谢
要删除光标,您必须删除所有其他地图渲染器或至少 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
,您可以遍历列表并删除它们。
我目前正在开发一个插件,它只将图像渲染到这样的地图:
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);
}
}
一切正常,但红圈里有个小东西我想去掉,但不知道怎么去掉。
我已经尝试过的东西
- 设置空
MapCursorCollection
MapView.setWorld
到一个没人玩的世界- 使用不可见光标创建
MapCursorCollection
如果有人能帮助我,那就太好了。
提前致谢
要删除光标,您必须删除所有其他地图渲染器或至少 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
,您可以遍历列表并删除它们。