Xwaffle Posted June 30, 2013 Posted June 30, 2013 Well I am making a custom Fishing rod, and the EntityHook is thrown out perfectly fine, but when I try to retract the fishing rod this is what happens. It just keeps throwing out a new entity. I could use some help. The only class I think that should be needed is the Entity Class. package pixelmon.entities.projectiles; import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import pixelmon.config.PixelmonItems; import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataOutput; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityXPOrb; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityFishHook; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.stats.StatList; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntityOldHook extends Entity implements IEntityAdditionalSpawnData { /** The tile this entity is on, X position */ private int xTile; /** The tile this entity is on, Y position */ private int yTile; /** The tile this entity is on, Z position */ private int zTile; private int inTile; private boolean inGround; public int shake; public EntityPlayer angler; private int ticksInGround; private int ticksInAir; /** the number of ticks remaining until this fish can no longer be caught */ private int ticksCatchable; /** * The entity that the fishing rod is connected to, if any. When you right click on the fishing rod and the hook * falls on to an entity, this it that entity. */ public Entity bobber; private int fishPosRotationIncrements; private double fishX; private double fishY; private double fishZ; private double fishYaw; private double fishPitch; @SideOnly(Side.CLIENT) private double velocityX; @SideOnly(Side.CLIENT) private double velocityY; @SideOnly(Side.CLIENT) private double velocityZ; private EntityFishHook fishhook; public EntityOldHook(World par1World) { super(par1World); this.xTile = -1; this.yTile = -1; this.zTile = -1; this.inTile = 0; this.inGround = false; this.shake = 0; this.ticksInAir = 0; this.ticksCatchable = 0; this.bobber = null; this.setSize(0.25F, 0.25F); this.ignoreFrustumCheck = true; } @SideOnly(Side.CLIENT) public EntityOldHook(World par1World, double par2, double par4, double par6, EntityPlayer par8EntityPlayer) { this(par1World); this.setPosition(par2, par4, par6); this.ignoreFrustumCheck = true; this.angler = par8EntityPlayer; par8EntityPlayer.fishEntity = (EntityFishHook) fishhook; } public EntityOldHook(World par1World, EntityPlayer par2EntityPlayer) { super(par1World); this.xTile = -1; this.yTile = -1; this.zTile = -1; this.inTile = 0; this.inGround = false; this.shake = 0; this.ticksInAir = 0; this.ticksCatchable = 0; this.bobber = null; this.ignoreFrustumCheck = true; this.angler = par2EntityPlayer; this.angler.fishEntity = fishhook; this.setSize(0.25F, 0.25F); this.setLocationAndAngles(par2EntityPlayer.posX, par2EntityPlayer.posY + 1.62D - (double)par2EntityPlayer.yOffset, par2EntityPlayer.posZ, par2EntityPlayer.rotationYaw, par2EntityPlayer.rotationPitch); this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); this.posY -= 0.10000000149011612D; this.posZ -= (double)(MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); this.setPosition(this.posX, this.posY, this.posZ); this.yOffset = 0.0F; float f = 0.4F; this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI) * f); this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI) * f); this.motionY = (double)(-MathHelper.sin(this.rotationPitch / 180.0F * (float)Math.PI) * f); this.calculateVelocity(this.motionX, this.motionY, this.motionZ, 1.5F, 1.0F); } protected void entityInit() {} @SideOnly(Side.CLIENT) /** * Checks if the entity is in range to render by using the past in distance and comparing it to its average edge * length * 64 * renderDistanceWeight Args: distance */ public boolean isInRangeToRenderDist(double par1) { double d1 = this.boundingBox.getAverageEdgeLength() * 4.0D; d1 *= 64.0D; return par1 < d1 * d1; } public void calculateVelocity(double par1, double par3, double par5, float par7, float par8) { float f2 = MathHelper.sqrt_double(par1 * par1 + par3 * par3 + par5 * par5); par1 /= (double)f2; par3 /= (double)f2; par5 /= (double)f2; par1 += this.rand.nextGaussian() * 0.007499999832361937D * (double)par8; par3 += this.rand.nextGaussian() * 0.007499999832361937D * (double)par8; par5 += this.rand.nextGaussian() * 0.007499999832361937D * (double)par8; par1 *= (double)par7; par3 *= (double)par7; par5 *= (double)par7; this.motionX = par1; this.motionY = par3; this.motionZ = par5; float f3 = MathHelper.sqrt_double(par1 * par1 + par5 * par5); this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(par1, par5) * 180.0D / Math.PI); this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(par3, (double)f3) * 180.0D / Math.PI); this.ticksInGround = 0; } @SideOnly(Side.CLIENT) /** * Sets the position and rotation. Only difference from the other one is no bounding on the rotation. Args: posX, * posY, posZ, yaw, pitch */ public void setPositionAndRotation2(double par1, double par3, double par5, float par7, float par8, int par9) { this.fishX = par1; this.fishY = par3; this.fishZ = par5; this.fishYaw = (double)par7; this.fishPitch = (double)par8; this.fishPosRotationIncrements = par9; this.motionX = this.velocityX; this.motionY = this.velocityY; this.motionZ = this.velocityZ; } @SideOnly(Side.CLIENT) /** * Sets the velocity to the args. Args: x, y, z */ public void setVelocity(double par1, double par3, double par5) { this.velocityX = this.motionX = par1; this.velocityY = this.motionY = par3; this.velocityZ = this.motionZ = par5; } /** * Called to update the entity's position/logic. */ public void onUpdate() { super.onUpdate(); if (this.fishPosRotationIncrements > 0) { double d0 = this.posX + (this.fishX - this.posX) / (double)this.fishPosRotationIncrements; double d1 = this.posY + (this.fishY - this.posY) / (double)this.fishPosRotationIncrements; double d2 = this.posZ + (this.fishZ - this.posZ) / (double)this.fishPosRotationIncrements; double d3 = MathHelper.wrapAngleTo180_double(this.fishYaw - (double)this.rotationYaw); this.rotationYaw = (float)((double)this.rotationYaw + d3 / (double)this.fishPosRotationIncrements); this.rotationPitch = (float)((double)this.rotationPitch + (this.fishPitch - (double)this.rotationPitch) / (double)this.fishPosRotationIncrements); --this.fishPosRotationIncrements; this.setPosition(d0, d1, d2); this.setRotation(this.rotationYaw, this.rotationPitch); } else { if (!this.worldObj.isRemote) { ItemStack itemstack = this.angler.getCurrentEquippedItem(); if (this.angler.isDead || !this.angler.isEntityAlive() || itemstack == null || itemstack.getItem() != PixelmonItems.oldRod || this.getDistanceSqToEntity(this.angler) > 1024.0D) { this.setDead(); this.angler.fishEntity = null; return; } if (this.bobber != null) { if (!this.bobber.isDead) { this.posX = this.bobber.posX; this.posY = this.bobber.boundingBox.minY + (double)this.bobber.height * 0.8D; this.posZ = this.bobber.posZ; return; } this.bobber = null; } } if (this.shake > 0) { --this.shake; } if (this.inGround) { int i = this.worldObj.getBlockId(this.xTile, this.yTile, this.zTile); if (i == this.inTile) { ++this.ticksInGround; if (this.ticksInGround == 1200) { this.setDead(); } return; } this.inGround = false; this.motionX *= (double)(this.rand.nextFloat() * 0.2F); this.motionY *= (double)(this.rand.nextFloat() * 0.2F); this.motionZ *= (double)(this.rand.nextFloat() * 0.2F); this.ticksInGround = 0; this.ticksInAir = 0; } else { ++this.ticksInAir; } Vec3 vec3 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX, this.posY, this.posZ); Vec3 vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); MovingObjectPosition movingobjectposition = this.worldObj.rayTraceBlocks(vec3, vec31); vec3 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX, this.posY, this.posZ); vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ); if (movingobjectposition != null) { vec31 = this.worldObj.getWorldVec3Pool().getVecFromPool(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord); } Entity entity = null; List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.boundingBox.addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D)); double d4 = 0.0D; double d5; for (int j = 0; j < list.size(); ++j) { Entity entity1 = (Entity)list.get(j); if (entity1.canBeCollidedWith() && (entity1 != this.angler || this.ticksInAir >= 5)) { float f = 0.3F; AxisAlignedBB axisalignedbb = entity1.boundingBox.expand((double)f, (double)f, (double)f); MovingObjectPosition movingobjectposition1 = axisalignedbb.calculateIntercept(vec3, vec31); if (movingobjectposition1 != null) { d5 = vec3.distanceTo(movingobjectposition1.hitVec); if (d5 < d4 || d4 == 0.0D) { entity = entity1; d4 = d5; } } } } if (entity != null) { movingobjectposition = new MovingObjectPosition(entity); } if (movingobjectposition != null) { if (movingobjectposition.entityHit != null) { if (movingobjectposition.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.angler), 0)) { this.bobber = movingobjectposition.entityHit; } } else { this.inGround = true; } } if (!this.inGround) { this.moveEntity(this.motionX, this.motionY, this.motionZ); float f1 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f1) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) { ; } while (this.rotationPitch - this.prevRotationPitch >= 180.0F) { this.prevRotationPitch += 360.0F; } while (this.rotationYaw - this.prevRotationYaw < -180.0F) { this.prevRotationYaw -= 360.0F; } while (this.rotationYaw - this.prevRotationYaw >= 180.0F) { this.prevRotationYaw += 360.0F; } this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; float f2 = 0.92F; if (this.onGround || this.isCollidedHorizontally) { f2 = 0.5F; } byte b0 = 5; double d6 = 0.0D; for (int k = 0; k < b0; ++k) { double d7 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double)(k + 0) / (double)b0 - 0.125D + 0.125D; double d8 = this.boundingBox.minY + (this.boundingBox.maxY - this.boundingBox.minY) * (double)(k + 1) / (double)b0 - 0.125D + 0.125D; AxisAlignedBB axisalignedbb1 = AxisAlignedBB.getAABBPool().getAABB(this.boundingBox.minX, d7, this.boundingBox.minZ, this.boundingBox.maxX, d8, this.boundingBox.maxZ); if (this.worldObj.isAABBInMaterial(axisalignedbb1, Material.water)) { d6 += 1.0D / (double)b0; } } if (d6 > 0.0D) { if (this.ticksCatchable > 0) { --this.ticksCatchable; } else { short short1 = 500; if (this.worldObj.canLightningStrikeAt(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY) + 1, MathHelper.floor_double(this.posZ))) { short1 = 300; } if (this.rand.nextInt(short1) == 0) { this.ticksCatchable = this.rand.nextInt(30) + 10; this.motionY -= 0.20000000298023224D; this.playSound("random.splash", 0.25F, 1.0F + (this.rand.nextFloat() - this.rand.nextFloat()) * 0.4F); float f3 = (float)MathHelper.floor_double(this.boundingBox.minY); int l; float f4; float f5; for (l = 0; (float)l < 1.0F + this.width * 20.0F; ++l) { f5 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width; f4 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width; this.worldObj.spawnParticle("bubble", this.posX + (double)f5, (double)(f3 + 1.0F), this.posZ + (double)f4, this.motionX, this.motionY - (double)(this.rand.nextFloat() * 0.2F), this.motionZ); } for (l = 0; (float)l < 1.0F + this.width * 20.0F; ++l) { f5 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width; f4 = (this.rand.nextFloat() * 2.0F - 1.0F) * this.width; this.worldObj.spawnParticle("splash", this.posX + (double)f5, (double)(f3 + 1.0F), this.posZ + (double)f4, this.motionX, this.motionY, this.motionZ); } } } } if (this.ticksCatchable > 0) { this.motionY -= (double)(this.rand.nextFloat() * this.rand.nextFloat() * this.rand.nextFloat()) * 0.2D; } d5 = d6 * 2.0D - 1.0D; this.motionY += 0.03999999910593033D * d5; if (d6 > 0.0D) { f2 = (float)((double)f2 * 0.9D); this.motionY *= 0.8D; } this.motionX *= (double)f2; this.motionY *= (double)f2; this.motionZ *= (double)f2; this.setPosition(this.posX, this.posY, this.posZ); } } } /** * (abstract) Protected helper method to write subclass entity data to NBT. */ public void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) { par1NBTTagCompound.setShort("xTile", (short)this.xTile); par1NBTTagCompound.setShort("yTile", (short)this.yTile); par1NBTTagCompound.setShort("zTile", (short)this.zTile); par1NBTTagCompound.setByte("inTile", (byte)this.inTile); par1NBTTagCompound.setByte("shake", (byte)this.shake); par1NBTTagCompound.setByte("inGround", (byte)(this.inGround ? 1 : 0)); } /** * (abstract) Protected helper method to read subclass entity data from NBT. */ public void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) { this.xTile = par1NBTTagCompound.getShort("xTile"); this.yTile = par1NBTTagCompound.getShort("yTile"); this.zTile = par1NBTTagCompound.getShort("zTile"); this.inTile = par1NBTTagCompound.getByte("inTile") & 255; this.shake = par1NBTTagCompound.getByte("shake") & 255; this.inGround = par1NBTTagCompound.getByte("inGround") == 1; } @SideOnly(Side.CLIENT) public float getShadowSize() { return 0.0F; } public int catchFish() { if (this.worldObj.isRemote) { return 0; } else { byte b0 = 0; if (this.bobber != null) { double d0 = this.angler.posX - this.posX; double d1 = this.angler.posY - this.posY; double d2 = this.angler.posZ - this.posZ; double d3 = (double)MathHelper.sqrt_double(d0 * d0 + d1 * d1 + d2 * d2); double d4 = 0.1D; this.bobber.motionX += d0 * d4; this.bobber.motionY += d1 * d4 + (double)MathHelper.sqrt_double(d3) * 0.08D; this.bobber.motionZ += d2 * d4; b0 = 3; } else if (this.ticksCatchable > 0) { EntityItem entityitem = new EntityItem(this.worldObj, this.posX, this.posY, this.posZ, new ItemStack(Item.fishRaw)); double d5 = this.angler.posX - this.posX; double d6 = this.angler.posY - this.posY; double d7 = this.angler.posZ - this.posZ; double d8 = (double)MathHelper.sqrt_double(d5 * d5 + d6 * d6 + d7 * d7); double d9 = 0.1D; entityitem.motionX = d5 * d9; entityitem.motionY = d6 * d9 + (double)MathHelper.sqrt_double(d8) * 0.08D; entityitem.motionZ = d7 * d9; this.worldObj.spawnEntityInWorld(entityitem); this.angler.addStat(StatList.fishCaughtStat, 1); this.angler.worldObj.spawnEntityInWorld(new EntityXPOrb(this.angler.worldObj, this.angler.posX, this.angler.posY + 0.5D, this.angler.posZ + 0.5D, this.rand.nextInt(6) + 1)); b0 = 1; } if (this.inGround) { b0 = 2; } this.setDead(); this.angler.fishEntity = null; return b0; } } /** * Will get destroyed next tick. */ public void setDead() { super.setDead(); if (this.angler != null) { this.angler.fishEntity = null; } } public void writeSpawnData(ByteArrayDataOutput data) { data.writeInt(this.angler != null ? this.angler.entityId : 0); } public void readSpawnData(ByteArrayDataInput data) { this.angler = (EntityPlayer) this.worldObj.getEntityByID(data.readInt()); } } I had an idea of maybe trying onItemRightClick if Entity(or bobber? idk) != null set Entity(or bobber?) to dead. Quote
Xwaffle Posted June 30, 2013 Author Posted June 30, 2013 Anyone got any idea to why I got this issue? Quote
ObsequiousNewt Posted July 1, 2013 Posted July 1, 2013 Could we see the item class? Methinks the problem lies in creating the rod. Quote BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
Xwaffle Posted July 1, 2013 Author Posted July 1, 2013 Could we see the item class? Methinks the problem lies in creating the rod. Can do! Here is the class! Quote
Xwaffle Posted July 1, 2013 Author Posted July 1, 2013 Also That's not a double onRightClick thought i'd let you know Quote
Xwaffle Posted July 1, 2013 Author Posted July 1, 2013 was hoping it would work if I spammed it! jk Quote
ObsequiousNewt Posted July 1, 2013 Posted July 1, 2013 You're using EntityPlayer.fishEntity to tell whether you have a rod out (just like the normal fishing rod, but it seems you might run into problems), but you're never setting it to true when you spawn the hook. Fixify that! Quote BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
Xwaffle Posted July 2, 2013 Author Posted July 2, 2013 Well fishEntity is not a boolean so I can not set it to true nor false. I did try setting it equal to null and != null but those did not work. I tried placing it in two different places Another thing though fishEntity is not the rod its self it's actually an instance of a fishing rod's hook. If this isn't null, the icon image of the fishing rod is slightly different. Another idea please? I really need this working. Quote
ObsequiousNewt Posted July 2, 2013 Posted July 2, 2013 Well fishEntity is not a boolean so I can not set it to true nor false. I did try setting it equal to null and != null but those did not work. I tried placing it in two different places Another thing though fishEntity is not the rod its self it's actually an instance of a fishing rod's hook. If this isn't null, the icon image of the fishing rod is slightly different. Another idea please? I really need this working. Er, not "true". But in the constructor of EntityFishHook there is a line that says "this.angler.fishEntity = this;". Since you're missing that line, angler.fishEntity keeps showing up as null. However, EntityPlayer.fishEntity is type-protected to EntityFishHook. Which you don't extend. So you will need to alter your class to extend EntityFishHook, or else use IExtendedEntityProperties. Quote BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
Xwaffle Posted July 2, 2013 Author Posted July 2, 2013 Alright I added the lines. but NOW I get an instant crash on right click. The error is a Ticking Entity EntityFishHooks lines Here are the lines that are needed from the crash report. http://and EntityOldHook lines Quote
Xwaffle Posted July 3, 2013 Author Posted July 3, 2013 Alright did some tinkering and well the rod works now and it retracts, but now I have a new issue. when I run the world the first time. everything works PERFECT if I use the rod it works too, but if I close Minecraft and reopen it. The world crahes on starting the world. Caused by: java.lang.NullPointerException at pixelmon.entities.projectiles.EntityOldHook.onUpdate(EntityOldHook.java:219) at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2342) at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:717) at net.minecraft.world.World.updateEntity(World.java:2304) at net.minecraft.world.World.updateEntities(World.java:2150) at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:546) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:654) Line 219 is ItemStack itemstack = this.angler.getCurrentEquippedItem(); Quote
xwerswoodx Posted January 10, 2014 Posted January 10, 2014 I have same problem, I didn't want to start new topic, I open the game, and I use fishing rod but not pull it off, and save game and close, but when I restart game and try to join world, it gives this crash; ---- Minecraft Crash Report ---- // On the bright side, I bought you a teddy bear! Time: 10.01.2014 19:09 Description: Ticking entity java.lang.NullPointerException at acidmod.proxies.EntityNewFishHook.onUpdate(EntityNewFishHook.java:187) at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2350) at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:721) at net.minecraft.world.World.updateEntity(World.java:2311) at net.minecraft.world.World.updateEntities(World.java:2157) at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:552) at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:666) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at acidmod.proxies.EntityNewFishHook.onUpdate(EntityNewFishHook.java:187) at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2350) at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:721) at net.minecraft.world.World.updateEntity(World.java:2311) -- Entity being ticked -- Details: Entity Type: acidmod.Entity New Fish hook (acidmod.proxies.EntityNewFishHook) Entity ID: 141 Entity Name: entity.acidmod.Entity New Fish hook.name Entity's Exact location: 201,19, 62,90, 291,75 Entity's Block location: World: (201,62,291), Chunk: (at 9,3,3 in 12,18; contains blocks 192,0,288 to 207,255,303), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Entity's Momentum: -0,00, -0,00, -0,00 Stacktrace: at net.minecraft.world.World.updateEntities(World.java:2157) at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:552) -- Affected level -- Details: Level name: New World All players: 0 total; [] Chunk stats: ServerChunkCache: 625 Drop: 0 Level seed: 8694363154684539275 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (224,64,216), Chunk: (at 0,4,8 in 14,13; contains blocks 224,0,208 to 239,255,223), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511) Level time: 16500 game time, 517073 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 19172 (now: false), thunder time: 88463 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: true Stacktrace: at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:666) at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585) at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482) at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) -- System Details -- Details: Minecraft Version: 1.6.2 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_45, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 802364192 bytes (765 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 1656 (92736 bytes; 0 MB) allocated, 1656 (92736 bytes; 0 MB) used Suspicious classes: FML and Forge are installed IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63 FML: MCP v8.04 FML v6.2.62.871 Minecraft Forge 9.10.1.871 4 mods loaded, 4 mods active mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available FML{6.2.62.871} [Forge Mod Loader] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Forge{9.10.1.871} [Minecraft Forge] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available acidmod{0.0.1} [AcidMod] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Profiler Position: N/A (disabled) Vec3 Pool Size: 759 (42504 bytes; 0 MB) allocated, 759 (42504 bytes; 0 MB) used Player Count: 0 / 8; [] Type: Integrated Server (map_client.txt) Is Modded: Definitely; Client brand changed to 'fml,forge' 187. line is; 187. ItemStack itemstack = this.angler.getCurrentEquippedItem(); 188. 189. if (this.angler.isDead || !this.angler.isEntityAlive() || itemstack == null || !isNewFishingRod(itemstack) || this.getDistanceSqToEntity(this.angler) > 1024.0D) { 190. this.setDead(); 191. this.angler.fishEntity = null; 192. return; 193. } and also maybe you need; final Item[] newFishingRods = new Item[] { itemref.stoneFishingRod, itemref.ironFishingRod, itemref.goldFishingRod, itemref.diamondFishingRod, itemref.blackDiamondFishingRod, itemref.nightFishingRod }; public boolean isNewFishingRod(ItemStack item) { for (int x = 0; x < 6; x++) { if (item.getItem() == newFishingRods[x]) { return true; } } return false; } Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.