August 2, 2020

InterestingFish

​​PRESENTS​​

​​Let's face it, fishing is a boring way to sustain life. I sat here tonight thinking "Man, fishing could be fun, crazy, and even competitive, but instead it is drab and boring". So I set out to change that by putting the power into YOUR hands!​​With Interesting Fish, you as the server admin are able to set a few options to spice up the fishing activity and reflect the diversity of our scaled friends in this game we call "AFK".​​Fish will now have descriptors, breeds, and weights. Essentially it works like this:​​"Big" is a descriptor. A fish that is "Big" will have between 10 and 50 units of weight (definable by the admin) added to its base weight​dictated by its breed.​​"Tuna" would be a breed, a tuna, for instance, might be between 20 and 50 lbs, but if it got the "Big" descriptor, it might be as large as 100lbs!!!​​Here are the options you can set and their default values:​
baseWeight: 0.5

The baseWeight is the base weight of all fishes, really you could set this to zero, but I thought it might be nice if you decide to scale all of your fish up or down seasonally or something crazy.

minWeight: 0.01

The minweight prevents negative weight fish. Since you can go negative with modifiers it would be useful to bottom out the minweight so you don't end up with a -5lb Tiny Minnow or something.

percentDescriptorChance: 75.0

The percentDescriptorChance is the chance of a fish being assigned a descriptor like "Big", "Tiny", and the modifier that comes with it, get assigned to a fish. Set this to zero if you do not want descriptors and their modifiers, or set it to 100 if you want all descriptors and their modifiers!

All text fields accept '&' color codes unless stated otherwise.

weightLabel: '&bWeight: &f'

This is displayed before the weight of the fish

weightUnit: lbs

This is displayed after the weight of the fish (see screenshot below for an example). & color codes are acceptable.

caughtByLabel: '&6Caught by: &f'

This is displayed under the weight and before the person who caught the fish's name

dateLabel: '&6'

This is the label for the date, you coule make it say "Caught on:" or something crazy. I just decided to use it to color the date gold like the rest of the stuff for continuity's sake.

dateFormat: MM/dd/yy hh:mm

This is a SimpleDateFormat pattern. Feel free to swap around the MM and dd to switch to non american time, othewise look here if you want to do crazy stuff with it. Color codes will not work here.

descriptorList:
- text: '&aBig'
rollWeight: 1
maxWeightModifier: 20.0
minWeightModifier: 5.0
- text: '&aTiny'
rollWeight: 1
maxWeightModifier: 0.0
minWeightModifier: -20.0

This is the default descriptorList. As you can see I only gave you two descriptors, feel free to add as many as you want. The modifiers are added to the fish's weight, I could potentially implement multipliers as well in case you don't want a 20 lb minnow, but you decide by using or not using this plugin. The rollWeight is how likely that descriptor will be chosen, if one has a rollweight of 3 and the other has 1, then the first is 3x more likely to be chosen, or 75% of the time.

breedsList:
- text: Trout
rollWeight: 1
maxWeightModifier: 20.0
minWeightModifier: 1.0
- text: Tuna
rollWeight: 1
maxWeightModifier: 50.0
minWeightModifier: 20.0

This is the default breedsList. As you can see I only gave you two breeds, feel free to add as many as you want. The modifiers are added to the fish's weight. The rollWeight is how likely that breed will be chosen, if one has a rollweight of 3 and the other has 1, then the first is 3x more likely to be chosen, or 75% of the time

SCREENSHOTS
The fish in your inventory:

Display your catch with pride!!! Anyone can right click a fish in an item frame to see that fish's information. shift+right click to rotate the item if you are allowed by other permission and protection plugins.

Effects on vanilla gamplay
Due to the unique nature of the fish, they will not stack when raw. Cooking them will allow them to stack as expected by a vanilla player.

Drag and drop simplicity
No permissions, no commands, just drag and drop this in, boot it up to generate the default config file, then edit and add until your heart is content!

Source
The source code is included in the jar, just open it with 7zip or another archiving application and extract it. This is released with a "do whatever the hell you like" license.