Slimefun4 icon indicating copy to clipboard operation
Slimefun4 copied to clipboard

File handle

Open Intybyte opened this issue 2 years ago โ€ข 1 comments

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

  • [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 Nonnull and Nullable annotations to my methods to indicate their behaviour for null values
  • [ ] I added sufficient Unit Tests to cover my code.

Intybyte avatar Mar 01 '24 17:03 Intybyte

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! ๐Ÿ‘€

github-actions[bot] avatar Mar 01 '24 17:03 github-actions[bot]