Ender IO Forestry

Ender IO Forestry

954k Downloads

5.1.51 EnderIO crashes during start when launched with Technic Launcher

BlueKingMuch opened this issue · 10 comments

commented

Issue Description: Due to the latest change in EnderIO-Base (Line 331), the mod is not playable anymore on modpacks created for Technic Launcher.

What happens: During loading, the minecraft instance crashes.

What you expected to happen: To load up an playable status

Steps to reproduce: create a technic modpack, and launch it.

I've created a modpack with only EnderIO & EnderCore.

This can be found here to test: https://www.technicpack.net/modpack/bkm-testpack.1544969

I've seen the changes in the code from EnderIO, that this seems to be some sort of "pirate check".

Please keep in mind, that i don't use a cracked version or something, i use the official Technic Launcher where i log in with my official Minecraft Account.


Affected Versions (Do not use "latest"):

  • EnderIO: 5.1.51
  • EnderCore: 0.5.69
  • Minecraft: 1.12.2
  • Forge: 14.23.5.2838 (also 14.23.5.2847 tested - same result)
  • SpongeForge? no
  • Optifine? no
  • Single Player

crash report: https://hastebin.com/wimomegixo.pl
launcher log: https://hastebin.com/tafuyezuyi.coffeescript

commented

If anyone else has this issue with technic just delete your .technic folder and redownload the technic client and go through the setup process again.

commented

PS: Also, if the technic launcher messes with Mojang's authentication library, I do consider it a "hacked client". That library is off limits for 3rd-party software.

commented

This is not a "pirate check". This class is needed when the player uses an Elytra, if it's missing the client will crash at some point. We're just forcing the class to be loaded early to make sure everything will be fine and that we have a crash report that is very clear on what is happening.

commented

I just found out that there was an issue with my instance, after reinstall it worked flawlessly.

commented

Ok, here is an overview of this issue with the more current information:

  1. The cause is Pirated/Cracked/Hacked/etc. versions of the game being unable to look up the appropriate Elytra texture (to accommodate things like capes) from Mojang. I have yet to hear a single report from someone who has not previously used a pirated version on that hardware.

  2. Technic continues to be an issue, even after the player buys the game, because it was originally set up to use the pirated version.

The Fix is to buy the game, and if you want to continue to use Technic then you have to redo its setup so it actually uses the legal copy.

To reiterate; this was not intended as a "Pirate Check." This came around because Ender IO added an Elytra Upgrade and wants to know how to display it properly, so it has to ask Mojang what it should show. Because the resulting crash was weird, hard to track down, and would cause frequent crashes after people made a lot of progress, this check was added to the startup phase with a clear cause.

While Ender IO did not add this check to block pirated copies, it does not support piracy and thus will not remove or edit this feature to accommodate them.

commented

The Fix is to buy the game, and if you want to continue to use Technic then you have to redo its setup so it actually uses the legal copy.

What might be not intended through this: If you don't have an existing Internet connection (but had it after the login & start), it also crashes through this check. What I've not tested though, what happens if you are in "Offline Mode".

I suspect, that it will also Crash in Offline Mode because there is no timeout handler, which makes a Modded Minecraft with this Mod as an "Online - Only" experience just like many AAA Games this day (which I find sad).

commented
  1. Load up vanilla launcher with a small modpack including Ender IO.

  2. Disconnects internet

  3. game loads just fine.

...

  1. closes game.

  2. open vanilla launcher again, this time it clearly says offline mode.

  3. game loads just fine again.

I am unable to reproduce your issue.

commented

@VT-14 this issue is not exclusive to hacked/pirated launchers, I have had it happen to people when I could clearly verify that they had a legitimate account. They tried the same pack on the Twitch App and it suddenly worked.

Around 100% of the time when this happened on a legitimate account, the user had a non-English locale, such as Turkish, Portuguese or Russian. I think that might be related.

The Technic Launcher works in pretty much the same way as the vanilla Minecraft launcher and launchers like MultiMC. It does not do anything weird to the auth libraries, the only difference is that Technic does not force an English locale (which the Twitch App does).

The next time this issue pops up I'll ask the user to try the coremod version of Locale Fixer instead, or rename their jarfile so it comes earlier alphabetically.

commented

I have had it happen to people when I could clearly verify that they had a legitimate account.

Can you verify that they have never used a pirated copy?

To reiterate, the issue appears to be that Technic will continue to use the pirated version of the game if it was initially set up to use one. I am not a modder (and have no interest in downloading Technic to investigate further), but it seems like Technic duplicates several files during that initial setup, and will continue to use its own duplicated (from a pirated copy) files from that point forward. Hence, the problem remains regardless of the player now owning a legal copy of the game, until they redo the setup for the Technic Launcher.

commented

And that's how rumours start...

Ender IO is not doing any online stuff, it is not even calling program code here. All it does is to make sure that the lookup key MinecraftProfileTexture.Type.ELYTRA (which lives in the Mojang Authentication library) actually is there. That class is needed to ask the texture system for the Elytra texture later in the game, just like MinecraftProfileTexture.Type.SKIN is needed to get the skin and MinecraftProfileTexture.Type.CAPE is needed to get the cape texture. We don't even check if it is there---we just use it and if it's missing the Java runtime will the same way is if we asked a pianist to press 14 keys at the same time.