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'.
Yes, but what if I told you that it's working perfect on a Spigot 1.7.10 server x) ? Would that peak your interest? Bad ass plugin btw, really enjoy it. Been running it since I've been working on the server and it has given me zero issues or errors in the console.
@sniddunc
Probably not... The fishing mechanics changed rather drastically and last I checked bukkit had not caught up with those changes.
Will this be updated? It's a very fun plugin :)
@delsolsi213
Good idea. I'm planning a considerable overhaul once 1.7 drops, there will be lots of changes to make. I'll add that one to the list.
@metalhedd
Maybe add a command to add the item you're holding to the treasure list, that would be cool and user friendly.
@jeppepette
There is a short example here: treasure-yml I'll work on expanding on it, and I may look into a friendlier format when 1.7 rolls out and (maybe) the id's are fully phased out. There will be a lot of changes for 1.7 anyway.
@metalhedd
ah i understand :D sorry for the big bother ill see if i can push my brain in to this system then if i ever find out how ^_^ or if you would be so kind and make a video about how that would also be great :D but it might be a to big request :3
@jeppepette
The treasure uses that format because it's the built in format for bukkit to store itemstacks. it's the only way to fully allow custom names, lore, etc etc. It can be a bit tricky to work with at first, but it's the most flexible way, I don't want to go to something less flexible.
Also, in the very near future, minecraft will be phasing out item and block id's in favor of text-only names, so I definitely dont want to go to Id's now since they'll be obsolete soon.
Sorry :(
hey is it possible for you to make the tresure file a little easier to config like make it able to put in id's insted of text cus to me it looks a bit confusing about how to add more tresures to the tresure list cus id like to edit it if its possible :) i dont wanna be to picky or anything :D
@metalhedd
Thanks for responding to my comment. :)
As for other fishing plugins, the only one I'm concerned about is mcMMO, but I'm pretty sure this plugin and mcMMO can work together.
@CommodoreAlpha
'unenchanted-looting-chance' is already an option in the config file. Its the chance to obtain loot without a looting enchantment, and it defaults to 0.
I was planning to 'convert' the Looting enchantment to Luck of the Sea if its found on a fishing rod by enhanced fishing, so that should aleviate that issue. I like the cash and mobs ideas for sure I'll add them to my to-do list for the first 1.7 compatible release.
As for replacing only vanilla drops. I think the only way I can handle that is to set my plugin to the low priority event handler and let all other plugins override what it does. Thats only going to work for plugins with a higher priority than EnhancedFishing, but its the best that can be done.
Heh, they decided to make two new enchants for the fishing rod, and also added loot like saddles, enchanted books, junk, etc. None of this I like (because it's not configurable!).
I'm going to look forward to this plugin being around when 1.7 happens. :D
As for obtaining "treasure" (e.g. anything not fish), I'm wondering if you could add a few new features. Basically, I used to use JunkyardCreek which would make fishing more interesting by allowing you to fish all kinds of loot including straight-up cash and mobs.
Basically, I'm wondering if you could add a "lootingrequired" parameter that would require the looting enchantment on the fishing rod to even have a chance at obtaining the item (if it's set to "false" you can obtain the item without the enchantment). I'm also wondering if you could add the ability to fish out cash and mobs. (Fishing out cash means it goes straight to your bank account or whatever your economy system uses.)
Also, keep in mind Mojang added two new enchantments: "Lure" and "Luck of the Sea". The former might mess around with your plugin's mechanics (but an update will deal with that), whereas "Luck of the Sea" is basically what Looting does in your plugin (great going Mojang - doing something redundant). And another thing - when you update for 1.7, could you make it so that this plugin overrides all vanilla fishing drops, but not necessarily fishing drops from other plugins?
By the way, if you decide to replace Looting's function with Luck of the Sea, you might want to find a new use for Looting. I could imagine that some admins would complain when they find out the players on their servers wasted their resources on obtaining a fishing rod with Looting.
@spammansam
The full item list can be taken from the bukkit source code:
https://github.com/Bukkit/Bukkit/blob/master/src/main/java/org/bukkit/Material.java
the horse armor's are called IRON_BARDING, GOLD_BARDING and DIAMOND_BARDING
By default, the looting enchantment is required, but you can set 'unenchanted-looting-chance' in the config file to allow for it.
Where can I find an item list for the looting table? I wanted to add horse armor to it, but I'm not sure if it's possible,and what to put for the item name when editing the treasure.yml.
Also, is it required to have an enchanted fishing rod to utilize the treasure portion of the plugin, or will an non-enchanted fishing rod also allow for users to get "sunk treasure"?
Gotcha, thanks for the info.
@SUXpanD
Thanks for the report, I've fixed the error for the next release, but it wasn't really affecting anything. it only happens when you run
/efishing
with no arguments, which doesn't do anything anyway./efishing reload
will reload the config file. and that's the only use the command has at all. Rest assured the rest of the plugin is working as it shouldThis plugin sounds awesome, but... I can't quite seem to get it running just yet. Here's the error I get when executing /efishing or /enhancedfishing:
2013-09-02 03:44:25 [INFO] SUXpanD issued server command: /enhancedfishing 2013-09-02 03:44:25 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'enhancedfishing' in plugin EnhancedFishing v0.1.5 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:191) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServer.java:523) at net.minecraft.server.v1_6_R2.PlayerConnection.handleCommand(PlayerConnection.java:954) at net.minecraft.server.v1_6_R2.PlayerConnection.chat(PlayerConnection.java:872) at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:829) at net.minecraft.server.v1_6_R2.Packet3Chat.handle(SourceFile:49) at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296) at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37) at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at com.norcode.bukkit.enhancedfishing.EnhancedFishing.onCommand(EnhancedFishing.java:161) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ... 15 more
We are running (dev) build 2863 of CraftBukkit, though the same error happened on build 2853 (updated after finding this issue) too. If you need any further info, just ask.
@CommodoreAlpha
You're absolutely right :D
@metalhedd
I don't think that Dinnerbone changing fishing mechanics will make this plugin obsolete (so it's not a caveat, really). Here are the biggest two reasons I think this plugin will be as functional as before (or perhaps even more functional).
In other words, the additions that Dinnerbone will make definitely won't satisfy everyone, which is exactly why plugins like this one exist.
@FlOppythp
If there's anything interesting left to do after the fishing changes are implemented, I'll be sure to update this plugin for it :D personally I suspect at least biome-based rarity will be a part of the new changes even though he hasn't mentioned it yet.