Bukkit для обнаружения движения головы игрока

#java #bukkit

#java #bukkit

Вопрос:

сегодня я здесь, чтобы задать вам вопрос, в частности, о Minecraft в разработке PaperMc (вилка Bukkit) я пытаюсь создать эффект «анимации», подобный знаменитому гипиксельному лутбоксу (фаза открытия), поэтому мне нужно было знать, как я могу идентифицировать событие PlayerHeadMovement. Я пытался с

 @EventHandler
public void onPlayerMove(PlayerMoveEvent e) {
  System.out.println("A");
}
 

Но, похоже, не обнаруживает движение головы.

Ответ №1:

Нет события, которое специально фокусировалось бы на движении головы игрока.

Однако вы можете в PlayerMoveEvent получать перемещения от и до.

Итак, чтобы увидеть, переместилась ли голова игрока, ваш код может выглядеть следующим образом:

 private boolean hasPlayerHeadMoved(PlayerMoveEvent e) {
  Location from = e.getFrom();
  Location to = e.getTo();
  return from.getYaw() != to.getYaw() || from.getPitch() != to.getPitch();
}
 

Затем в вашем обработчике событий вы должны вызвать метод:

 @EventHandler
public void onPlayerMove(PlayerMoveEvent e) {
  boolean headHasMoved = hasPlayerHeadMoved(e);
}