akon1248

superchicken

Oct 12th, 2019
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. import:
  2. java.lang.Math
  3. java.util.Random
  4. org.bukkit.event.entity.CreatureSpawnEvent
  5. org.bukkit.event.entity.CreatureSpawnEvent$SpawnReason
  6. net.minecraft.server.v1_12_R1.PathfinderGoalMeleeAttack
  7. net.minecraft.server.v1_12_R1.PathfinderGoalNearestAttackableTarget
  8. on load:
  9. loop all entities:
  10. loop-entity is a chicken
  11. loop ...loop-entity.getHandle().goalSelector!.b!:
  12. loop-value-2.a!.getClass().getCanonicalName() is "net.minecraft.server.v1_12_R1.PathfinderGoalPanic"
  13. loop-entity.getHandle().goalSelector!.b!.remove(loop-value-2)
  14. stop loop
  15. loop-entity.getHandle().goalSelector!.a(1, new PathfinderGoalMeleeAttack(loop-entity.getHandle(), 1.2, true))
  16. loop-entity.getHandle().targetSelector!.a(0, new PathfinderGoalNearestAttackableTarget(loop-entity.getHandle(), (java class "net.minecraft.server.v1_12_R1.EntityHuman"), true))
  17. on spawn of chicken:
  18. loop ...event-entity.getHandle().goalSelector!.b!:
  19. loop-value.a!.getClass().getCanonicalName() is "net.minecraft.server.v1_12_R1.PathfinderGoalPanic"
  20. event-entity.getHandle().goalSelector!.b!.remove(loop-value)
  21. stop loop
  22. event-entity.getHandle().goalSelector!.a(1, new PathfinderGoalMeleeAttack(event-entity.getHandle(), 1.2, true))
  23. event-entity.getHandle().targetSelector!.a(0, new PathfinderGoalNearestAttackableTarget(event-entity.getHandle(), (java class "net.minecraft.server.v1_12_R1.EntityHuman"), true))
  24. on target:
  25. event-entity is a chicken
  26. event-entity is not adult
  27. cancel event
  28. on packet event play_server_entity_look:
  29. set {_entity} to player's world pentity 0 of event-packet
  30. target of {_entity} is set
  31. {_entity} is a chicken
  32. set {_yaw} to yaw of {_entity}+180
  33. set byte pnum 0 of event-packet to floor((check [{_yaw} >= 360] ? {_yaw}-360 : {_yaw})*256/360)
  34. on packet event play_server_rel_entity_move_look:
  35. set {_entity} to player's world pentity 0 of event-packet
  36. target of {_entity} is set
  37. {_entity} is a chicken
  38. set {_yaw} to yaw of {_entity}+180
  39. set byte pnum 0 of event-packet to floor((check [{_yaw} >= 360] ? {_yaw}-360 : {_yaw})*256/360)
  40. every tick:
  41. loop all entities:
  42. loop-entity is a chicken
  43. loop-entity is alive
  44. loop-entity is adult
  45. target of loop-entity is set
  46. set {_loc} to loop-entity's head
  47. set {_rand1} to random number between -10 and 10
  48. set {_rand2} to random number between -10 and 10
  49. set {_d} to Math.cos(Math.toRadians({_rand2}))
  50. set {_x} to Math.sin(Math.toRadians({_rand1})*-1)*{_d}
  51. set {_y} to Math.sin(Math.toRadians({_rand2})*-1)
  52. set {_z} to Math.cos(Math.toRadians({_rand1}))*{_d}
  53. set {_v} to new vector from {_x}, {_y}, {_z}
  54. set {_a} to Math.atan2({_z}, {_y})+Math.toRadians(pitch of loop-entity)
  55. set {_sqrt} to Math.sqrt(Math.pow({_y}, 2)+Math.pow({_z}, 2))
  56. set z of {_v} to Math.sin({_a})*{_sqrt}
  57. set y of {_v} to Math.cos({_a})*{_sqrt}
  58. set {_z} to z of {_v}
  59. set {_a} to Math.atan2({_z}, {_x})+Math.toRadians(yaw of loop-entity)
  60. set {_sqrt} to Math.sqrt(Math.pow({_x}, 2)+Math.pow({_z}, 2))
  61. set x of {_v} to Math.cos({_a})*{_sqrt}
  62. set z of {_v} to Math.sin({_a})*{_sqrt}
  63. set yaw of {_loc} to vector yaw of {_v}
  64. set pitch of {_loc} to vector pitch of {_v}
  65. shoot a egg from {_loc} with speed 1
  66. set shooter of shot projectile to loop-entity
  67. add "egg_bullet" to scoreboard tags of shot projectile
  68. play sound "entity.chicken.egg" to all players at loop-entity with volume 1 pitch 1
  69. on projectile hit:
  70. projectile is an egg
  71. if projectile has scoreboard tag "egg_bullet":
  72. event.getHitEntity() is set
  73. event.getHitEntity().setNoDamageTicks(0)
  74. else:
  75. chance of 12.5%
  76. spawn a chicken at projectile
  77. (last spawned chicken).setBaby()
  78. on damage:
  79. projectile is an egg
  80. projectile has scoreboard tag "egg_bullet"
  81. set damage to 0.5
  82. on CreatureSpawnEvent:
  83. event.getSpawnReason() is SpawnReason.EGG!
  84. cancel event
Advertisement
Add Comment
Please, Sign In to add comment