Shopkeepers/TODO.txt

48 lines
3.6 KiB
Plaintext

High priority:
*
Mid priority:
*
Low priority:
* Improve chest protection (the anti-hopper code is inefficient).
* Support for more than 8 trades
* More types of block shops? -> clicking button to open shop
* Virtual shops (command to edit and open trade menu), would allow tons of possibilities for other plugins / server admins to use shopkeeper shops in other contexts
* Add debug categories (debug mode can produce quite a lot of spam currently)
* Change amount-per-click from 10 to 8 when clicking items in the player shopkeeper editor? (feels more intuitive due to minecraft's stack sizes)
* Compress currency items in the chest (low currency to high currency)? To maximize available storage capacity. This would also mean that the usage of the high-currency-min-cost setting would be limited to creating the trading recipes, and not be used when adding currency items to the shop chests.
* Maybe prevent any unrecognised types of clicks if running in compatibility mode? To reduce the risk of minecraft updates with new clicking actions causing issues.
* introduce separate editor window to be able to add new player editing options
* add an option to reposition shops: button pressed > window closes + message > player clicks a block > runs new/updated/smarter placement logic there, checks distance to chest, option (default true) to not allow it for shops that are not directly placed on top of the shop chest (because those were probably created via command and it is unclear whether players are meant to be able to reposition those shops)
* Or allow shops to be picked up (with all their data) inside an item (probably not possible right now via bukkit API)
* Remove AbstractType#matches with aliases
* remove AbstractType#isEnabled() and instead dynamically register and unregister enabled/disabled types?
* might change the order of the types dynamically though.. determine the order differently, via config?
* set entity attributes before spawning the entity on newer versions (nicer looking)
* rename registry#getShopkeeperByBlock() to getShopkeeperBySignBlock or similar?
* properly separate loading/unloading from activation/deactivation in debug messages/method names/etc
* Rename ShopkeeperRegistry and ShopkeeperStorage to ShopkeepersRegistry and ShopkeepersStorage?
* Another major api break though.. maybe do this with the next larger API changes. Or not at all.
* Display trades that are out of stock, but disable trading by setting their max uses to 0
# 1.14:
* Settings to handle wandering trader differently to regular villagers? (spawn blocking, hiring, trade blocking)
* Allow changing the sign text color?
* Allow changing villager biome type
* Allow changing villager level (novice, .., master)
* Set villager trades and test if they display trade-able items when the player holds corresponding items
Ideas:
* Per-Trade/Shopkeeper settings, maybe via written books:<br>
-> by adding another row to the shopkeeper-editor inventory window each trade option and shopkeeper could have a slot for a written-book<br>
-> which could contain additional meta-data, per-trade/shopkeeper settings, which could be used (ex. by other plugins) to trigger certain actions when a specific trade is used <br>
* Maybe move shop options (like currently name, profession, etc.) into a separate inventory view to have additional space there<br>
* Add message to default zero-currency items explaining how to increase/decrease costs.
* Add zero-cost items in trading shopkeeper, with lore which explains how to setup the trade.
* Store shopkeeper data (save.yml) in smaller chunks? Maybe 1 file per world?
* Makes only sense for very large numbers of shops, with many trades -> TODO benchmark