Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CustomPathfinderGoalMeleeAttack extends PathfinderGoal {
- World a;
- private String playerOwner;
- EntityCreature b;
- int c;
- double d;
- boolean e;
- PathEntity f;
- Class g;
- private int h;
- private double i;
- private double j;
- private double k;
- public CustomPathfinderGoalMeleeAttack(EntityCreature entitycreature, Class oclass, double d0, boolean flag, String playerOwner) {
- this(entitycreature, d0, flag);
- this.g = oclass;
- this.playerOwner = playerOwner;
- }
- public CustomPathfinderGoalMeleeAttack(EntityCreature entitycreature, double d0, boolean flag) {
- this.b = entitycreature;
- this.a = entitycreature.world;
- this.d = d0;
- this.e = flag;
- this.a(3);
- }
- public boolean a() {
- EntityLiving entityliving = this.b.getGoalTarget();
- if (entityliving == null) {
- return false;
- } else if (!entityliving.isAlive()) {
- return false;
- } else if (this.g != null && !this.g.isAssignableFrom(entityliving.getClass())) {
- return false;
- } else if(entityliving.getName().equalsIgnoreCase(this.playerOwner)) {
- return false;
- } else {
- this.f = this.b.getNavigation().a(entityliving);
- return this.f != null;
- }
- }
- @SuppressWarnings("unchecked")
- public boolean b() {
- EntityLiving entityliving = this.b.getGoalTarget();
- return entityliving == null ? false : entityliving.getName().equalsIgnoreCase(this.playerOwner) ? false : (!entityliving.isAlive() ? false : (!this.e ? !this.b.getNavigation().g() : this.b.b(MathHelper.floor(entityliving.locX), MathHelper.floor(entityliving.locY), MathHelper.floor(entityliving.locZ))));
- }
- public void c() {
- this.b.getNavigation().a(this.f, this.d);
- this.h = 0;
- }
- public void d() {
- this.b.getNavigation().h();
- }
- public void e() {
- EntityLiving entityliving = this.b.getGoalTarget();
- this.b.getControllerLook().a(entityliving, 30.0F, 30.0F);
- double d0 = this.b.e(entityliving.locX, entityliving.boundingBox.b, entityliving.locZ);
- double d1 = (double) (this.b.width * 2.0F * this.b.width * 2.0F + entityliving.width);
- Bukkit.getPlayer(entityliving.getName()).sendMessage("entity is tracking you");
- --this.h;
- if ((this.e || this.b.getEntitySenses().canSee(entityliving)) && this.h <= 0 && (this.i == 0.0D && this.j == 0.0D && this.k == 0.0D || entityliving.e(this.i, this.j, this.k) >= 1.0D || this.b.aI().nextFloat() < 0.05F)) {
- this.i = entityliving.locX;
- this.j = entityliving.boundingBox.b;
- this.k = entityliving.locZ;
- this.h = 4 + this.b.aI().nextInt(7);
- if (d0 > 1024.0D) {
- this.h += 10;
- } else if (d0 > 256.0D) {
- this.h += 5;
- }
- if (!this.b.getNavigation().a((Entity) entityliving, this.d)) {
- this.h += 15;
- }
- }
- this.c = Math.max(this.c - 1, 0);
- if (d0 <= d1 && this.c <= 20) {
- this.c = 20;
- if (this.b.be() != null) {
- this.b.ba();
- }
- this.b.m(entityliving);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement