创建一个可以用尖嘴识别的独特块的最佳方法是什么?
类似于id的东西。我想创建一个可以放置物品的游戏,但是我不知道如何识别玩家是否点击了正确的方块。当没有更好的方法时,我会使用方块类型/材料
我不是100%你需要的,所以我提供了两个答案,我相信可以解决你的问题,以及一些可能有帮助的额外信息。
我相信你要找的是一个监听器
。这是一个关于如何设置监听器的Spigot文章的链接。我想先看看它,这样你就知道监听器
是什么,它是如何工作的,以及如何将它添加到你的代码中(如果你还不知道的话)。
您要查找的特定监听器
称为PlayerInteractEvent
。它是玩家与对象交互时调用的事件。这是留档。
如果你只是想检查一个玩家是否点击了一个特定的块,你可以使用getClickedBlock()
和getType()
方法来做到这一点。我在下面提供了一个示例实现。代码检查玩家是否点击了石头,然后如果他们点击了石头,就会执行一个动作。
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
if (event.getClickedBlock() != null && event.getClickedBlock().getType() == Material.STONE) {
// Actions to take here
}
}
根据你想要多少个独特的块,有几种不同的方法可以进行自定义块检查。根据我目前掌握的知识,我不是100%确定如何实现这些(我只是做了一点研究来找到它们),但它们应该适合你的需求)。
第一种方法是使用HashMap
,它允许您存储键和值,然后访问或引用它们。这是有关如何在Spigot中实现它们的链接。
您可以使用的另一件事是SpigotAPI中的材料
类。这是该类的文档。