Advertisement
Guest User

Untitled

a guest
May 2nd, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. @EventHandler
  2. public void onShoot(EntityShootBowEvent event) {
  3. if (event.getEntity() instanceof Player) {
  4. Player player = (Player) event.getEntity();
  5.  
  6. GamePlayer gamePlayer = getPlugin().getParent().getGameManager().getGamePlayer(player.getUniqueId());
  7.  
  8. if(gamePlayer == null) {
  9. return;
  10. }
  11.  
  12. if(gamePlayer.getGame().getState() == GameState.IN_GAME && gamePlayer.getPlayerState() == PlayerState.IN_GAME) {
  13. SkillData skillData = getPlugin().getDataManager().load(player.getUniqueId(), player.getName());
  14.  
  15. if (skillData.haveSkill(this) && checkChance(skillData.getLevel(this))) {
  16. Arrow right = player.launchProjectile(Arrow.class);
  17. Arrow left = player.launchProjectile(Arrow.class);
  18.  
  19. BlockFace direction = getDirection(player.getLocation().getYaw());
  20.  
  21. if(direction == null) {
  22. return;
  23. }
  24.  
  25. if (direction == BlockFace.EAST || direction == BlockFace.WEST) {
  26. right.setVelocity(new Vector(right.getVelocity().getX(), right.getVelocity().getY(), right.getVelocity().getZ() - 0.3D));
  27. left.setVelocity(new Vector(left.getVelocity().getX(), left.getVelocity().getY(), left.getVelocity().getZ() + 0.3D));
  28. } else {
  29. right.setVelocity(new Vector(right.getVelocity().getX() - 0.3D, right.getVelocity().getY(), right.getVelocity().getZ()));
  30. left.setVelocity(new Vector(left.getVelocity().getX() + 0.3D, left.getVelocity().getY(), left.getVelocity().getZ()));
  31. }
  32. }
  33. }
  34. }
  35. }
  36.  
  37. public BlockFace getDirection(Float yaw) {
  38. yaw = yaw / 90.0F;
  39. yaw = (float) Math.round(yaw.floatValue());
  40. if ((yaw == -4.0F) || (yaw == 0.0F) || (yaw == 4.0F)) {
  41. return BlockFace.SOUTH;
  42. }
  43. if ((yaw == -1.0F) || (yaw == 3.0F)) {
  44. return BlockFace.EAST;
  45. }
  46. if ((yaw == -2.0F) || (yaw == 2.0F)) {
  47. return BlockFace.NORTH;
  48. }
  49. if ((yaw == -3.0F) || (yaw == 1.0F)) {
  50. return BlockFace.WEST;
  51. }
  52.  
  53. return null;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement