mojira.dev
MC-133503

Control settings from 1.12.2 can get completely lost when upgrading to 1.13

The bug

When upgrading from 1.12.2 to 1.13 with the attached options.txt file, all control settings are lost. Usually, the control options are converted correctly.

Apparently, this happens when the APPS key is used for any control, but I'm not too sure about that.

To reproduce

  1. Create a new profile with its game directory in an empty folder and launch 1.12.2 with it.

  2. Close the game and replace the options.txt file with the one I attached to this report.

  3. Change the profile so that it launches 1.13-pre8 instead. Launch 1.13-pre8 using that profile.

  4. Notice that all the control settings are gone.

Error message

Something went wrong upgrading!
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.substring(String.java:1919)
	at aar.a(SourceFile:24)
	at aar$$Lambda$791/835175041.apply(Unknown Source)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at aar.a(SourceFile:28)
	at aar$$Lambda$790/293786079.apply(Unknown Source)
	at java.util.Optional.map(Optional.java:215)
	at aar.a(SourceFile:20)
	at aar$$Lambda$789/761923430.apply(Unknown Source)
	at com.mojang.datafixers.Typed.lambda$updateCap$9(Typed.java:160)
	at com.mojang.datafixers.Typed$$Lambda$779/907089215.apply(Unknown Source)
	at com.mojang.datafixers.optics.Traversal$Instance$1.lambda$wander$0(Traversal.java:32)
	at com.mojang.datafixers.optics.Traversal$Instance$1$$Lambda$780/1957188885.apply(Unknown Source)
	at com.mojang.datafixers.util.Pair$Instance.traverse(Pair.java:81)
	at com.mojang.datafixers.optics.profunctors.TraversalP$1.lambda$wander$0(TraversalP.java:48)
	at com.mojang.datafixers.optics.profunctors.TraversalP$1$$Lambda$781/731584462.apply(Unknown Source)
	at com.mojang.datafixers.optics.Traversal$Instance$1.lambda$wander$0(Traversal.java:32)
	at com.mojang.datafixers.optics.Traversal$Instance$1$$Lambda$780/1957188885.apply(Unknown Source)
	at com.mojang.datafixers.optics.Traversal$Instance$1.lambda$wander$0(Traversal.java:32)
	at com.mojang.datafixers.optics.Traversal$Instance$1$$Lambda$780/1957188885.apply(Unknown Source)
	at com.mojang.datafixers.Typed.updateCap(Typed.java:160)
	at com.mojang.datafixers.Typed.update(Typed.java:134)
	at com.mojang.datafixers.Typed.update(Typed.java:129)
	at aar.a(SourceFile:19)
	at aar$$Lambda$493/885343736.apply(Unknown Source)
	at com.mojang.datafixers.DataFix.lambda$null$4(DataFix.java:74)
	at com.mojang.datafixers.DataFix$$Lambda$762/1293967722.apply(Unknown Source)
	at com.mojang.datafixers.functions.Comp.eval(Comp.java:27)
	at com.mojang.datafixers.functions.PointFreeFunction.lambda$null$0(PointFreeFunction.java:15)
	at com.mojang.datafixers.functions.PointFreeFunction$$Lambda$760/1251709638.apply(Unknown Source)
	at com.mojang.datafixers.FunctionType$$Lambda$623/1700123096.apply(Unknown Source)
	at com.mojang.datafixers.types.Type.capWrite(Type.java:153)
	at com.mojang.datafixers.types.Type.lambda$null$7(Type.java:144)
	at com.mojang.datafixers.types.Type$$Lambda$758/1290606579.apply(Unknown Source)
	at java.util.Optional.map(Optional.java:215)
	at com.mojang.datafixers.types.Type.lambda$readAndWrite$8(Type.java:143)
	at com.mojang.datafixers.types.Type$$Lambda$757/494367851.apply(Unknown Source)
	at java.util.Optional.flatMap(Optional.java:241)
	at com.mojang.datafixers.types.Type.readAndWrite(Type.java:142)
	at com.mojang.datafixers.DataFixerUpper.update(DataFixerUpper.java:78)
	at hk.a(SourceFile:493)
	at hk.a(SourceFile:489)
	at cfj.a(SourceFile:1042)
	at cfj.a(SourceFile:804)
	at cfj.<init>(SourceFile:377)
	at cfg.am(SourceFile:415)
	at cfg.a(SourceFile:377)
	at net.minecraft.client.main.Main.main(SourceFile:144)

I attached the full log.

Attachments

Comments 11

Still affects 1.13-pre9. (French AZERTY here, but that shouldn't matter)

@unknown, Minecraft was able to successfully convert the options.txt file I attached to this report in 1.13-pre9. Could you attach your 1.12.2 options.txt file?

Please note that keybinds bound to some keys may be cleared (unbound): some are no longer supported in new LWJGL and some, like numpad divide, subtract and decimal, are not migrated correctly due to missing mappings (but can be later set in options).

Still affects 1.13-pre10 for me. I don't complicated keys, just some letters and numbers. Linked my options.txt

I'm not able to reproduce with your options.txt... could you attach your latest.log for when it happens?

1 more comments

Ah, that's unfortunate and probably not fixable because of the differences between LWJGL 2 and LWJGL 3. This report was about all keybinds being completely reset, though.

See also MC-121278, it's also about difficulties with different keyboard layouts in 1.13.

This happened to me when upgrading from 1.12.2 to 1.13

@unknown, did all the controls reset or only a few ones?

@unknown No, actually when you are using the azerty keyboard layout, and you upgrade from 1.12.2 to 1.13, your controls get changed to the querty layout. So for example A gets changed into Q, Z gets changed into W etc.

This is not what this report was about though.

Edit: For your issue, please see MC-133407

violine1101

boq

Unconfirmed

Minecraft 1.13-pre8

Minecraft 1.13-pre9

Retrieved