Skip to content

Map data is continually sent once a second even with no changes #11677

@ghost

Description

Expected behavior

Player with map in inventory, map isn't changing at all, no packets sent

Observed/Actual behavior

Player with map in inventory, map isn't changing at all, packet constantly being resent

Code analysis:

// ALWAYS EVALUATED AS TRUE ONCE A SECOND
 if ((true || this.dirtyDecorations) && this.tick++ % 5 == 0) { // CraftBukkit - custom maps don't update this yet
                this.dirtyDecorations = false;
                // CraftBukkit start
                java.util.Collection<MapDecoration> icons = new java.util.ArrayList<MapDecoration>(); // EMPTY LIST

                if (vanillaMaps) addSeenPlayers(icons); // Paper

                for (org.bukkit.map.MapCursor cursor : render.cursors) {
                    if (cursor.isVisible()) {
                        icons.add(new MapDecoration(CraftMapCursor.CraftType.bukkitToMinecraftHolder(cursor.getType()), cursor.getX(), cursor.getY(), cursor.getDirection(), Optional.ofNullable(PaperAdventure.asVanilla(cursor.caption()))));
                    }
                }
                collection = icons; // COLLECTION ALWAYS SET TO EMPTY LIST
                // CraftBukkit end
            } else {
                collection = null;
            }
  
            // COLLECTION IS NEVER NULL
            return collection == null && worldmap_c == null ? null : new ClientboundMapItemDataPacket(mapId, MapItemSavedData.this.scale, MapItemSavedData.this.locked, collection, worldmap_c);

Steps/models to reproduce

Get a map, analyse packets

Plugin and Datapack List

Protocollib (for viewing packets)

Paper version

This server is running Paper version 1.21.3-DEV-master@5f0932b (2024-11-25T22:58:49Z) (Implementing API version 1.21.3-R0.1-SNAPSHOT)
You are 3 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
Previous version: 1.21.1-DEV-d348cb8 (MC: 1.21.1)

Other

Sending packet dump:

 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442026],[dayTime(long):234442026],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442046],[dayTime(long):234442046],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442066],[dayTime(long):234442066],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442086],[dayTime(long):234442086],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442106],[dayTime(long):234442106],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442126],[dayTime(long):234442126],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 BLOCK_CHANGE [pos(net.minecraft.core.BlockPos):BlockPos{x=1000030, y=73, z=1000040}],[blockState(net.minecraft.world.level.block.state.BlockState):Block{minecraft:air}],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442146],[dayTime(long):234442146],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442166],[dayTime(long):234442166],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442186],[dayTime(long):234442186],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 KEEP_ALIVE [id(long):21663944336],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442206],[dayTime(long):234442206],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442226],[dayTime(long):234442226],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 UPDATE_TIME [gameTime(long):234442246],[dayTime(long):234442246],[tickDayTime(boolean):true],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],
 MAP [mapId(net.minecraft.world.level.saveddata.maps.MapId):MapId[id=13]],[scale(byte):0],[locked(boolean):false],[decorations(java.util.Optional):Optional[[]]],[colorPatch(java.util.Optional):Optional.empty],

Metadata

Metadata

Assignees

No one assigned

    Labels

    status: acceptedDisputed bug is accepted as valid or Feature accepted as desired to be added.version: 1.21.3Game version 1.21.3

    Type

    No fields configured for Bug.

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions