When I started developing this software, I had no experience using any JSON libraries and was also unfamiliar with the licensing. Thus, I decided to write some sort of a JSON reader myself. This did work for the first couple of weeks, but I have no realized that with the software getting more and more complex, so will the json reader code. At some point, It might even turn into the spaghetti that the legacy software is.
In a recent private project that I'm working on with a friend I got familiar with the Newtonsoft.Json library I discovered how powerful, yet easy to use it. I have already seen many components of the software that would be so much easier using this library. There are however still some things I need to investigate before I can actually use this library.
Can the library convert plain text that is in json format into actual json components and write that to the file?
Does the license allow use in a open-source non-profit software?
Does it affect the performance of the software?
Is the library actually able to replace all parts of the code that it's supposed to replace?
When this is researched, I will start rewriting the software using this library alongside the NBT and Item Stack Component Rework. Stay tuned!
There's a lot to be done, before the software can fully release or even before the first public build.
Therefor, to have a structure and give all of you some kind of an idea of what I'm doing, I've created a roadmap of what is part of the development.
Please note that nothing on this list is guaranteed to make its way into the software, and there may also be things added to the software that are not on this list.
The following things will be completed before the first public beta build (in no particular order):
Make the top menu bar functional (Add all buttons, textblocks, etc.)
Add Arrow Symbols to the categories in the sidebar to better visualise whether they're collapsed or not
Make it, so you can click on the items in a loot table to edit their content. Add detection for when you load another loot table before saving the first one.
Add number to the items in a loot table to show their position (kind of a line number)
Add delete button to the items
Add option to add new items (similar to the old app, but in a wizard-like style)
Indicator next to the items that shows if they've been modified or deleted
Save button, that saves the changes and reloads the loot table
Have item editing, deleting and adding run asynchronously
Show progress bar when saving loot table
Add 'About' window and 'Changelog' window
Add warning that app is not affiliated with mojang studios in 'About' window
Show elapsed time in add item window
Fix major issues
03.08.2023 - Public Beta was released!
The following things will be added for a second beta build:
Item Remover (Similar to item adder, wizard like style, removes items from selected loot tables, shows where the items exist)
Duplicate finder (Lets you select if it should only search in current loot table or all loot tables, shows the duplicate items and where the exist, lets you remove them from all loot tables)
Fix laggy window resizing
Reload loot table after adding/
Fix insane memory consumption and memory not being freed up
Only show delete when hovering
Fix Item Remover not starting in the center of the screen
Fix Error message when trying to continue on page 3 of the Item Remover without any items being the default one
Fix duplicate text in group box header of Item Adding Wizard
Add button to remove items from the Item Remover
Fix "REPLACENBT" being added to all items
Fix error when closing Item Adding/Removing Wizard while no loot table is loaded
Fix "Added Items" textbox in Item Adding Wizard not being read-only
Fix item entrys in Item Adding
Fix items in "Random Amount Same Item" loot table not being detected correctly in duplicate finder.
Add scheme selection in loot table selector
Fix adding Items with NBT Tag not working at all
Fix items not being added to any loot tables when selecting "certain loot tables" without opening the selector
Add support for Item Remover in the Duplicate Finder
Fix several small issues regarding the Duplicate Finder
Fix typo in Item Adding window
Fix wrong error message when trying to continue without input in Item Remover
Fix loot tables being shown multiple times in selector when same item appears more than once
Fix items not being added/read correctly to/from the "Random Amount Same Item" Loot tables (variable changed!)
24.02.2024 - Public Beta 2 was released!
The following things will be added for thethird public beta:
Support for new Item Stack Components
Editor for NBT and Item Stack Components
Add support for 1.21 folder structure
27.08.2024 - Public Beta 3 was released!
The following things will be done for the release:
Fix crash when UPDATER.txt is not found
Add icons to all windows
View NBT/Component in duplicate finder
Improve 'About' window to show third-party licenses in seperate window
Update to .NET 8.0
Fix remaining apparent issues
The following things will be added in a later point in development and are not part of the first release:
Item List Importer (Add option to import item list in item adding window)
Settings menu (toggle log, edit quick access profiles with datapacks, edit schemes)
Log/Console (Allows seeing past actions, with date/time, possibly allow dev commands)
Profiles/Schemes (Profiles: Combination of datapack path, with option to also automatically load a loot table - Schemes: When adding items, select a scheme to automatically select loot tables that meet certain criteria, for example loot tables with a certain name or that contain certain words.)
First Time Setup Screen (User files directory, appearance, default settings...)
Custom Message Boxes (some can be hidden) => Will probably be implemented via SeeloewenLib
"CTRL + F" Search option in main window to find items in loot tables
Quick select option next to load button for data packs for loading profiles, as well as save button in that menu
Duplicate detection when adding items (Shows warning, asks user whether to continue and ignore once, continue and ignore all or cancel)
Add button click/hover animations and custom designs
Check if the loot table is corrupted before loading/adding items to it
removing items
Fix item name/nbt overlapping when being too long in most windows (possibly show ... at the cut off)
over an item (this also means that modified indicator will need to be moved accordingly)
Check if items are valid before adding them (both in main window when renaming and when using item adding wizard)
Fix high memory consummation when adding items caused by loot table objects
Support for 1.17
Please note: Support for the 1.17 Version of the Random Item Giver will be added after the full release of the software as it requires many adaptions to the software and would greatly increase the wait for the full release, even though it will be a rarely used feature.
A little while ago, Mojang released snapshot 24w09a which replaced the NBT system that had existed for almost the entirety of Minecraft with the new item stack components system. Because this is pretty different from how NBT worked, the software will need major changes to function again. I'm also taking this opportunity to rework how the old NBT works as well. The current implementation of NBT is quite flawed and unstable, so this would be the right time for improvements. All these changes will require some time since I need to make fundamental adjustments to the codebase.
Here's a list of what needs to be updated:
Change how NBT is displayed in the main window
Change how NBT is detected in the main window
Change how NBT is saved in the main window
Add NBT editor for editing the NBT tags.
Add detection / saving for Item Stack Components in main window
Add Item Stack Components editor
Change how NBT is detected and add detection of Item Stack Components in duplicate finder
Add support for Item Stack Components in item remover
Add support for Item stack components in item adder
Change how NBT is edited and handled in item adder: also use the new NBT editor/Item Stack Components editor