【发布时间】:2017-04-10 14:26:52
【问题描述】:
我正在使用 Spigot 1.11.2。
我有这个简单的代码:
@EventHandler
public void onPlayerInteractEntity (PlayerInteractEntityEvent event) {
if (entity instanceof AbstractHorse) {
event.setCancelled(true);
AbstractHorse horse = (AbstractHorse) event.getRightClicked();
Player player = event.getPlayer();
player.sendMessage(horse.getName());
}
}
它应该做的是如果我右键单击一匹马,我应该得到它的名字但我不应该骑它,因为event.setCancelled(true)。它按预期工作,但问题是当我右键单击一匹马时,游戏将我的视野(我的玩家的偏航)转向某个不一致的数字。然而我不想转身;在我右键单击马匹后,我仍然希望我的玩家能够看到我正在看的地方(在这种情况下是马)。
我尝试了一些方法,比如保存我的俯仰和偏航,然后在取消事件后重新设置:
@EventHandler
public void onPlayerInteractEntity (PlayerInteractEntityEvent event) {
Player player = event.getPlayer();
float pitch = player.getLocation().getPitch();
float yaw = player.getLocation().getYaw();
if (entity instanceof AbstractHorse) {
event.setCancelled(true);
player.getLocation().setPitch(pitch);
player.getLocation().setYaw(yaw);
AbstractHorse horse = (AbstractHorse) event.getRightClicked();
player.sendMessage(horse.getName());
}
}
同样尝试保存玩家的方向(通过player.getLocation().getDirection()),然后在取消事件后再次设置,但无济于事。我在这里做错了吗?或者这是一个错误?
【问题讨论】:
标签: java plugins minecraft bukkit