wendall911 / ChargedCharms

A Minecraft 1.18.2+ mod that adds several "Charged" charms
Other
1 stars 1 forks source link

[Suggestion] Support Accessories over Trinkets/Curios #7

Open Bruhnanza opened 1 month ago

Bruhnanza commented 1 month ago

Trinkets is Fabric-only, Curios API is (Neo)Forge-only, but there's a new mod called Accessories which is cross-compatible with Fabric & NeoForge and offers a wide array of features.

I believe you should consider implementing this mod for 1.21 and future versions as this mod as seen more development activity than the others, and would also simplify things for you & users as both the Fabric & NeoForge versions could use Accessories.

wendall911 commented 1 month ago

This is a reasonable idea. Few issues I have though, and this is with Curios and Trinkets as well:

  1. All are data-driven, but NONE provide a basic API for generating the data for the mods. This is just lazy and lame. If the mod is data-driven, at least do the bare-minimum and provide some datagen classes for the mod. The wiki are all for manual editing of datapack files, which is super lame and actually pretty developer hostile. Even though the data files are minimal, it is putting a lot of work onto ensuring that they are correct across multiple minecraft versions on to the devs that adopt it.
  2. Trinkets versioning is terrible and non-descriptive. I have to literally go look on CurseForge to figure out what version I need, as it doesn't show the Minecraft version.
  3. Curios is typically slow to update, but is crazy stable and the developer is easy to work with. Versions are easy to figure out. Also, no Fabric version (although this would be trivial, he is being kind to the Trinkets devs, even supports Trinkets on his mods)
  4. None provide even a basic mod to show how to implement. Documentation is spotty at-best. I have to literally look at code to do pretty much anything. IllusiveC4 has quite a few mods that use Curios, so I can at least look at those mods for a point of reference.

I'm not sure if you are affiliated, with the project. It does not appear to have issues 2 & 3, but until they do the bare-minimum and provide 1 and 4 ESPECIALLY given that this is a utility mod that is designed for other mods to use, I can't in all honesty even give it a chance. They have to do better if they want to see adoption. A simple multi-loader template mod based on: https://github.com/jaredlll08/MultiLoader-Template with datagen for an accessory would suffice. The documentation is neat, but not super useful, given that I would have to hand code json, which should be a huge NO for any mod.

I do have 1.21 Fabric ready to go, again waiting on Curios to update for NeoForge. NeoForge 1.21 has been less than stable the last month or so. Totally understandable why he is moving a bit more slowly. If you need 1.21 Fabric, please let me know and I will push it out.

I'm leaving this open as it isn't a terrible suggestion. Just need it to make some sense before doing any switching.

wendall911 commented 1 month ago

Ok, I just pushed out a release for both Curios and Trinkets. I would still like to see what happens with Accessories before jumping on it. It appears as though only a couple mods even use it now. In the meanwhile, you can use the Accessories bridge mod, or https://www.curseforge.com/minecraft/mc-mods/curios-continuation until Curios is updated for NeoForge.

In all honesty, supporting both Trinkets and Curios is mostly trivial. The code is most unified anyhow. I will keep monitoring the situation.

Dragon-Seeker commented 1 month ago

Hi There,

Overall I do agree that it may be advantageous to have Utility within Accessories to generate Slots and Entity Bindings for bulk if needed but it is something minor due to the format being documented on the docs with examples present there, combined with such use in the main API for the default shared slots, and the test mod. Furthermore, there is a test mod for both Neoforge and Fabric on basic implementation of the mod that can be used as a guide. I agree more docs featuring a tutorialized walkthrough would be beneficial, but its priority is not the highest as I am dealing with rewriting the screen combined with bug fixing with the latest release and anything problematic found within the codebase.

Stating it is "lazy", "lame", or "hostile" is quite rude as you seem to jump to the conclusion that I as the dev am unwilling to add or adjust the API to suit more popular opinions which are desired by most and seem reasonable as I am willing to makes changes but instead, you decided to make such statements making it feel like your hostile to me. I believe as Minecraft becomes data-driven it will require at points to still understand the JSON format of various data objects, I do understand writing hundreds of data files by hand is not enjoyable, but I find that if its only a small amount of files that it would take more time in some regards to set up the required code to output data files compared to just writing the JSON file.

It is your mod so use whatever API you find easier for you, and maybe I misunderstood your perspective. Still, I do find that to have a more thriving and healthy community requires you to voice your concerns and opinions constructively to get a better resulting Mod, API, or community.

wendall911 commented 1 month ago

@Dragon-Seeker This wasn't directed at you, but at the situation with several utility mods, including Curios and clones. So far, unfortunately, Curios has been by far the best. It is very disappointing that it is being discontinued, although I very much understand the reasons. Curios has good documentation, a datagen class in the API and implementation references.

To be clear, I'm not trying to be hostile, and this wasn't directed at Accessories. Honestly, the documentation isn't really the key, it is knowing that it will be maintainable across multiple minecraft versions. I know you realize that we mod devs end up maintaining mods across many, many versions. Having to hand code json every release is time consuming and silly. For example, other mods I have are data-driven and have datagen classes for everything, even the simple ones. Then, if I need to change things across minecraft versions, I can just re-run datagen and it works.

And if by the "community" you mean Discord, then yeah, that's not me. I do mods with my kids for fun. I am not particularly opinionated on a lot except how demanding of time it is for what value it brings. If by community, you mean other actual modders, then I very much disagree that focusing on how to hand code json over proper datagen as a priority.

I'm not sure what you mean by constructive, as this was just giving feedback to a random request on my issue tracker for a beta mod that hopes to replace Curios/Trinkets. Given the very, very small adoption so far, I just planned to leave this open until there was some more maturity with the mod. It actually looks like a really cool project.

Bruhnanza commented 1 month ago

I apologize for the delayed reply but I understand your opinions and respect your perspective. Your thoughts are shared in large part by the developer of Artifacts as well. I hope you give it greater consideration in the future as you said, as I believe going forward it will a greater alternative. I'm not affiliated with the project; I'm just a user who wanted to leave a suggestion on a mod I use & enjoy to support another. Thank both of you for your work.