GithubHelp home page GithubHelp logo

seeloewen / random-item-giver-updater Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 1.0 1.5 MB

Powerful tool for making changes to the Random Item Giver Datapack by Louis9

Home Page: https://www.planetminecraft.com/data-pack/random-item-giver-datapack-1-0-0-minecraft-1-16-2/

License: GNU General Public License v3.0

C# 100.00%
giver item random seeloewen updater louis9

random-item-giver-updater's Issues

Rework Reading and Writing to loot table files using proper JSON library

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!

Development Roadmap

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.

Introduction of Item Stack Components and NBT rework

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.