package dark.lib; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.DamageSource; public class OtherDamageSource extends DamageSource { protected Object damageSource; public OtherDamageSource(String damageName, Object attacker) { super(damageName); this.damageSource = attacker; } @Override public Entity getEntity() { return damageSource instanceof Entity ? ((Entity) damageSource) : null; } public TileEntity getTileEntity() { return damageSource instanceof TileEntity ? ((TileEntity) damageSource) : null; } @Override public boolean isDifficultyScaled() { return this.damageSource != null && this.damageSource instanceof EntityLiving && !(this.damageSource instanceof EntityPlayer); } @Override public OtherDamageSource setProjectile() { super.setProjectile(); return this; } public static OtherDamageSource doBulletDamage(Object object) { return new OtherDamageSource("Bullets", object).setProjectile(); } public static OtherDamageSource doLaserDamage(Object object) { return new OtherDamageSource("Laser", object).setProjectile(); } }