Minecraft Wiki
Advertisement
Information icon
Esse recurso é exclusivo para Edição Java. 

server_level.daté o nome do arquivo usado pelo servidor do Minecraft Classic para carregar e salvar o mapa do jogo. O arquivo pode ser copiado para salvar o conteúdo que ajuda a proteger as construções contra griefers ou para usar o arquivo para edição de mapas.

Informações gerais[]

O arquivo é compactado usando o gzip para economizar espaço (já que os arquivos podem ficar razoavelmente grandes devido a tudo, mesmo ar sendo considerado um bloco).

(Nota: neste exemplo, um server_level.dat padrão está sendo usado, com o tamanho de 256×256×64. Arquivos de nível com dimensões maiores podem diferir na quantidade de bytes.)

O arquivo server level.dat é onde o servidor do Minecraft despeja as informações de nível para armazenamento permanente. Como esse arquivo é principalmente dados de nível bruto, ele pode ser bem grande: um nível regular de tamanho 256×256×64 tem 4 megabytes de tamanho. O arquivo é compactado usando gzip, no entanto. A maioria dos valores de bloco são 0 (espaço vazio), portanto, o tamanho é reduzido consideravelmente pela compactação, geralmente para algumas centenas de kilobytes.

Após descompactar o arquivo de dados (o jogador pode simplesmente descompactar o próprio arquivo usando uma ferramenta, que pode descompactar arquivos compactados em gzip), sequencialmente o arquivo de dados consiste no número 656127880 como inteiro de 32 bits (0x27 0x1B 0xB7 0x88 em HEX), seguido pelo número 2 como um byte (0x02 em HEX), seguido pela instância de arquivo de classe Java de nível serializado. Os valores de bloco do nível (tipo de material, como pedra) são armazenados dentro de uma matriz de bytes dentro desta classe.

Os primeiros 65536 bytes sequenciais do array compõem a "lasca" de 256×256 mais alto do nível, com a linha de bytes mais ao norte, da esquerda para a direita, estando nos locais 0 ... 255, a linha abaixo que, da esquerda para a direita, locais 256 ... 511, e assim por diante. Os mapas padrão têm 64 "lascas" de profundidade.

Formato do arquivo[]

Quando descompactado, o formato do arquivo é o seguinte:

Posição Tamanho (bytes) Nome Descrição
0 4 ID mágico Um ID mágico é um número constante usado para identificar o formato de arquivo do Minecraft. O valor atual é 0x271bb788.
4 1 Número da versão O número da versão representa o formato atual usado para salvar o nível. O valor atual é 2.
5 Variável Classe Java serializada com.mojang.minecraft.level.Level Mais informações sobre o formato de serialização usado pelo Java estão disponíveis no manual, no entanto, a maneira mais fácil de editar o arquivo é usar o classes já fornecidos com o oficial minecraft-server.jar file.

Acessando a matriz de bytes[]

Geralmente, há duas opções para acessar a matriz de bytes de blocos:

O jogador poderia desserializar o arquivo .dat compactado diretamente de volta para uma instância de um objeto Level dentro do Java, tendo assim acesso à instância do objeto Level exatamente da mesma forma que o Minecraft Server. Isso permitiria ao jogador definir os blocos, dimensões, ponto de spawn e outros aspectos do mapa diretamente chamando os métodos no objeto Level instanciado. A descompactação manual não é necessária antes do carregamento, porque o Java pode compactar e descompactar arquivos compactados em gzip dinamicamente. Para carregar o arquivo de dados de volta em uma instância da classe Level, o jogador precisaria da definição de classe para a classe Level. Isso está incluído no arquivo minecraft-server.jar. Um exemplo disso pode ser visto em Recursos de desenvolvimento/Exemplo de class de edição de nível clássico do Minecraft.

Outros leram e modificaram os dados do mapa simplesmente acessando o array de bytes brutos no arquivo de dados. Para fazer isso, o jogador deve descompact��-lo, fazer alterações nos bytes onde a matriz de bytes está armazenada e compactar novamente. Como o jogador o está editando bruto, o jogador deve manter os primeiros 344 (14E em HEX) bytes intactos. Os próximos 256×256×64 bytes são onde a matriz de bytes é armazenada. Além disso, também é possível alterar as coordenadas do local de geração desta forma se o jogador souber onde procurar: existem 3 valores inteiros começando no byte 284 e assim sobrescrevendo os próximos 12 bytes (3 inteiros) permitem que o jogador altere o local de geração.

Advertisement