Advertisement
Guest User

Untitled

a guest
Feb 11th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. private Minecraft mc = Minecraft.getMinecraft();
  2.  
  3. private Random rand = new Random();
  4. private double yVal;
  5. private boolean airDamaged;
  6. private Timer startTime = new Timer();
  7. private Timer glideTime = new Timer();
  8.  
  9. public boolean require_Air_Damage = true;
  10.  
  11. public boolean motion_Glide = false;
  12. private double preX;
  13. private double preZ;
  14.  
  15. public Glide() {
  16. super("fly", "Fly", 0xFFFF56A3, Category.MOVEMENT, true);
  17. }
  18.  
  19. public void onEnable() {
  20. this.startTime.reset();
  21. if (this.mc.thePlayer.onGround) {
  22. this.airDamaged = false;
  23. damage();
  24. this.yVal = this.mc.thePlayer.posY;
  25. }
  26. if (!require_Air_Damage) {
  27. this.airDamaged = true;
  28. }
  29. EventManager.register(this);
  30. }
  31.  
  32. public void onDisable() {
  33. EventManager.unregister(this);
  34. this.mc.thePlayer.motionY = -0.005D;
  35. }
  36. @EventTarget
  37. public void onPreUpdate(EventPreUpdate event) {
  38. if ((this.mc.thePlayer.hurtTime > 0) && (this.startTime.hasReached(1000L)))
  39. this.airDamaged = true;
  40. }
  41.  
  42. @EventTarget
  43. public void onPreMovePlayer(EventPreMovePlayer event) {
  44. event.setY(motion_Glide ? -0.03126D : event.getY() * 1.0E-013D);
  45. double movementMultiplier = this.mc.thePlayer.capabilities.getFlySpeed() * 20.0D;
  46. if (this.mc.gameSettings.keyBindSneak.getIsKeyPressed())
  47. {
  48. if ((this.airDamaged) || (!BlockHelper.isOnFloor(-0.7D))) {
  49. event.setY(event.getY() - 0.28D * movementMultiplier);
  50. if (!this.mc.thePlayer.onGround) {
  51. this.mc.thePlayer.movementInput.sneak = false;
  52. }
  53. }
  54. }
  55. if ((this.mc.gameSettings.keyBindJump.getIsKeyPressed()) && (this.airDamaged) &&
  56. (this.mc.thePlayer.posY < this.yVal - 0.1D)) {
  57. event.setY(event.getY() + 0.28D * movementMultiplier);
  58. }
  59.  
  60. this.mc.thePlayer.fallDistance = 0.0F;
  61. this.mc.thePlayer.onGround = true;
  62. }
  63.  
  64. @EventTarget
  65. public void onPreMotion(EventPreMotionUpdates event) {
  66. this.preX = this.mc.thePlayer.posX;
  67. this.preZ = this.mc.thePlayer.posZ;
  68.  
  69. if ((this.mc.thePlayer.motionX == 0.0D) && (this.mc.thePlayer.motionZ == 0.0D) && (!this.mc.thePlayer.onGround) && (this.mc.thePlayer.motionY < 0.0D) &&
  70. (this.glideTime.hasReached(1000L))) {
  71. this.mc.thePlayer.posX += (this.rand.nextGaussian() - 0.5D) * 0.1D;
  72. this.mc.thePlayer.posZ += (this.rand.nextGaussian() - 0.5D) * 0.1D;
  73. this.glideTime.reset();
  74. }
  75. }
  76.  
  77. public static void damage() {
  78. double[] d = { 0.2D, 0.24D };
  79. for (int a = 0; a < 100; a++)
  80. for (int i = 0; i < d.length; i++)
  81. mc.thePlayer.sendQueue.addToSendQueue(new C03PacketPlayer.C04PacketPlayerPosition(mc.thePlayer.posX, mc.thePlayer.posY + d[i], mc.thePlayer.posZ, false));
  82. }
  83.  
  84. @EventTarget
  85. public void onPostMotion(EventPostMotionUpdates event) {
  86. this.mc.thePlayer.posX = this.preX;
  87. this.mc.thePlayer.posZ = this.preZ;
  88. }
  89. @EventTarget(4)
  90. public void onSendPacket(EventSendPacket event) {
  91. if ((event.getPacket() instanceof C03PacketPlayer)) {
  92. C03PacketPlayer packet = (C03PacketPlayer)event.getPacket();
  93. packet.field_149474_g = false;
  94. if ((this.airDamaged) &&
  95. (BlockHelper.getBlock(packet.x, Math.ceil(packet.y - 2.0D), packet.z).getMaterial().blocksMovement())) {
  96. double y = Math.ceil(packet.y + 0.1D - 2.0D) + 2.0D;
  97. if (y < this.yVal)
  98. packet.y = y;
  99. }
  100. }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement