86 lines
2.6 KiB
Java
86 lines
2.6 KiB
Java
package net.minecraft.server;
|
|
|
|
import javax.annotation.Nullable;
|
|
|
|
public class EntitySkeletonWither extends EntitySkeletonAbstract {
|
|
|
|
public EntitySkeletonWither(World world) {
|
|
super(EntityTypes.WITHER_SKELETON, world);
|
|
this.setSize(0.7F, 2.4F);
|
|
this.fireProof = true;
|
|
}
|
|
|
|
@Nullable
|
|
protected MinecraftKey getDefaultLootTable() {
|
|
return LootTables.aw;
|
|
}
|
|
|
|
protected SoundEffect D() {
|
|
return SoundEffects.ENTITY_WITHER_SKELETON_AMBIENT;
|
|
}
|
|
|
|
protected SoundEffect d(DamageSource damagesource) {
|
|
return SoundEffects.ENTITY_WITHER_SKELETON_HURT;
|
|
}
|
|
|
|
protected SoundEffect cs() {
|
|
return SoundEffects.ENTITY_WITHER_SKELETON_DEATH;
|
|
}
|
|
|
|
SoundEffect l() {
|
|
return SoundEffects.ENTITY_WITHER_SKELETON_STEP;
|
|
}
|
|
|
|
public void die(DamageSource damagesource) {
|
|
// super.die(damagesource); // CraftBukkit
|
|
if (damagesource.getEntity() instanceof EntityCreeper) {
|
|
EntityCreeper entitycreeper = (EntityCreeper) damagesource.getEntity();
|
|
|
|
if (entitycreeper.isPowered() && entitycreeper.canCauseHeadDrop()) {
|
|
entitycreeper.setCausedHeadDrop();
|
|
this.a((IMaterial) Items.WITHER_SKELETON_SKULL);
|
|
}
|
|
}
|
|
super.die(damagesource); // CraftBukkit - moved from above
|
|
|
|
}
|
|
|
|
protected void a(DifficultyDamageScaler difficultydamagescaler) {
|
|
this.setSlot(EnumItemSlot.MAINHAND, new ItemStack(Items.STONE_SWORD));
|
|
}
|
|
|
|
protected void b(DifficultyDamageScaler difficultydamagescaler) {}
|
|
|
|
@Nullable
|
|
public GroupDataEntity prepare(DifficultyDamageScaler difficultydamagescaler, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) {
|
|
GroupDataEntity groupdataentity1 = super.prepare(difficultydamagescaler, groupdataentity, nbttagcompound);
|
|
|
|
this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(4.0D);
|
|
this.dz();
|
|
return groupdataentity1;
|
|
}
|
|
|
|
public float getHeadHeight() {
|
|
return 2.1F;
|
|
}
|
|
|
|
public boolean B(Entity entity) {
|
|
if (!super.B(entity)) {
|
|
return false;
|
|
} else {
|
|
if (entity instanceof EntityLiving) {
|
|
((EntityLiving) entity).addEffect(new MobEffect(MobEffects.WITHER, 200), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
|
|
protected EntityArrow a(float f) {
|
|
EntityArrow entityarrow = super.a(f);
|
|
|
|
entityarrow.setOnFire(100);
|
|
return entityarrow;
|
|
}
|
|
}
|