Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-123466

Scheduled block updates are lost when upgrading a world from 1.12.2

    Details

    • Confirmation Status:
      Confirmed

      Description

      To reproduce

      1. Create a world in 1.12.2
      2. Place a line of repeaters, maybe 10 long, and a button to activate it
      3. Press the button
      4. Pause the game when the line of repeaters is halfway activated
      5. Save and quit to title
      6. Open the world in 17w50a
        → The repeater line is stuck in the middle

      Code analysis

      Based on 17w50a decompiled using CFR 0_119

      It looks like the method b(fm) of the static inner class vt.b tries to upgrade the TileTicks of a chunk based on the block at the location of the tile tick (see MC-123692). The position is encoded to y << 8 | z << 4 | x and passed to the method vt.b.a(int). It appears the person who write this assumed the position is an offset in the chunk, but it is the position in the world. This means any scheduled update not inside (0, 0, 0) → (15, 15, 15) (all values inclusive) can be lost.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                fry [Mojang] Georgii Gavrichev
                Reporter:
                redstonehelper [Mod] redstonehelper
              • Votes:
                5 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  CHK: