EnhancedFishing
Enhanced Fishing
EnhancedFishing brings many improvements to the vanilla minecraft fishing mechanics. First of all, it gives you complete control over a players chance of getting a bite while fishing. You can modify the overall odds, and create custom permission nodes that will grant your users improved odds. It also adds many realistic environmental conditions that affect odds, all of which are configurable. These conditions include:
- Crowding: other fishing hooks within a configurable radius
- Mobs: other living entities (besides the caster) within a configurable radius
- Lightning: all active fishing hooks within a configurable radius get modified odds when lightning strikes.
- Sunrise: fish are more active during sunrise. the exact start and end time as well as the modifier are configurable
- Boat: Being in a boat can affect your odds.
- Rain: This is the same as vanilla minecraft's rain modifier, which operates by checking if lightning *COULD* strike the location of the hook. which requires it to be outdoors and raining.
- Biomes: Every biome can have a custom chance modifier, some sane defaults are set (improved odds in rivers, oceans and beaches, very few fish in deserts).
In addition to this, EnhancedFishing adds REAL support for several new enchantments on fishing rods.
- Efficiency: Improve the chance of getting a bite
- Looting: Find sunken treasure (Configurable loot table included)
- Fortune: Catch more than 1 fish at a time
- Fire Aspect: Catch cooked Fish
- Thorns: Fish hooks deal damage to mobs they hit.
- Power (since 0.0.6): Casts further. at higher levels, it's possible to cast out all your line and lose the bobber.
All of these effects can be disabled globally through the admin, or by using negated permissions of the form: -enhancedfishing.enchantment.looting
Enchanting
As of v0.1.0 Anvil&Book-based enchanting functionality is built into the main plugin. the addon is no longer required and will be automatically disabled if it's found. a new configuration option is included to control this. "enable-anvils". If the plugin finds an incompatible craftbukkit version the functionality will be disabled.
Treasure
The treasure available from the looting enchantment is completely configurable, and in its default state is not all that interesting. If anyone is willing to share their customizations I would consider including them in the plugin by default.
Permissions
enhancedfishing.enchantment.looting
- allows use of 'Looting' enchantmentenhancedfishing.enchantment.fortune
- allows use of 'Fortune' enchantmentenhancedfishing.enchantment.efficiency
- allows use of 'Efficiency' enchantmentenhancedfishing.enchantment.fireaspect
- allows use of 'Fire Aspect' enchantmentenhancedfishing.enchantment.thorns
- allows use of 'Thorns' enchantment
Commands
/efishing reload
- reload config file and loot tables.
Configuration
All of the chance modifiers accept straight numeric values, or multipliers. A fully commented configuration example can be found here.
Tutorial
Troubleshooting
While EnhancedFishing will work with any bukkit version above 1.5.1-R0.2, The AnvilAddon uses internal craftbukkit code, and must be updated for every new bukkit release. Check the Development Builds link below for the most recent AnvilAddon builds.
Source Code & Development Builds
Source code is available on github!
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk
EnhancedFishing Development Builds
Other Plugins
- Build-in-a-Box - self-constructing buildings that can be picked up and relocated.
- Scribe - Transfer enchantments from items to books using an anvil
- JukeLoop - Makes jukesboxes loop, rotate through nearby chests, activated by redstone and much more,
- PotatoBombs - Allows players to craft poisonous potatoes into devastating and hillarious magical landmines.
- SilentAlarms - Makes note blocks silent except to select people, who can hear them at any distance.
- Saddlebags - Adds an inventory to saddled pigs.
- SalvageSmelter - Allows furnaces to smelt down tools and armor.
- Autocrafter - Turn droppers into redstone powered crafting tables.
- Compressors - Turn hoppers into 'block compressors'.
@Fuusko
Thanks for catching that! Uploading a new release now. development builds are up to date.
Hey,
I still get this with your 1.6.2 version and I'm running 1.6.2 bukkit:
23:06:34 [warning] [EnhancedFishing] CraftBukkit version mismatch. Anvil functionality will NOT be available.
sorry folks, it seems bukkitdev wasn't sending me updates for these comments. I've uploaded a 1.6.2 version (sorry for the lateness).
@excavator5
I'll take it under advisement, but I'm currently holding off on adding any more features to this until I see what dinnerbone has in store for fishing in the next update.
Hey can you update for 1.6.2 please :)
Hey,
I am trying to find a plugin that allows players to do exactly what you have in this plugin minus the use of bait. I want my users to use Feathers as bait, is there anyway of adding the capability to set an ID to be used as a bait?
@metalhedd
Thanks man! I look forward to it.
@Netu
I like it. should be totally possible, but might take some time to get the configuration options sorted out for it.
Is it at all possible to fish up entities? I'd like my users to be able to fish up squid. :P I think that'd be a neat way to get ink. Any thoughts?
@metalhedd
That does make a lot of sense and I think you're right. Thanks for the speedy reply!
@Keepoladon
I am not 100% sure, but I THINK that TerrainControl makes all its custom biomes actaully Plains behind the scenes. it should show you one of the 'normal' biome names when you press F3 in game. that would be what EnhancedFishing sees it as
Say I have a plugin like TerrainControl that lets me create custom biomes. Will I be able to set the fishing rates for those custom biomes or will I just not be able to catch fish in those biomes at all?
@wrecktify80
Uploaded and waiting for approval
1.6 update?
I dont get how the tresure config works. Do i need to add the ==: org.bukkit...? Does the bigger the wieght mean the better the chances? Whats the max weight, is it a percentage? And finally, can I use item IDs for the item type?
@metalhedd, works like a charm! I'm posting my treasure.yml as a suggestion:
http://pastebin.com/ySCe68J8
The thought behind it is to make it possible to obtain certain materials even in a Skyblock-world, but no diamonds, that's too OP if you ask me :)
It's nicer to get iron-leggins and similar gear instead of an ingot, then you can smelt it with your other plugin and get the ingots that way.
Edit: The vine makes me think of seaweed so that is why it goes with the most weight :)
@metalhedd, nice! I'm gonna try it out now! Great work on your plugins! I use Scribe, JukeLoop and SalvageSmelter too :)
@Fuusko
Fixed it! I even tested it this time :) it's build #40 on jenkins, and i'll be uploading it to bukkit dev some time tonight.
@metalhedd, I just tried your latest build as you suggested. I no longer get the error in server console when I put the chance for treasure to 100% for testing..
But all I get are lilypads with the standard weight(if that means chance?) setting on lilypad, so I tried to change it down to 1 but I still only get lilypads..
Here are my config: http://pastebin.com/HHLBxjJC
Here are my treasure.yml: http://pastebin.com/Z4CCkGt0
Edit: Just tried with standard treasue.yml to see if I was doing something wrong but I still only get lilypads.
@Fuusko
Looks like you may have found a bug.. I just uploaded a new Development Build #39 which you can find at the link in the description. (staff get angry if I link to it in the comments :))
could you check if that solves your problem? if it doesn't, i'll need you upload your treasure.yml to pastebin.com or something where the formatting doesn't get messed up.
I get this when people are fishing, but not always and noone have caught any treasure yet so might be a problem with the treasue. treasure.yml have all the standard values except one:
redstone: weight: 3 item:
: org.bukkit.inventory.ItemStack
type: REDSTONE
SERVER ERROR:
15:39:32 [SEVERE] Could not pass event PlayerFishEvent to EnhancedFishing v0.1.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_5_R3.EntityFishingHook.c(EntityFishingHook.java:333) at net.minecraft.server.v1_5_R3.ItemFishingRod.a(ItemFishingRod.java:16) at net.minecraft.server.v1_5_R3.ItemStack.a(ItemStack.java:93) at net.minecraft.server.v1_5_R3.PlayerInteractManager.useItem(PlayerInteractManager.java:339) at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:613) at net.minecraft.server.v1_5_R3.Packet15Place.handle(SourceFile:58) at net.minecraft.server.v1_5_R3.NetworkManager.b(NetworkManager.java:292) at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:109) at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35) at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:581) at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226) at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573) Caused by: java.lang.IllegalArgumentException: n must be positive at java.util.Random.nextInt(Unknown Source) at com.norcode.bukkit.enhancedfishing.LootTable.get(LootTable.java:69) at com.norcode.bukkit.enhancedfishing.FishingListener.onPlayerFish(FishingListener.java:102) at sun.reflect.GeneratedMethodAccessor296.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
Any ideas?