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

NBT tags storing block positions or entity UUIDs are not written and read correctly in structures

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Resolution: Unresolved
    • Affects Version/s: Minecraft 1.10.2, Minecraft 16w39c, Minecraft 16w44a, Minecraft 1.11.2, Minecraft 1.12, Minecraft 1.12.2, Minecraft 18w20c, Minecraft 18w22a, Minecraft 1.13-pre1, Minecraft 1.13-pre3, Minecraft 1.13-pre6, Minecraft 1.13-pre7
    • Fix Version/s: None
    • Confirmation Status:
      Confirmed
    • Category:
      (Unassigned)

      Description

      The bug

      NBT tags of entities and tile entities which refer to block positions or entity UUIDs are not treated specially. This causes entities to spawn at the old position where they were saved or entities to refer to other entities which do not exist anymore because new UUIDs were assigned.

      NBT tag detecting

      The problem is that currently not every NBT tag has its own data parameter and the data parameter does not contain information about what it actually stores. Because of that these tags need to be hardcoded.

      If at some point every tag has its own data parameter, it could contain information like:

      • UUID of self
      • UUID of other
      • Position of self
      • ...
        and then there could be a single method which removes tags with "Position of self" and save "Position of other" as relative coordinates.

      Possible structure file representation

      See this reddit discussion

      Affected tags (last updated for 16w39c)

      Entities

      • Entity (class)
        • Pos
      • EntityLiving (class)
        • Leash
          • X, Y, Z
          • UUIDMost
          • UUIDLeast
      • horse
        • OwnerUUID
      • llama
        • OwnerUUID
      • EntityTameable (class)
        • OwnerUUID
      • zombie_pigman
        • HurtBy
      • shulker
        • APX, APY, APZ
      • vex
        • BoundX, BoundY, BoundZ
      • EntityThrowable (class), EntityArrow (class), EntityFireball (class), (EntityFishHook (class))
        • xTile, yTile, zTile
      • area_effect_cloud
        • OwnerUUIDMost, OwnerUUIDLeast
      • ender_crystal
        • BeamTarget
          • X, Y, Z
      • item_frame, painting
        • TileX, TileY, TileZ
      • shulker_bullet
        • Owner
          • L, M
          • X, Y, Z
        • Target
          • L, M
          • X, Y, Z

      Tile Entities

      • TileEntity (class)
        • x, y, z
      • end_gateway
        • ExitPortal
          • X, Y, Z

      Nested data

      Entities

      • Entity (class)
        • Passengers
      • spawner_minecart
        • SpawnData
        • SpawnPotentials
          • Entity
      • falling_block
        • TileEntityData
      • item
        • Item
      • potion
        • Potion
      • donkey, llama, mule
        • Items
      • Horse types
        • SaddleItem
      • llama
        • DecorItem
      • horse
        • ArmorItem
      • item_frame
        • Item
      • chest_minecart, hopper_minecart
        • Items
      • fireworks_rocket
        • FireworksItem
      • EntityLiving (class), armor_stand
        • ArmorItems
        • HandItems
      • villager
        • Inventory
        • Recipes
          • List entry:
            • buy
            • buyB
            • sell

      Tile entities

      • mob_spawner
        • SpawnData
        • SpawnPotentials
          • Entity
      • brewing_stand, furnace, shulker_box, hopper, dropper, chest
        • Items
      • jukebox
        • RecordItem
      • beacon
        • PaymentItem

      Items

      • Block item creating tile entity
        • BlockEntityTag
      • Items spawning entities
        • EntityTag

      Commands (?)

      Entities
      • commandblock_minecart
        • Command
      Tile entities
      • command_block
        • Command
      • sign
        • Text1, Text2, Text3, Text4
      Items
      • written_book
        • pages

        Attachments

        1. 2018-05-23_09.51.30.png
          2018-05-23_09.51.30.png
          125 kB
        2. 2018-05-23_09.54.20.png
          2018-05-23_09.54.20.png
          136 kB
        3. 2018-05-23_09.54.39.png
          2018-05-23_09.54.39.png
          125 kB
        4. 2018-05-23_09.56.29.png
          2018-05-23_09.56.29.png
          190 kB
        5. 2018-05-23_10.14.14.png
          2018-05-23_10.14.14.png
          137 kB
        6. 2018-05-23_10.20.47.png
          2018-05-23_10.20.47.png
          171 kB
        7. shulker_test.nbt
          0.7 kB

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                marcono1234 [Mod] Marcono1234
              • Votes:
                17 Vote for this issue
                Watchers:
                11 Start watching this issue

                Dates

                • Created:
                  Updated:
                  CHK: