Hello everyone!
This GitHub issue is in regards to the new version of betterstats
I am working on that I will soon publish an alpha
version of called v3.0.0-alpha.1+fabric-1.20.1
.
There are some important things I'd like to handle here before making a full release one day in the future, and for that I will need to relay some info to the contributors as well. Apologies in advance for the @mention
s, I know the time-zones also differ by a lot as well, so sorry about that as well. The contributors I will tag here are:
... as most of those are the contributors who have contributed in the past like 2 months or so.
So, what's going on?
Altho v3.0
is taking me a long time to make, it will feature some big changes internally, and will have some extra useful features in the front-end as well, one of which you'll get to see in v3.0.0-alpha.1
soon as well. Not gonna lie, I am excited to show that idea to everyone.
However the biggest reason is, given how long it's taking me to fully complete this version, and how much time and effort has to go into this for me, I have decided I will update the license of this project yet again, this time back to LGPL v3.0
, as I now feel like having a license such as MIT
is too permissive, as anyone could take all that time and effort and turn it into proprietary software if they so chose to (which in a way, I now feel uncomfortable with, as I wish to promote openness and freedom).
Why does the license change even matter?
As far as I know (not 100% sure), the contributions so far were all translations, and when one contributes their work to this project, that work is automatically protected by Copyright law. In other words, I have no Copyright rights over your works, as they are all rightfully yours, which is completely fine. The issue starts presenting itself however, when doing things like this, such as changing an entire project's license, as (as far as I know), now I need consent from all Copyright ownership holders of the translation files, to change the license those files are subject to.
TLDR; If you contributed a translation, you own it according to Copyright law, and I need your permission to change the license those file(s) are subject to (as far as I know).
How I'll handle this
I have decided to completely exclude translations from the project for now, and am hoping contributors won't mind having to push them again (sorry for the inconvenience). Alongside that, the translation keys have changed a lot in v3.0-alpha.1
, and I am yet to implement more of them. You may contribute new translations immediately if you wish to, but keep in mind that there will be more stuff to translate in the future than this alpha has to offer right now.
On top of that, TCDCommons API will now need some help with translations as well, all because of that file chooser utility I implemented there (you'll see it in action soon tho, I don't wanna spoil the surprise on what it's for).
-
So yeah, overall, I hope I ain't inconveniencing anyone with those pings or with these news. This is still an alpha that I'll soon release, and it may take a lot more time before a full release, so no need to rush if you do choose to help out. I am hoping I can also gather some feedback from the alpha version as well, altho not much has changed there anyways. If anything, there are more features missing there than there are ready to show off.
Aight, now onto the general info about v3.0
.
What will be new in v3.0
, and why will it exist?
I decided to work on v3.0
from scratch, basically a full rewrite, because of a few flaws I noticed in my mods that I wanted to correct, and because of the changes to the Minecraft's code as well:
- Firstly, the biggest reason is because I wanted to finally implement a proper API into this mod, so other mod developers can make their own cool GUI stuff on the
betterstats
screen and so they could integrate their mods into this mod as well, but my code felt too messy to write an API for. Like, altho it wasn't bad and was written in a clean way, it still wasn't good enough.
- The second biggest reason was because of the Minecraft update
1.20.X
, which made a bunch of changes to the underlying GUI code, forcing me to write a bunch of "spaghetti code" just to quickly push a working version that works with the changes that were made to the game. This of-course, made the code even more messy, making writing a proper API impossible in that state.
- Third reason, altho not the reason I started working on
v3.0
, is because I wish to add even more features into the mod, and as mentioned earlier, one of which will be present in the alpha version.
All features planned to be in v3.0
for now
If you have any suggestions for even more features, let me know.
I will also put a ✅ to indicate if a named feature is present in the alpha version I will publish, so you know what to expect there.
- ✅ Better Stats Screen itself (i mean, obviously)
- ❌ Better Stats Hud; Shows local-player's stats on the in-game-hud while playing
- ❌ Better Stats Network; Server-side utilities that can optionally be installed on the server
- ❌ Seeing other player's stats via the network (may present privacy complications tho, which was overlooked in
v2.X
)
- ❌ Real-time stats HUD updates
- ⏹ Player badge system
- ✅ Ability to register player badges and their corresponding renderers
- ✅ Ability to grant/revoke, as well as save/load player badges
- ❌ Actually having them displayed on the Better Stats Screen
- ⏹ Config system
- ✅ The config file itself and being able to create/edit it
- ❌ Editing the config in-game (didn't implement the screen for that yet)
- ✅ Ability to save and load statistics files (doesn't affect actual stats) (spoiler, or ig technically not, since I just revealed it)
- ❌ Ability to edit stats files and add/remove/modify stats; A stat editor, if you will
- ⏹ API
- ⏹ Player badges - Note: I changed the way they are registered, for better formality reasons. Sorry if that breaks your mods!
- ✅ Ability to create custom stat tabs, and place custom GUIs in there
- ✅ Ability to create custom stat filters for custom stat tabs (not for the built-in stat tabs tho)
- ❌ Ability to put custom menu items into the menu bar - Was gonna put that into alpha, but then I forgot to
- ✅ Ability to open the Better Stats Screen yourself
Some other changes include
- ✅ No more depending on
Architectury API
and Fabric API
. I ditched them, so I don't have to embed them, and so as to take #62 into account. They were causing compatibility and security issues for people ig.
- ✅ Only embeds
TCDCommons
, so people don't have to be inconvenienced by having to download it as well.
-
So in other words, a bunch of stuff is missing for now, but I'll work on implementing those as well, and I will be adding some extra features I may come up with such as that file system thingy. I personally find it so cool that people will now be able to share their stats remotely, via files.
Also, keep in mind the API
code stuff may be subject to change while still in development, but I'll try my best to not make changes to it, so any potential developers can be more ready to work with the API.
If you wish to work with this mod's API, register player badges and their renderers, and so on, and you need help with it, feel free to reach out, and even provide feedback on what to implement. Also, I don't have a Gradle repo, so I guess use CurseMaven or local/embedded jar files or something.
TLDR
There's a lot going on ig. Sorry for making you all read thru all that, especially the contributors I tagged in here. Have a great day!