File handle
Description
This is a proof of concept for setting up items in slimefun with a .yml file instead of an hardcoded approach. This approach only works with SlimefunItems registration for now. This would help in the configuration of slimefun, and people can add their own items if they want to without any need to make an addon or edit the source code.
Proposed changes
Some changes that would help in getting the needed data would be to create a HashMap<String, SlimefunItemStack> where you can access the SlimefunItemStack using its ID, because worse case scenario in my implementation if a recipe needs to be loaded with 9 slimefun items, in this implementation it would require 9 reflection calls only for loading the recipe.
Files
I left some files in .yml to show how the items would be saved.
Checklist
- [x] I have fully tested the proposed changes and promise that they will not break everything into chaos.
- [x] I have also tested the proposed changes in combination with various popular addons and can confirm my changes do not break them.
- [x] I have made sure that the proposed changes do not break compatibility across the supported Minecraft versions (1.16.* - 1.20.*).
- [x] I followed the existing code standards and didn't mess up the formatting.
- [x] I did my best to add documentation to any public classes or methods I added.
- [ ] I have added
NonnullandNullableannotations to my methods to indicate their behaviour for null values - [ ] I added sufficient Unit Tests to cover my code.
Pro Tip! You can help us label your Pull Requests by using the following branch naming convention next time you create a pull request. โค๏ธ
| Branch naming convention | Label |
|---|---|
feature/** |
๐ Feature |
fix/** |
โจ Fix |
chore/** |
๐งน Chores |
api/** |
๐ง API |
performance/** |
๐ก Performance Optimization |
compatibility/** |
๐ค Compatibility |
If your changes do not fall into any of these categories, don't worry. You can just ignore this message in that case! ๐