Koward Posted July 31, 2016 Posted July 31, 2016 Hi again, First of all, here's the code I'm updating right now : /** * Cancel the FOV decrease caused by the decreasing speed due to player penalties. * @param event */ @SubscribeEvent public void onFOVUpdate(FOVUpdateEvent event) { EntityPlayer player = event.getEntity(); PenaltyManager penalty = new PenaltyManager(player);//It's just a set of methods that give info about the player, not important float f = 1.0F; if (player.capabilities.isFlying) { f *= 1.1F; } IAttributeInstance iattributeinstance = player .getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED); f = (float) ((double) f * (((iattributeinstance.getAttributeValue() / penalty .getHealthAndExhaustionModifier()) / (double) player.capabilities.getWalkSpeed() + 1.0D) / 2.0D)); if (player.capabilities.getWalkSpeed() == 0.0F || Float.isNaN(f) || Float.isInfinite(f)) { f = 1.0F; } if (player.isHandActive() && player.getActiveItemStack().getItem() == Items.BOW) { int i = player.getItemInUseDuration();// FIXME Does not exist anymore ? float f1 = (float) i / 20.0F; if (f1 > 1.0F) { f1 = 1.0F; } else { f1 *= f1; } f *= 1.0F - f1 * 0.15F; } event.setNewfov(f); } Since 1.9 I believe, all EntityLivingBase can use items, so I naturally searched through it to find replacements for my methods. I found some, but not for getItemInUseDuration(). I used it to know for how long the bow is being used. If anyone has a workaround or found a replacement, I would be very grateful. 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.