Installer
Installer copied to clipboard
Inject tracky tracky as a library not a file
Is your feature request related to a problem? Please describe.
Currently the ga cid is installed into .minecraft/Impact/cid.txt, however this has the problem of not being found if the minecraft profile is running in a custom run directory.
A bad approach
We could install it to .minecraft/impact_cid.txt, or even keep the current install location, and simply change the client to look for the .minecraft launcher directory rather than the current run directory. The problem with this is that it requires a bunch of special code in the client and it also is rather hacky, and leaves files in somewhat random locations.
Describe the solution you'd like
Rather, I'd like to take advantage of the launcher's libraries system. If we specify a library as follows, then the launcher will search .minecraft/libraries/net/impactclient/tracky-cid/1.0/tracky-cid-1.0.jar and if found, add it to the classpath.
"libraries": [
{
"name": "net.impactclient:tracky-cid:1.0"
}
]
The key advantage here is that the cid will always be added to the classpath, regardless of where the game is running.
Additional context
It's important to note that the library can only specify name property. If it also specifies an artifact.download object we would be required to provide a sha1 hash. Given the json doesn't know the cid, that'd be pretty difficult...
We also can't specify a custom file extension, since the launcher doesn't understand maven's @ext syntax (it'd just look for [email protected] lol), so it has to be a jar.
We could install it to
.minecraft/impact_cid.txt, or even keep the current install location, and simply change the client to look for the .minecraft launcher directory rather than the current run directory. The problem with this is that it requires a bunch of special code in the client and it also is rather hacky, and leaves files in somewhat random locations.
The client depends on the installer, so it can just do Tracky.CID and it'll work everywhere; I don't see the issue? This was my intent while writing it lol
[The client] can just do
Tracky.CIDand it'll work everywhere;
That's better than doing mc.gameDir + "/Impact/cid.txt", and it does resolve the issue from a technical perspective.
I don't see the issue?
In that case, there technically isn't an issue. I'm still uncomfortable about having a /Impact directory which exists only for the cid file, in the (likely) scenario where all game profiles run in a non-.minecraft directory.
The kind of user who uses distinct run directories for different profiles is also the kind who would resent us writing random files to the main .minecraft directory.