Posted April 1, 201510 yr Hi, my problem is that I have an EntityThrowable and I must spawn it server-side, but then I need to do stuff when the entity hit something: on single player (internal server) all works perfect, but when I try to spawn that entity on a dedicated server some methods and classes don't exist and I run into an exception like NoClassDefFound. I post here a simple example, when I try it on a dedicated server and the entity hit somethings the server crash and I get a method not found error on the method e.setVelocity(): import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; public class TestProj extends EntityThrowable { private EntityPlayer caster; public TestProj(World world, EntityLivingBase entity) { super(world, entity); this.caster = ((EntityPlayer)entity); } @Override protected void onImpact(MovingObjectPosition mop) { if(mop.entityHit != null && mop.entityHit instanceof EntityLiving) { EntityLiving e = (EntityLiving) mop.entityHit; double vecX = caster.posX - e.posX, vecY = caster.posY - e.posY, vecZ = caster.posZ - e.posZ; e.setVelocity(vecX / 2.5, vecY / 3.5, vecZ / 2.5); } this.setDead(); } } How can I know which methods I can use on both sides? Or there is an other way to solve my problem?
April 2, 201510 yr Author If a method/class/field is not available on a specific side it will be marked with @SideOnly. So a method with @SideOnly(Side.CLIENT) can only be used on the client. Thanks! Solved it! I just have to use e.addVelocity(), which isn't marked whit a @SideOnly annotation!
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.