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

The end obsidian platform resets every time entities go through the end portal, which can cause blocks to be deleted

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • 1.21 Pre-Release 1
    • Minecraft 1.4.2, 1.14.4, 1.16.1, 1.16.3, 1.16.4 Pre-release 1, 1.16.4 Pre-release 2, 1.16.4 Release Candidate 1, 1.16.4, 20w45a, 20w46a, 20w48a, 20w49a, 20w51a, 21w03a, 1.16.5, 21w05a, 21w05b, 21w06a, 21w07a, 21w08b, 21w10a, 21w11a, 21w13a, 21w14a, 21w17a, 21w20a, 1.17, 1.17.1 Pre-release 1, 1.17.1, 21w39a, 21w42a, 1.18, 1.18.1, 22w05a, 1.18.2 Pre-release 1, 1.18.2 Release Candidate 1, 1.18.2, 22w14a, 1.19 Pre-release 4, 1.19 Pre-release 5, 1.19 Release Candidate 1, 1.19 Release Candidate 2, 1.19, 22w24a, 1.19.1, 1.19.2, 1.19.3, 23w03a, 23w04a, 23w05a, 1.19.4, 1.20 Release Candidate 1, 1.20, 1.20.1, 24w11a, 1.20.6
    • None
    • Confirmed
    • Block states
    • Normal
    • Platform

      The Bug:

      The end obsidian platform resets every time entities go through the end portal, which can cause blocks to be deleted.

      This notably results in containers like chests or shulker boxes which might contain valuable items within them being deleted.

      Steps to Reproduce:

      1. Enter the end by using an end portal.
      2. Place some blocks on top of and around the obsidian platform that you spawn on.
      3. Take note of the blocks that you've just placed.
      4. Run the "/kill" command.
      5. Enter the end once again and attempt to locate the blocks you just previously placed.
      6. Take note as to whether or not the end obsidian platform resets every time entities go through the end portal, which can cause blocks to be deleted.

      Observed Behavior:

      The end obsidian platform resets every time entities go through the end portal, which can cause blocks to be deleted.

      Expected Behavior:

      Blocks on the end obsidian platform would not be deleted every time an entity goes through the end portal.

      Code Analysis:

      Code analysis by Avoma can be found below.

      The following is based on a decompiled version of Minecraft 1.18.1 using MCP-Reborn.

      net.minecraft.world.entity.Entity.java
      public abstract class Entity implements Nameable, EntityAccess, CommandSource {
         ...
         public Entity changeDimension(ServerLevel $sl) {
            if (this.level instanceof ServerLevel && !this.isRemoved()) {
               ...
               if (portalinfo == null) {
                  return null;
               } else {
                  ...
                  if (entity != null) {
                     ...
                     if ($sl.dimension() == Level.END) {
                        ServerLevel.makeObsidianPlatform($sl);
                     }
                  }
                  ...

      If we look at the above class, we can see that when an entity enters the end portal, the makeObsidianPlatform() method is called. This method completely regenerates the end obsidian platform (including the space above), causing blocks previously placed at its position to be deleted.

        1. 2021-05-12_14.53.27.png
          596 kB
          [Mod] Avoma
        2. MC-902.mp4
          5.30 MB
          [Mod] Avoma

            HugoHagglund [Mojang] SHugoh
            Avoma [Mod] Avoma
            Votes:
            34 Vote for this issue
            Watchers:
            22 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: