Hireable Boat

Adds docks with a hireable boatman who rows you to other docks you've discovered, for a fare.
How it works
- Find a dock, or craft and place your own.
- Visiting a dock adds it to your list of known destinations.
- Talk to the boatman and pick a destination from the travel screen. Each entry shows the dock's name, distance and fare.
- Pay the fare and you're taken to the other dock.
Features
- Docks generate in the Overworld, with separate docks near plains, desert, savanna, snowy and taiga villages.
- Docks use the wood type of their biome: oak, spruce, birch, jungle, acacia, dark oak, mangrove, cherry or bamboo.
- Craftable Dock Contract for placing your own. Overworld docks need water under the pier and rowboat, Nether docks need lava, and End docks need an open drop.
- Docks can be named when placed and renamed later by the placer or an operator.
- Separate sailor skins for the Overworld, Nether and End. Skins can be changed in the config (built-in, PNG file, player name or NBT profile), and hats can be toggled per dimension.
- Fares can be paid in items (emeralds by default), XP levels or XP points. The price scales with distance, with a configurable base and maximum.
- Travel is refused while riding, during the cooldown, or while a hostile mob is targeting you. Failed trips are refunded.
Crafting
Dock Contract:

Configuration
Configurable in-game or in hireableboat-common.toml:
- Travel: cooldown, hostile mob range, optional water-connection requirement
- Fare: currency, fare item, base price, blocks per fare unit, maximum fare
- Water network: cell size, fill cap, minimum depth, strict channels, scan budget
- Sailor: hats per dimension, skin mode
The fare item uses the hireableboat:fare_items tag, so datapacks can change what counts as payment.
Requirements
- GeckoLib
Install on both server and client.

