@@ -370,22 +370,33 @@ function cClipboardStorage:SaveCubesetV1(a_FileName, a_StructureName, a_Options)
370
370
-- Recursive function to dump the Lua table to the output file.
371
371
local function write (a_Tabs , a_Obj )
372
372
local prefix = string.rep (" \t " , a_Tabs )
373
+ -- Prioritize the metadata table.
374
+ -- Cuberite checks the first 8KiB for the Cubeset version when loading prefabs.
375
+ -- If the file is too large and the metadata is at the end Cuberite won't be able to find it.
376
+ if (a_Obj [" Metadata" ]) then
377
+ file :write (prefix , ' ["Metadata"] =' )
378
+ file :write (" \n " , prefix , " {\n " )
379
+ write (a_Tabs + 1 , a_Obj [" Metadata" ])
380
+ file :write (" \n " , prefix , " },\n " )
381
+ end
373
382
for k , v in pairs (a_Obj ) do
374
- if (k == " CubesetFormatVersion" ) then
375
- file :write (prefix , k , ' =' )
376
- elseif (type (k ) == " string" ) then
377
- file :write (prefix , ' ["' , k , ' "] =' )
378
- elseif (type (k ) == " number" ) then
379
- file :write (prefix , ' [' , k , ' ] =' )
380
- end
381
- if (type (v ) == " table" ) then
382
- file :write (" \n " , prefix , " {\n " )
383
+ if (k ~= " Metadata" ) then
384
+ if (k == " CubesetFormatVersion" ) then
385
+ file :write (prefix , k , ' =' )
386
+ elseif (type (k ) == " string" ) then
387
+ file :write (prefix , ' ["' , k , ' "] =' )
388
+ elseif (type (k ) == " number" ) then
389
+ file :write (prefix , ' [' , k , ' ] =' )
390
+ end
391
+ if (type (v ) == " table" ) then
392
+ file :write (" \n " , prefix , " {\n " )
383
393
write (a_Tabs + 1 , v )
384
- file :write (" \n " , prefix , " },\n " )
385
- elseif (type (v ) == " string" ) then
386
- file :write (' "' , v , ' ",\n ' )
387
- elseif (type (v ) == " number" ) then
388
- file :write (" " , v , " ,\n " )
394
+ file :write (" \n " , prefix , " },\n " )
395
+ elseif (type (v ) == " string" ) then
396
+ file :write (' "' , v , ' ",\n ' )
397
+ elseif (type (v ) == " number" ) then
398
+ file :write (" " , v , " ,\n " )
399
+ end
389
400
end
390
401
end
391
402
end
0 commit comments