当前位置: 首页 > 知识库问答 >
问题:

如何从Minecraft中的Block事件中获得块位置-Spigot

曾新立
2023-03-14

在为Minecraft制作插件的过程中,我发现了一个似乎无法克服的问题。所以问题是,我想得到放置的菱形块的位置,这样我就可以在该块周围检查其他块。我想做一个自动化农业插件
“到目前为止,我一直试图用

public void OnDiaBlockPlace(BlockPlaceEvent e){
    Block b = e.getBlock();
    b.getPosition();
}


public void onPlantGrow(BlockGrowEvent e){
    Block b = e.getBlock();
    b.getPosition();
}


但是b.getPosition() 在spigot/craftbukkit API中不存在<我只是想知道是否有办法解决这个问题,以及如何解决这个问题。

TL/DR:我如何从BlockPlaceEvents或Block成长事件中获得x,y,z格式的块位置?

提前感谢大家。

编辑:工作代码:

public void onPlantGrow(BlockGrowEvent e){
    Block b = e.getBlock();
    int x = b.getLocation().getBlockX();
    int y = b.getLocation().getBlockY();
    int z = b.getLocation().getBlockZ();
}

共有1个答案

东门清夷
2023-03-14

这将为您获取该块的位置

Location blockLocation = b.getLocation();

Location类允许您使用getBlockX()getBlockY()getBlockZ()以及getWorld()和其他(参考)工具访问坐标。

如果你想使用区域坐标,你可以在你的区块位置上使用:

RegionCoordinates regionCoords = RegionCoordinates.fromLocation(blockLocation);
 类似资料:
  • 我正在为android应用程序开发一个Flutter模块,该模块使用Geolocatore获取设备的当前位置。但当flutter模块初始化时,我得到了以下错误: location_permissions:无法检测当前activity 我已经将这两行添加到AndroidManifest文件中(用于Android应用程序和flutter模块2) 我使用这个函数来获取当前位置

  • 我试图保存并加载jsPlumb流程图,但在重新创建连接时遇到问题。当我尝试加载时,它们彼此重叠。图1显示了我如何保存流程图,图2显示了如何加载流程图。 我已经看过这个主题和这个主题,并且使用和或或简单不起作用。如果我用打印它,它会显示。我不知道这是关于版本还是其他什么的,但看起来“anchor”没有“x”和“y”。我使用的是jsPlumb 1.5.5

  • 下面是我已经拥有的代码:

  • 问题内容: 我在Windows上使用Python,并且希望脚本的一部分将文件从某个目录(我知道其路径)复制到桌面。 我用这个: txt文件的名称为While (具有完整路径)。 我得到错误: 有什么帮助吗? 我希望脚本可以在任何计算机上运行。 问题答案: 您可以用来获取路径。现在,它实际上是在尝试查找而不替换实际路径。 也许像这样:

  • 我正在使用Minecraft Forge编写一个Minecraft模块。 我可以使用 但是,现在我有了块,我如何找出元数据?如果块是StoneSteps块,那么我想知道它的方向,它保存在元数据中。 类似地,如何设置该值?我可以简单地创建一个新块: 但是,我现在如何将此块设置为特定方向?我知道您可以在创建ItemStack时执行此操作,但在这种情况下,我想要一个可以传递给的Block对象。 我似乎找

  • 问题内容: 是否可以在页面加载后使用JavaScript获取鼠标位置而没有任何鼠标移动事件(不移动鼠标)? 问题答案: 真正的答案:不,不可能。 好的,我刚刚想到了一种方法。用覆盖整个文档的div覆盖页面。在其中,创建(例如)2,000 x 2,000个元素(以便该伪类将在IE 6中运行),每个元素的大小为1像素。为那些更改属性的元素创建CSS 规则(比如说)。在您的负载处理程序中,循环浏览这40