Installer icon indicating copy to clipboard operation
Installer copied to clipboard

Inject tracky tracky as a library not a file

Open LeafHacker opened this issue 6 years ago • 2 comments

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.

LeafHacker avatar Sep 28 '19 11:09 LeafHacker

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

leijurv avatar Sep 28 '19 17:09 leijurv

[The client] can just do Tracky.CID and 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.

LeafHacker avatar Sep 30 '19 17:09 LeafHacker