package net.minecraft.server; import org.bukkit.event.player.PlayerFishEvent; // CraftBukkit public class ItemFishingRod extends Item { public ItemFishingRod() { this.setMaxDurability(64); this.d(1); this.a(CreativeModeTab.i); this.a(new MinecraftKey("cast"), new IDynamicTexture() { }); } public InteractionResultWrapper<ItemStack> a(World world, EntityHuman entityhuman, EnumHand enumhand) { ItemStack itemstack = entityhuman.b(enumhand); if (entityhuman.hookedFish != null) { int i = entityhuman.hookedFish.j(); itemstack.damage(i, entityhuman); entityhuman.a(enumhand); } else { if (!world.isClientSide) { EntityFishingHook entityfishinghook = new EntityFishingHook(world, entityhuman); int j = EnchantmentManager.c(itemstack); if (j > 0) { entityfishinghook.a(j); } int k = EnchantmentManager.b(itemstack); if (k > 0) { entityfishinghook.b(k); } // CraftBukkit start PlayerFishEvent playerFishEvent = new PlayerFishEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), null, (org.bukkit.entity.Fish) entityfishinghook.getBukkitEntity(), PlayerFishEvent.State.FISHING); world.getServer().getPluginManager().callEvent(playerFishEvent); if (playerFishEvent.isCancelled()) { entityhuman.hookedFish = null; return new InteractionResultWrapper(EnumInteractionResult.PASS, itemstack); } world.a((EntityHuman) null, entityhuman.locX, entityhuman.locY, entityhuman.locZ, SoundEffects.I, SoundCategory.NEUTRAL, 0.5F, 0.4F / (ItemFishingRod.j.nextFloat() * 0.4F + 0.8F)); // CraftBukkit end world.addEntity(entityfishinghook); } entityhuman.a(enumhand); entityhuman.b(StatisticList.b((Item) this)); } return new InteractionResultWrapper(EnumInteractionResult.SUCCESS, itemstack); } public int c() { return 1; } }