Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import:
- java.lang.Math
- java.util.Random
- org.bukkit.event.entity.CreatureSpawnEvent
- org.bukkit.event.entity.CreatureSpawnEvent$SpawnReason
- net.minecraft.server.v1_12_R1.PathfinderGoalMeleeAttack
- net.minecraft.server.v1_12_R1.PathfinderGoalNearestAttackableTarget
- on load:
- loop all entities:
- loop-entity is a chicken
- loop ...loop-entity.getHandle().goalSelector!.b!:
- loop-value-2.a!.getClass().getCanonicalName() is "net.minecraft.server.v1_12_R1.PathfinderGoalPanic"
- loop-entity.getHandle().goalSelector!.b!.remove(loop-value-2)
- stop loop
- loop-entity.getHandle().goalSelector!.a(1, new PathfinderGoalMeleeAttack(loop-entity.getHandle(), 1.2, true))
- loop-entity.getHandle().targetSelector!.a(0, new PathfinderGoalNearestAttackableTarget(loop-entity.getHandle(), (java class "net.minecraft.server.v1_12_R1.EntityHuman"), true))
- on spawn of chicken:
- loop ...event-entity.getHandle().goalSelector!.b!:
- loop-value.a!.getClass().getCanonicalName() is "net.minecraft.server.v1_12_R1.PathfinderGoalPanic"
- event-entity.getHandle().goalSelector!.b!.remove(loop-value)
- stop loop
- event-entity.getHandle().goalSelector!.a(1, new PathfinderGoalMeleeAttack(event-entity.getHandle(), 1.2, true))
- event-entity.getHandle().targetSelector!.a(0, new PathfinderGoalNearestAttackableTarget(event-entity.getHandle(), (java class "net.minecraft.server.v1_12_R1.EntityHuman"), true))
- on target:
- event-entity is a chicken
- event-entity is not adult
- cancel event
- on packet event play_server_entity_look:
- set {_entity} to player's world pentity 0 of event-packet
- target of {_entity} is set
- {_entity} is a chicken
- set {_yaw} to yaw of {_entity}+180
- set byte pnum 0 of event-packet to floor((check [{_yaw} >= 360] ? {_yaw}-360 : {_yaw})*256/360)
- on packet event play_server_rel_entity_move_look:
- set {_entity} to player's world pentity 0 of event-packet
- target of {_entity} is set
- {_entity} is a chicken
- set {_yaw} to yaw of {_entity}+180
- set byte pnum 0 of event-packet to floor((check [{_yaw} >= 360] ? {_yaw}-360 : {_yaw})*256/360)
- every tick:
- loop all entities:
- loop-entity is a chicken
- loop-entity is alive
- loop-entity is adult
- target of loop-entity is set
- set {_loc} to loop-entity's head
- set {_rand1} to random number between -10 and 10
- set {_rand2} to random number between -10 and 10
- set {_d} to Math.cos(Math.toRadians({_rand2}))
- set {_x} to Math.sin(Math.toRadians({_rand1})*-1)*{_d}
- set {_y} to Math.sin(Math.toRadians({_rand2})*-1)
- set {_z} to Math.cos(Math.toRadians({_rand1}))*{_d}
- set {_v} to new vector from {_x}, {_y}, {_z}
- set {_a} to Math.atan2({_z}, {_y})+Math.toRadians(pitch of loop-entity)
- set {_sqrt} to Math.sqrt(Math.pow({_y}, 2)+Math.pow({_z}, 2))
- set z of {_v} to Math.sin({_a})*{_sqrt}
- set y of {_v} to Math.cos({_a})*{_sqrt}
- set {_z} to z of {_v}
- set {_a} to Math.atan2({_z}, {_x})+Math.toRadians(yaw of loop-entity)
- set {_sqrt} to Math.sqrt(Math.pow({_x}, 2)+Math.pow({_z}, 2))
- set x of {_v} to Math.cos({_a})*{_sqrt}
- set z of {_v} to Math.sin({_a})*{_sqrt}
- set yaw of {_loc} to vector yaw of {_v}
- set pitch of {_loc} to vector pitch of {_v}
- shoot a egg from {_loc} with speed 1
- set shooter of shot projectile to loop-entity
- add "egg_bullet" to scoreboard tags of shot projectile
- play sound "entity.chicken.egg" to all players at loop-entity with volume 1 pitch 1
- on projectile hit:
- projectile is an egg
- if projectile has scoreboard tag "egg_bullet":
- event.getHitEntity() is set
- event.getHitEntity().setNoDamageTicks(0)
- else:
- chance of 12.5%
- spawn a chicken at projectile
- (last spawned chicken).setBaby()
- on damage:
- projectile is an egg
- projectile has scoreboard tag "egg_bullet"
- set damage to 0.5
- on CreatureSpawnEvent:
- event.getSpawnReason() is SpawnReason.EGG!
- cancel event
Advertisement
Add Comment
Please, Sign In to add comment