<|start_filename|>src/main/java/net/glowstone/net/message/play/entity/EntityMetadataMessage.java<|end_filename|>
package net.glowstone.net.message.play.entity;

import com.flowpowered.networking.Message;
import lombok.Data;
import net.glowstone.entity.meta.MetadataMap;

import java.util.List;

@Data
public final class EntityMetadataMessage implements Message {

    private final int id;
    private final List<MetadataMap.Entry> entries;

}


<|start_filename|>src/main/java/net/glowstone/net/message/play/game/ChunkBulkMessage.java<|end_filename|>
package net.glowstone.net.message.play.game;

import com.flowpowered.networking.Message;
import lombok.Data;

import java.util.List;

@Data
public final class ChunkBulkMessage implements Message {

    private final boolean skyLight;
    private final List<ChunkDataMessage> entries;

}


<|start_filename|>src/main/java/net/glowstone/block/blocktype/BlockFire.java<|end_filename|>
package net.glowstone.block.blocktype;

import net.glowstone.block.GlowBlock;
import net.glowstone.block.GlowBlockState;
import net.glowstone.entity.GlowPlayer;
import org.bukkit.Material;
import org.bukkit.block.BlockFace;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.Vector;

import java.util.Collection;

public class BlockFire extends BlockNeedsAttached {

    @Override
    public void onNearBlockChanged(GlowBlock block, BlockFace face, GlowBlock changedBlock, Material oldType, byte oldData, Material newType, byte newData) {
        updatePhysics(block);
    }

    @Override
    public boolean canOverride(GlowBlock block, BlockFace face, ItemStack holding) {
        return true;
    }

    @Override
    public void placeBlock(GlowPlayer player, GlowBlockState state, BlockFace face, ItemStack holding, Vector clickedLoc) {
        super.placeBlock(player, state, face, holding, clickedLoc);
        state.setRawData((byte) 0);
    }

    @Override
    public Collection<ItemStack> getDrops(GlowBlock block, ItemStack tool) {
        return BlockDropless.EMPTY_STACK;
    }

    @Override
    protected BlockFace getAttachedFace(GlowBlock me) {
        for (BlockFace face : new BlockFace[]{BlockFace.DOWN, BlockFace.UP, BlockFace.EAST, BlockFace.WEST, BlockFace.NORTH, BlockFace.SOUTH}) {
            if (!me.getRelative(face).isEmpty()) {
                return face;
            }
        }
        return BlockFace.DOWN;
    }
}


<|start_filename|>src/main/java/net/glowstone/entity/meta/profile/PlayerProperty.java<|end_filename|>
package net.glowstone.entity.meta.profile;

import lombok.Data;

/**
 * Container for global player properties (such as textures) returned by the auth servers.
 */
@Data
public final class PlayerProperty {

    /**
     * The name of the property.
     */
    private final String name;

    /**
     * The property's value.
     */
    private final String value;

    /**
     * The signature of the value for validation.
     */
    private final String signature;

}
