Skip to content
Open
5 changes: 5 additions & 0 deletions src/main/java/net/minecraft/server/Entity.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.bukkit.event.vehicle.VehicleBlockCollisionEvent;
import org.bukkit.event.vehicle.VehicleEnterEvent;
import org.bukkit.event.vehicle.VehicleExitEvent;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftPlayer;
Expand Down Expand Up @@ -1878,4 +1879,8 @@ public IChatBaseComponent getScoreboardDisplayName() {
}

public void i(int i) {}

public CraftEntity makeCraftEntity(CraftServer server, Entity entity) {
throw new AssertionError("Unknown entity " + entity == null ? null : entity.getClass());
}
}
76 changes: 40 additions & 36 deletions src/main/java/net/minecraft/server/EntityBlaze.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package net.minecraft.server;

import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftBlaze;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftMushroomCow;

public class EntityBlaze extends EntityMonster {

private float bp = 0.5F;
Expand All @@ -11,6 +16,10 @@ public EntityBlaze(World world) {
this.fireProof = true;
this.b = 10;
}

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftBlaze(server, (EntityBlaze) entity); }

protected void aC() {
super.aC();
Expand Down Expand Up @@ -80,37 +89,44 @@ protected void a(Entity entity, float f) {
double d2 = entity.locZ - this.locZ;

if (this.attackTicks == 0) {
++this.br;
if (this.br == 1) {
this.attackTicks = 60;
this.a(true);
} else if (this.br <= 4) {
this.attackTicks = 6;
} else {
this.attackTicks = 100;
this.br = 0;
this.a(false);
}

if (this.br > 1) {
float f1 = MathHelper.c(f) * 0.5F;

this.world.a((EntityHuman) null, 1009, (int) this.locX, (int) this.locY, (int) this.locZ, 0);

for (int i = 0; i < 1; ++i) {
EntitySmallFireball entitysmallfireball = new EntitySmallFireball(this.world, this, d0 + this.random.nextGaussian() * (double) f1, d1, d2 + this.random.nextGaussian() * (double) f1);

entitysmallfireball.locY = this.locY + (double) (this.length / 2.0F) + 0.5D;
this.world.addEntity(entitysmallfireball);
}
}
setTicks();
shootFireballs(f, d0, d1, d2);
}

this.yaw = (float) (Math.atan2(d2, d0) * 180.0D / 3.1415927410125732D) - 90.0F;
this.bn = true;
}
}

private void setTicks() {
++this.br;
if (this.br == 1) {
this.attackTicks = 60;
aa(true);
} else if (this.br <= 4) {
this.attackTicks = 6;
} else {
this.attackTicks = 100;
this.br = 0;
aa(false);
}
}

private void shootFireballs(float f, double d0, double d1, double d2) {
if (this.br > 1) {
float f1 = MathHelper.c(f) * 0.5F;

this.world.a((EntityHuman) null, 1009, (int) this.locX, (int) this.locY, (int) this.locZ, 0);

for (int i = 0; i < 1; ++i) {
EntitySmallFireball entitysmallfireball = new EntitySmallFireball(this.world, this, d0 + this.random.nextGaussian() * (double) f1, d1, d2 + this.random.nextGaussian() * (double) f1);

entitysmallfireball.locY = this.locY + (double) (this.length / 2.0F) + 0.5D;
this.world.addEntity(entitysmallfireball);
}
}
}

protected void b(float f) {}

protected Item getLoot() {
Expand Down Expand Up @@ -141,18 +157,6 @@ public boolean bZ() {
return (this.datawatcher.getByte(16) & 1) != 0;
}

public void a(boolean flag) {
byte b0 = this.datawatcher.getByte(16);

if (flag) {
b0 = (byte) (b0 | 1);
} else {
b0 &= -2;
}

this.datawatcher.watch(16, Byte.valueOf(b0));
}

protected boolean j_() {
return true;
}
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/net/minecraft/server/EntityChicken.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package net.minecraft.server;

import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftChicken;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftMushroomCow;
import org.bukkit.craftbukkit.util.CraftMagicNumbers; // CraftBukkit

public class EntityChicken extends EntityAnimal {
Expand All @@ -26,6 +30,11 @@ public EntityChicken(World world) {
this.goalSelector.a(7, new PathfinderGoalRandomLookaround(this));
}

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftChicken(server, (EntityChicken) entity);
}

public boolean bj() {
return true;
}
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/net/minecraft/server/EntityCow.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package net.minecraft.server;

// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftCow;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
Expand All @@ -21,6 +25,11 @@ public EntityCow(World world) {
this.goalSelector.a(6, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F));
this.goalSelector.a(7, new PathfinderGoalRandomLookaround(this));
}

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftCow(server, (EntityCow) entity);
}

public boolean bj() {
return true;
Expand Down
69 changes: 69 additions & 0 deletions src/main/java/net/minecraft/server/EntityCreature.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,39 @@

import java.util.UUID;

import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftCreature;
import org.bukkit.craftbukkit.entity.CraftAnimals;
import org.bukkit.craftbukkit.entity.CraftChicken;
import org.bukkit.craftbukkit.entity.CraftCow;
import org.bukkit.craftbukkit.entity.CraftBlaze;
import org.bukkit.craftbukkit.entity.CraftCaveSpider;
import org.bukkit.craftbukkit.entity.CraftCreeper;
import org.bukkit.craftbukkit.entity.CraftEnderman;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftGiant;
import org.bukkit.craftbukkit.entity.CraftHorse;
import org.bukkit.craftbukkit.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.entity.CraftIronGolem;
import org.bukkit.craftbukkit.entity.CraftMonster;
import org.bukkit.craftbukkit.entity.CraftMushroomCow;
import org.bukkit.craftbukkit.entity.CraftOcelot;
import org.bukkit.craftbukkit.entity.CraftPig;
import org.bukkit.craftbukkit.entity.CraftPigZombie;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.entity.CraftSheep;
import org.bukkit.craftbukkit.entity.CraftSilverfish;
import org.bukkit.craftbukkit.entity.CraftSkeleton;
import org.bukkit.craftbukkit.entity.CraftSnowman;
import org.bukkit.craftbukkit.entity.CraftSpider;
import org.bukkit.craftbukkit.entity.CraftSquid;
import org.bukkit.craftbukkit.entity.CraftVillager;
import org.bukkit.craftbukkit.entity.CraftWaterMob;
import org.bukkit.craftbukkit.entity.CraftWitch;
import org.bukkit.craftbukkit.entity.CraftWither;
import org.bukkit.craftbukkit.entity.CraftWolf;
import org.bukkit.craftbukkit.entity.CraftZombie;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.EntityUnleashEvent;
// CraftBukkit end
Expand All @@ -21,6 +52,44 @@ public abstract class EntityCreature extends EntityInsentient {
private PathfinderGoal bs = new PathfinderGoalMoveTowardsRestriction(this, 1.0D);
private boolean bt;

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){

if (entity instanceof EntityAnimal) {
if (entity instanceof EntityTameableAnimal) {
return entity.makeCraftEntity(server, entity);
}
else if (entity instanceof EntitySheep || entity instanceof EntityHorse || entity instanceof EntityChicken || entity instanceof EntityCow) { return entity.makeCraftEntity(server, entity); }

return new CraftAnimals(server, (EntityAnimal) entity);
}
// Monsters
else if (entity instanceof EntityMonster) {
//return new CraftAnimals(server, (EntityAnimal) entity);
if (entity instanceof EntityGiantZombie) { return new CraftGiant(server, (EntityGiantZombie) entity); }
else if (entity instanceof EntityWitch) { return new CraftWitch(server, (EntityWitch) entity); }
else if (entity instanceof EntityWither) { return new CraftWither(server, (EntityWither) entity); }
else if (entity instanceof EntitySpider) {
if (entity instanceof EntityCaveSpider) { return new CraftCaveSpider(server, (EntityCaveSpider) entity); }
else { return new CraftSpider(server, (EntitySpider) entity); }
}

return entity.makeCraftEntity(server, entity);
}
// Water Animals
else if (entity instanceof EntityWaterAnimal) {
if (entity instanceof EntitySquid) { return new CraftSquid(server, (EntitySquid) entity); }
else { return new CraftWaterMob(server, (EntityWaterAnimal) entity); }
}
else if (entity instanceof EntityGolem) {
if (entity instanceof EntitySnowman) { return new CraftSnowman(server, (EntitySnowman) entity); }
else if (entity instanceof EntityIronGolem) { return new CraftIronGolem(server, (EntityIronGolem) entity); }
}
else if (entity instanceof EntityVillager) { return new CraftVillager(server, (EntityVillager) entity); }

return new CraftCreature(server, (EntityCreature) entity);
}

public EntityCreature(World world) {
super(world);
}
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/net/minecraft/server/EntityCreeper.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package net.minecraft.server;

// CraftBukkit start
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftCreeper;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftMushroomCow;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.entity.ExplosionPrimeEvent;
// CraftBukkit end
Expand All @@ -25,6 +29,10 @@ public EntityCreeper(World world) {
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget(this, EntityHuman.class, 0, true));
this.targetSelector.a(2, new PathfinderGoalHurtByTarget(this, false));
}

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftCreeper(server, (EntityCreeper) entity); }

protected void aC() {
super.aC();
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/net/minecraft/server/EntityEnderman.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

// CraftBukkit start
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftEnderman;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftMushroomCow;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.entity.EntityTeleportEvent;
// CraftBukkit end
Expand All @@ -30,6 +34,10 @@ protected void aC() {
this.getAttributeInstance(GenericAttributes.d).setValue(0.30000001192092896D);
this.getAttributeInstance(GenericAttributes.e).setValue(7.0D);
}

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftEnderman(server, (EntityEnderman) entity); }

protected void c() {
super.c();
Expand Down
9 changes: 9 additions & 0 deletions src/main/java/net/minecraft/server/EntityHorse.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
import java.util.Iterator;
import java.util.List;

import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftHorse;
import org.bukkit.craftbukkit.entity.CraftMushroomCow;
// CraftBukkit start
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.entity.EntityDamageEvent;
Expand Down Expand Up @@ -57,6 +61,11 @@ public EntityHorse(World world) {
this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this));
this.loadChest();
}

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftHorse(server, (EntityHorse) entity);
}

protected void c() {
super.c();
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/net/minecraft/server/EntityHuman.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@
import net.minecraft.util.com.google.common.base.Charsets;
import net.minecraft.util.com.mojang.authlib.GameProfile;

import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftEntity;
// CraftBukkit start
import org.bukkit.craftbukkit.entity.CraftHumanEntity;
import org.bukkit.craftbukkit.entity.CraftItem;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.inventory.CraftItemStack;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityCombustByEntityEvent;
Expand Down Expand Up @@ -67,6 +70,11 @@ public CraftHumanEntity getBukkitEntity() {
private int h;
private final GameProfile i;
public EntityFishingHook hookedFish;

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftPlayer(server, (EntityPlayer) entity);
}

public EntityHuman(World world, GameProfile gameprofile) {
super(world);
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/net/minecraft/server/EntityLiving.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
import java.util.Random;
import java.util.UUID;

import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.entity.CraftEntity;
import org.bukkit.craftbukkit.entity.CraftHumanEntity;
// CraftBukkit start
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.event.entity.EntityDamageEvent;
Expand Down Expand Up @@ -78,6 +81,11 @@ public abstract class EntityLiving extends Entity {
public int expToDrop;
public int maxAirTicks = 300;
// CraftBukkit end

@Override
public CraftEntity makeCraftEntity(CraftServer server, Entity entity){
return new CraftHumanEntity(server, (EntityHuman) entity);
}

public EntityLiving(World world) {
super(world);
Expand Down
Loading