- There's now a notice reminding people to change the base URL if they
had a custom base URL and change the paste type (that was something I
personally had problems with when I was testing, so a reminder was
helpful for me).
- Broke down some of the long lines on APIPage.cpp to be more readable.
- Added copyright headers where they were missing.
- Changed the paste service display names to the names they are more
commonly known by.
- Changed the default hastebin base URL to https://hst.sh due to the
acquisition of https://hastebin.com by Toptal.
(Hopefully) this makes implementing updaters using external libraries easier on other platforms. To implement an updater on a new platform, create a new class that implements the pure virtual methods from `ExternalUpdater` and add code in the `UpdateChecker` initializer to initialize the new class.
To actually get automatic updates going, all that needs to happen is that `SparkleUpdater` needs to be initialized.
The rest of the functions can be connected to elements in the UI.
Two new build options are added:
`MAC_SPARKLE_PUB_KEY`: the public key used to verify the signatures of the appcast
`MAC_SPARKLE_APPCAST_URL`: the URL where the `appcast.xml` is located
If the updater should be disabled on macOS, set either of these to an empty string.
Mojang introduced a new structure for natives, notably for LWJGL.
Now instead of using the `natives` structure of the version format, Mojang
chose to create a seperate library entry for each platform, which uses
the `rules` structure to specify the platform. These new split natives
carry the same groupId and artifactId, as the main library, but have an
additional classifier, like `natives-linux`.
When comparing GradleSpecifiers we don't look at the classifier, so when
the launcher sees an artifact called `org.lwjgl:lwjgl:3.3.1` and right
after that an artifact called `org.lwjgl:lwjgl:3.3.1:natives-linux`, it
will treat it as "already added" and forget it.
This change will include the classifier in that comparison.
Sometimes, the version field, that is supposed to be a string, was a
null instead. Inspecting other entries, seems like the default for not
having a version should be "", so I made it like that in case the
version was null.
I hope this fixes the issue :^)