Reika's Update Checker

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord
Status
Not open for further replies.

trajing

New Member
Jul 29, 2019
3,091
-14
1
Only if I lose my mind and start doing crazy things. Despite the "King" moniker, I have no desire to be a thought leader or whatever you want to call it. Even so, I'd like to think I don't steer people wrong.

I agree. It's a huge problem with FastCraft at the moment.


As far as an API, I'm all for a unified system. That's why CoFH uses one:
https://github.com/CoFH/CoFHCore/tree/master/src/main/java/cofh/mod/updater

It's not quite API-ified yet but we could probably layer an interface on top of it. It also does exactly what you're saying there. The thing contained in the mod is the URL for the update checker. In our case, we use GitHub: https://github.com/CoFH/Version

The near-term goal is to implement a /cofh menu command which will allow for mods to plug into it with update notices and things of that nature. I'm not averse to other mods making use of it.

The hope is that people can easily disable update notifications (CoFHCore has a single flag to enable/disable ALL text notices), but if there's something truly critical, we're going to pester you no matter what for the sake of your world. Thankfully, we haven't had to issue a Critical update yet.
One question: Is there a way (or will there be) for another mod to grab what needs updating and the severity level of that? That would be a good idea, so that it could be more of a GUI tacked on to the start screen (or whatever the screen with singleplayer/multiplayer/mods/etc is called).
 

trajing

New Member
Jul 29, 2019
3,091
-14
1
Yes it can, if the data is inside the mod being used.
The data inside the mod assumes that said mod is the most recent, because there's no point in releasing an update and, in the same post, release another, more recent version. There is no way to find out without checking against a server or - you guessed it - updating!
 

Strikingwolf

New Member
Jul 29, 2019
3,709
-26
1
The data inside the mod assumes that said mod is the most recent, because there's no point in releasing an update and, in the same post, release another, more recent version. There is no way to find out without checking against a server or - you guessed it - updating!
Oh yeah, I'm sorry that I don't think things through traj :p

/me facepalms
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
The hope is that people can easily disable update notifications (CoFHCore has a single flag to enable/disable ALL text notices), but if there's something truly critical, we're going to pester you no matter what for the sake of your world. Thankfully, we haven't had to issue a Critical update yet.
I like this approach.



This said, I still have no idea how this will address the "bad pack makers not installing version checker mod" problem.
 

King Lemming

New Member
Jul 29, 2019
664
0
0
One question: Is there a way (or will there be) for another mod to grab what needs updating and the severity level of that? That would be a good idea, so that it could be more of a GUI tacked on to the start screen (or whatever the screen with singleplayer/multiplayer/mods/etc is called).
Not sure. Right now it's still in the design doc and we're more focused on a couple of backend features first, like json recipe-managers for TE.

We could probably standardize something for it though.
I like this approach.
This said, I still have no idea how this will address the "bad pack makers not installing version checker mod" problem.
Well that's easy. If the pack doesn't have CoFH Core, it's already a bad pack. :D

...I'm gonna assume y'all know I'm kidding on that.
 
Last edited:

goreae

Ultimate Murderous Fiend
Nov 27, 2012
1,784
2,649
273
Raxacoricofallapatorius
I like this approach.



This said, I still have no idea how this will address the "bad pack makers not installing version checker mod" problem.
You could make the version checker mod a dependency for dragonAPI. That way players need to have the mod installed to use your mods.

And I'm pleasantly surprised with how this thread turned out. Instead of a massive clusterfrak and several bans, y'all came together on a reasonable solution that satisfies most people.
 

BaileyH

New Member
Jul 29, 2019
858
4
0
I like this approach.



This said, I still have no idea how this will address the "bad pack makers not installing version checker mod" problem.
Or you know. It is none of your business trying to force pack makers to update. I an sure it has been stated a million times before but you completely disregard the chances of an update breaking something or causing an incompatibility issue that is all too frequent in mod packs.

Yeah it is your mod and your license and whatever, but it is hard to support and appreciate someone who thinks they need to be in total control over something that I HIGHLY doubt reduces false bug reports.

Let the user be in control. You make unique and cool mods, but the fact that this is even a thing is silly. I am glad you are changing it. It really speaks well for you.
 

trajing

New Member
Jul 29, 2019
3,091
-14
1
Or you know. It is none of your business trying to force pack makers to update. I an sure it has been stated a million times before but you completely disregard the chances of an update breaking something or causing an incompatibility issue that is all too frequent in mod packs.

Yeah it is your mod and your license and whatever, but it is hard to support and appreciate someone who thinks they need to be in total control over something that I HIGHLY doubt reduces false bug reports.

Let the user be in control. You make unique and cool mods, but the fact that this is even a thing is silly.
Eighteen minutes after we're commended on being able to stay nice and civil, this happens.
We have come to a conclusion and everyone here seems happy. Could we not resurrect an issue that's been dead for an hour?
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
You could make the version checker mod a dependency for dragonAPI. That way players need to have the mod installed to use your mods.

And I'm pleasantly surprised with how this thread turned out. Instead of a massive clusterfrak and several bans, y'all came together on a reasonable solution that satisfies most people.
Or maybe disable my own version checker if this mod is installed. I like this idea. :)
 

Lethosos

New Member
Jul 29, 2019
898
-7
0
Eighteen minutes after we're commended on being able to stay nice and civil, this happens.
We have come to a conclusion and everyone here seems happy. Could we not resurrect an issue that's been dead for an hour?
Is it too early to call Demise a necromancer? The corpse needs to stew properly first.

Sent from my SGH-T769 using Tapatalk 2
 

goreae

Ultimate Murderous Fiend
Nov 27, 2012
1,784
2,649
273
Raxacoricofallapatorius
Is it too early to call Demise a necromancer? The corpse needs to stew properly first.

Sent from my SGH-T769 using Tapatalk 2
It is when his comment rehashes what has already been says and is not adding to the discussion at all besides fostering further hostility. A conclusion had been reached. Reika is happy. His supporters are happy. The opposers are happy. We don't need more fuel on the dimly glowing embers of the shit flame.
 
  • Like
Reactions: Padfoote

Lethosos

New Member
Jul 29, 2019
898
-7
0
I was being sarcastic. Next time I'll mention that in point 1 text.

Sent from my SGH-T769 using Tapatalk 2
 
  • Like
Reactions: RedBoss

Someone Else 37

Forum Addict
Feb 10, 2013
1,876
1,440
168
Well, this came out a lot more pleasantly that I, for one, expected.

I'll start by throwing this out there: I am pretty well in support of most of the things that Reika has done, including the old DragonAPI update marquee and the new popup. I feel like I'm in a minority here, but at least I am evidence that the minority isn't nonexistent.

Yes, the marquee was annoying, but it was there for a very good reason. I've only seen a fraction of the nonsense and vitriol that's been thrown in Reika's direction, and were it directed at me, it'd be more than enough for me to seriously rethink modding at all. Props to Reika for staying strong through all that.

The popup, I would say, is much less annoying. Among other things, it should let me take screenshots without having to go out of my way to edit the banner out.

I'm also fully in support of hooking into a version checker built into CoFH Core. I'd be wary about relying on NotEnoughMods, say, since I don't really have much reason to have that mod installed. However, I already have CoFH Core... so no problem there. There's a lot of modpacks out there that already have Thermal Expansion, and I'd wager that a good chunk of those that don't have Thermal Foundation for the worldgen configuration capabilities.

However, the main reason that I still have the marquee on my modified Infinity client is that updating mods is just annoying. When I load up Infinity+Reikamods these days (I'm current playing Pathfinder), it's usually because there's something in one of the mods that I want to test quickly in Creative mode. So I load it up, and when I log into the world a few minutes later, I get the marquee saying "DragonAPI is out of date! And RotaryCraft is out of date! And ChromatiCraft...". And then I'm like "Oh yeah, I should update those sometime..." And then I promptly ignore the marquee and never get around to actually updating, because I just want to see how quickly some Thaumic Tinkerer item can actually ruin a world and can't be arsed to close out Minecraft and update some totally unrelated mods.

So, I propose a solution: Make it possible to update the mods in-game. If I understand how Minecraft and Java work correctly, neither actually need the jar files after the game starts. So the outdated jars in the Mods folder could be disabled by adding ".disabled" to the filename, then the new jars could be downloaded directly to the Mods folder, so they load up next time the game starts. This could be added to the DragonAPI popup or the CoFH Core thing- preferably the latter, for compatibility with more mods.

All that would have to be made transparently obvious to the user, of course- if Reika just added an "Update" button to his popup with no explanation (outside of this forum/the MCF thread/the changelogs), I could easily see people complaining about "What if it the new update breaks my world? I want to be able to go back to the old version in case something breaks.". Something like "Click here to update <list of mods>. This will install <new versions> to your mods folder without deleting the old versions, so you can easily go back if something breaks. These changes will take effect the next time you open Minecraft." would do it. Better yet, have clicked-by-default checkboxes to each of the mods in the list, in case anyone doesn't want to update a particular mod for some reason.

If that's too much, at the very least, pop up a reminder when the client closes that some mods are out of date. A popup or chat message when the game starts makes me go "Eh, I'll do it later" and then forget about it. If I'm reminded when I leave the game (by, say, a "Some mods are out of date!" dirtscreen that lasts for two seconds when disconnecting from the (internal) server), I'd be much more likely to actually download and install the updates while I'm thinking about it.

Oh, and one more thing, this one more Reika-specific. I'd appreciate it if whatever notification (other than an easily-ignored startup chat message) didn't appear until, say, three days after the most recent version. I don't want to download DragonAPI, RoC, ReC, ChC, Geostrata, and ExpandedRedstone v7A just to download them all again tomorrow. With Reika's update cycle, this means that I'll just get the latest updates. Keep the chat messages for all updates, though (unless the non-critical ones are explicitly disabled)- I don't want to miss out on something cool in Botania or any other mod that updates almost daily, for instance.

TL;DR: I find Reika's notifications annoying, but still acceptable, all things considered. I think the best solution would be a simple way to update mods in-game, preferably built into either DragonAPI or a mod such as CoFH Core.
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
So, I propose a solution: Make it possible to update the mods in-game. If I understand how Minecraft and Java work correctly, neither actually need the jar files after the game starts. So the outdated jars in the Mods folder could be disabled by adding ".disabled" to the filename, then the new jars could be downloaded directly to the Mods folder, so they load up next time the game starts. This could be added to the DragonAPI popup or the CoFH Core thing- preferably the latter, for compatibility with more mods.
With how many accusations my ingame bug reporting form got of trying to sneak data, I see this as going even worse. Automated downloads - though ChickenBones somehow gets away with it with DepLoader - are a nuclear drama bomb.


If that's too much, at the very least, pop up a reminder when the client closes that some mods are out of date. A popup or chat message when the game starts makes me go "Eh, I'll do it later" and then forget about it. If I'm reminded when I leave the game (by, say, a "Some mods are out of date!" dirtscreen that lasts for two seconds when disconnecting from the (internal) server), I'd be much more likely to actually download and install the updates while I'm thinking about it.
I am OK with this, but is it possible? What if you just click the "X" on the top of the window?

Oh, and one more thing, this one more Reika-specific. I'd appreciate it if whatever notification (other than an easily-ignored startup chat message) didn't appear until, say, three days after the most recent version. I don't want to download DragonAPI, RoC, ReC, ChC, Geostrata, and ExpandedRedstone v7A just to download them all again tomorrow. With Reika's update cycle, this means that I'll just get the latest updates.
I want to do this too, but I currently lack a means to do so, namely because I have no idea how the mod can know when an update was released (the original idea of putting it in the version file worked terribly because I forgot so often).
 

Someone Else 37

Forum Addict
Feb 10, 2013
1,876
1,440
168
With how many accusations my ingame bug reporting form got of trying to sneak data, I see this as going even worse. Automated downloads - though ChickenBones somehow gets away with it with DepLoader - are a nuclear drama bomb.
Point taken. This might be better left to CoFH Core, if/when their checker system becomes available for other mods to use.
(Although if you want to be nitpicky, my intention was for it to require two or three mouseclicks to download anything. Which may still enrage the masses.)

I am OK with this, but is it possible?
I have no idea. I'm just spewing ideas right now.
I was thinking it could be tied into the "Client disconnecting from server" event, but I don't know if mods are able to use those to take over the GUI momentarily.

What if you just click the "X" on the top of the window?
Then you may or may not get the reminder, depending on how it's implemented. I never intended it to replace the chat messages or login popup, though.

I want to do this too, but I currently lack a means to do so, namely because I have no idea how the mod can know when an update was released (the original idea of putting it in the version file worked terribly because I forgot so often).
Most of the groundwork for something similar to this probably already exists in your "Notify once per version" system. I assume that it currently works by caching the latest mod versions locally somewhere, and only notifying the user if the cached version numbers don't match those returned by the server.

In short:
  1. Contact whatever server to get the current versions of the mods.
  2. Check if they match those stored in a local file somewhere.
    1. If not, overwrite the file with the current local time and mod versions and exit silently.
    2. If so, compare the timestamp in the file to the current local system time.
      1. If they differ by less then three days, exit silently. Do not edit/overwrite the file.
      2. If they differ by more than three days, notify the user.
Granted, this doesn't quite do the same thing as comparing the local time to when the update was actually released, but being notified three days after the the client first becomes aware of the existence of a new version that's still current should be close enough for most users.
 

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
Point taken. This might be better left to CoFH Core, if/when their checker system becomes available for other mods to use.
(Although if you want to be nitpicky, my intention was for it to require two or three mouseclicks to download anything. Which may still enrage the masses.)
The problem was that people say things like "I don't know what else you could be downloading".

Most of the groundwork for something similar to this probably already exists in your "Notify once per version" system. I assume that it currently works by caching the latest mod versions locally somewhere, and only notifying the user if the cached version numbers don't match those returned by the server.

In short:
  1. Contact whatever server to get the current versions of the mods.
  2. Check if they match those stored in a local file somewhere.
    1. If not, overwrite the file with the current local time and mod versions and exit silently.
    2. If so, compare the timestamp in the file to the current local system time.
      1. If they differ by less then three days, exit silently. Do not edit/overwrite the file.
      2. If they differ by more than three days, notify the user.

This can be done.

Also, WTF forums...
 
Last edited:

JohnOC

New Member
Jul 29, 2019
39
0
0
Botania and a few other mods have a clickable link in the outdated version message that opens the download page for the mod in the default browser. You still have to copy the file into the mods folder yourself and remove or disable the old one. To my mind this is still an order of magnitude more convenient than having to remember to go download it while still avoiding the 'I don't know what you are downloading" complaint by making the user actually do the download in their browser.

Edit to add: I think this feature is in the CoFH update checker too, which you're already thinking about using..
 
Last edited:

Reika

RotaryCraft Dev
FTB Mod Dev
Sep 3, 2013
5,079
5,331
550
Toronto, Canada
sites.google.com
Botania and a few other mods have a clickable link in the outdated version message that opens the download page for the mod in the default browser. You still have to copy the file into the mods folder yourself and remove or disable the old one. To my mind this is still an order of magnitude more convenient than having to remember to go download it while still avoiding the 'I don't know what you are downloading" complaint by making the user actually do the download in their browser.

Edit to add: I think this feature is in the CoFH update checker too, which you're already thinking about using..
I am willing to implement it myself if someone shows me how.
 
Status
Not open for further replies.