我在Bukkit工作,基本上我需要做一个方法,这样当一个标志被正确点击时,它就会做一些事情。在这种情况下,它将是一个工具包的清单,但我会通过桥,当我来到它。
现在,我很困惑如何用右键点击标志来让他们去做事情。我想我应该得到正确的点击块,检查它是否是一个标志,然后检查标牌上写了什么。然而,我不知道如何将它识别为一个符号,因为我对2种符号材料的存在感到困惑,SIGN和SIGN_POST。在那之后,我需要打电话给什么特别的活动吗?
如果你知道我有一个很好的参考资料,请在评论中发表意见。但是我到处都查过了,我发现的都是愚蠢的SignChangeEvent,这不是我需要的。所有的帮助都非常感谢!
发布于 2013-08-13 23:14:20
您应该使用块类型it来确认它是一个标志。有两个标识标识,一个是墙上的标志(68),另一个是站在柱子上的标志(63)。使用PlayerInteractEvent检查玩家是否右击了标志。检查玩家是否右击了一个街区。检查右击的块是否有63或68的ID。将阻塞状态抛到一个标志上。做你想做的事。如果您更改了符号上的文本,请确保在之后更新它,否则文本将不会出现。下面是您应该使用的Player侦听器函数。
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
if(event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
if(event.getClickedBlock().getTypeId() == 63 || event.getClickedBlock().getTypeId() == 68) {
Sign sign = (Sign) event.getClickedBlock().getState();
sign.setLine(0, "Boo Yeah");
sign.update();
// Do other stuff if you need to
}
}
}https://stackoverflow.com/questions/18213718
复制相似问题