Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
item.txt
machines.txt
Checklist
Nonnull
andNullable
annotations to my methods to indicate their behaviour for null values