Posted June 15, 20169 yr I have tried searching, but everything is outdated, and I cannot figure out how to get it to work. I think this is as close as I got: public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) { Vec3d vec3 = playerIn.getPositionEyes(1.0F); Vec3d lookVec = playerIn.getLook(1.0F); Vec3d addedVector = vec3.addVector(lookVec.xCoord * 50.0D, lookVec.yCoord * 50.0D, lookVec.zCoord * 50.0D); RayTraceResult lookPos= new RayTraceResult(playerIn, lookVec); int x =lookPos.getBlockPos().getX(); int y =lookPos.getBlockPos().getY(); int z =lookPos.getBlockPos().getX(); EntityLightningBolt lightning = new EntityLightningBolt(worldIn, x,y,z, false); worldIn.addWeatherEffect(lightning); return new ActionResult(EnumActionResult.PASS, itemStackIn); }
June 15, 20169 yr Author 1. I just modified the code from the Item class? What should I return? Nothing, and make it a void method? 2. I forgot about that, I'll fix that. Should it only be run on the server? or the client? (I just started learning how to mod btw.)
June 15, 20169 yr I have tried searching, but everything is outdated, and I cannot figure out how to get it to work. I think this is as close as I got Your code looks 1 block away from where the player is and goes "yep, spawn there. good enough." You never attempt to raytrace farther out. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
June 16, 20169 yr Author I got it to work Here is what I have now: public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) { if (worldIn.isRemote) { RayTraceResult result = playerIn.rayTrace(100, 1F); int x = result.getBlockPos().getX(); int y = result.getBlockPos().getY(); int z = result.getBlockPos().getZ(); EntityLightningBolt lightning = new EntityLightningBolt(worldIn, x, y, z, false); worldIn.addWeatherEffect(lightning); } return new ActionResult(EnumActionResult.SUCCESS, itemStackIn); } If this can be improved, please let me know.
June 16, 20169 yr Author I am only spawning it if worldIn.isRemote is true. Wouldn't that be the server side? Edit: I could probably also use @SideOnly
June 16, 20169 yr isRemote should have been called isClient, but people like Lex think that people should instinctively know that "remote" means "relative to the server." Or something, I don't recall the reasons only that it wasn't going to change. There was an issue about it on the git, but I can't find it now. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
June 16, 20169 yr The reason it is not changed is because everyone knows it now and it's so ubiquitously used. That didn't stop some of the other name changes that occurred. But whatever. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
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.