mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 05:06:44 +01:00
forgot to export schematic in GZIP format. Whoops.
This commit is contained in:
parent
768cb8b293
commit
d4e0397187
@ -7,12 +7,19 @@ import java.io.OutputStream;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* This class writes <strong>NBT</strong>, or <strong>Named Binary Tag</strong>
|
||||
* {@code Tag} objects to an underlying {@code OutputStream}.
|
||||
* <code>Tag</code> objects to an underlying <code>OutputStream</code>.
|
||||
* </p>
|
||||
*
|
||||
* <p>The NBT format was created by Markus Persson, and the specification may be
|
||||
* <p>
|
||||
* The NBT format was created by Markus Persson, and the specification may be
|
||||
* found at <a href="http://www.minecraft.net/docs/NBT.txt">
|
||||
* http://www.minecraft.net/docs/NBT.txt</a>.</p>
|
||||
* http://www.minecraft.net/docs/NBT.txt</a>.
|
||||
* </p>
|
||||
*
|
||||
* @author Graham Edgecombe
|
||||
*
|
||||
*/
|
||||
public final class NBTOutputStream implements Closeable {
|
||||
|
||||
@ -22,7 +29,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
private final DataOutputStream os;
|
||||
|
||||
/**
|
||||
* Creates a new {@code NBTOutputStream}, which will write data to the
|
||||
* Creates a new <code>NBTOutputStream</code>, which will write data to the
|
||||
* specified underlying output stream.
|
||||
*
|
||||
* @param os
|
||||
@ -111,7 +118,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Byte} tag.
|
||||
* Writes a <code>TAG_Byte</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -123,7 +130,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Byte_Array} tag.
|
||||
* Writes a <code>TAG_Byte_Array</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -137,7 +144,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Compound} tag.
|
||||
* Writes a <code>TAG_Compound</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -152,7 +159,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_List} tag.
|
||||
* Writes a <code>TAG_List</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -166,13 +173,13 @@ public final class NBTOutputStream implements Closeable {
|
||||
|
||||
os.writeByte(NBTUtils.getTypeCode(clazz));
|
||||
os.writeInt(size);
|
||||
for (Tag tag1 : tags) {
|
||||
writeTagPayload(tag1);
|
||||
for (int i = 0; i < size; ++i) {
|
||||
writeTagPayload(tags.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_String} tag.
|
||||
* Writes a <code>TAG_String</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -186,7 +193,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Double} tag.
|
||||
* Writes a <code>TAG_Double</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -198,7 +205,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Float} tag.
|
||||
* Writes a <code>TAG_Float</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -210,7 +217,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Long} tag.
|
||||
* Writes a <code>TAG_Long</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -222,7 +229,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Int} tag.
|
||||
* Writes a <code>TAG_Int</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -234,7 +241,7 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Short} tag.
|
||||
* Writes a <code>TAG_Short</code> tag.
|
||||
*
|
||||
* @param tag
|
||||
* The tag.
|
||||
@ -246,9 +253,12 @@ public final class NBTOutputStream implements Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a {@code TAG_Empty} tag.
|
||||
* Writes a <code>TAG_Empty</code> tag.
|
||||
*
|
||||
* @param tag the tag
|
||||
* @param tag
|
||||
* The tag.
|
||||
* @throws IOException
|
||||
* if an I/O error occurs.
|
||||
*/
|
||||
private void writeEndTagPayload(EndTag tag) {
|
||||
/* empty */
|
||||
@ -257,14 +267,13 @@ public final class NBTOutputStream implements Closeable {
|
||||
private void writeIntArrayTagPayload(IntArrayTag tag) throws IOException {
|
||||
int[] data = tag.getValue();
|
||||
os.writeInt(data.length);
|
||||
for (int aData : data) {
|
||||
os.writeInt(aData);
|
||||
for (int i = 0; i < data.length; i++) {
|
||||
os.writeInt(data[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() throws IOException {
|
||||
os.close();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -14,9 +14,11 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
/**
|
||||
* Created by Citymonstret on 2014-09-15.
|
||||
@ -202,7 +204,7 @@ public class SchematicHandler {
|
||||
|
||||
try {
|
||||
OutputStream stream = new FileOutputStream(path);
|
||||
NBTOutputStream output = new NBTOutputStream(stream);
|
||||
NBTOutputStream output = new NBTOutputStream(new GZIPOutputStream(stream));
|
||||
output.writeTag(tag);
|
||||
output.close();
|
||||
stream.close();
|
||||
@ -265,20 +267,27 @@ public class SchematicHandler {
|
||||
schematic.put("WEOffsetY", new IntTag("WEOffsetY", 0));
|
||||
schematic.put("WEOffsetZ", new IntTag("WEOffsetZ", 0));
|
||||
|
||||
System.out.print("WHL "+width+" | "+height+ " | "+length);
|
||||
|
||||
byte[] blocks = new byte[width * height * length];
|
||||
byte[] addBlocks = null;
|
||||
byte[] blockData = new byte[width * height * length];
|
||||
|
||||
int count = 0;
|
||||
|
||||
for (int x = 0; x < width; x++) {
|
||||
for (int z = 0; z < length; z++) {
|
||||
for (int y = 0; y < height; y++) {
|
||||
int index = y * width * length + z * width + x;
|
||||
|
||||
count++;
|
||||
|
||||
Block block = world.getBlockAt(new Location(world, pos1.getBlockX() + x, 0 + y, pos1.getBlockZ() + z));
|
||||
|
||||
int id2 = block.getTypeId();
|
||||
|
||||
if (id2 > 255) {
|
||||
System.out.print("GREATER "+id2);
|
||||
if (addBlocks == null) {
|
||||
addBlocks = new byte[(blocks.length >> 1) + 1];
|
||||
}
|
||||
@ -297,9 +306,14 @@ public class SchematicHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.print("COUNT "+count);
|
||||
|
||||
schematic.put("Blocks", new ByteArrayTag("Blocks", blocks));
|
||||
schematic.put("Data", new ByteArrayTag("Data", blockData));
|
||||
|
||||
schematic.put("Entities", new ListTag("Entities", CompoundTag.class, new ArrayList<Tag>()));
|
||||
schematic.put("TileEntities", new ListTag("TileEntities", CompoundTag.class, new ArrayList<Tag>()));
|
||||
|
||||
if (addBlocks != null) {
|
||||
schematic.put("AddBlocks", new ByteArrayTag("AddBlocks", addBlocks));
|
||||
}
|
||||
|
@ -159,9 +159,8 @@ public class Schematic extends SubCommand {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getServer().getPluginManager().getPlugin("PlotSquared"), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
counter++;
|
||||
PlayerFunctions.sendMessage(plr, "&6ID: "+plot.id);
|
||||
boolean result = SchematicHandler.save(sch, Settings.Web.PATH+"/"+plot.id.x+","+plot.id.y+","+worldname+","+owner+".schematic");
|
||||
boolean result = SchematicHandler.save(sch, Settings.Web.PATH+"/"+plot.id.x+","+plot.id.y+","+worldname+", "+owner+".schematic");
|
||||
|
||||
if (!result) {
|
||||
PlayerFunctions.sendMessage(plr, "&7 - Failed to save &c"+plot.id);
|
||||
@ -251,7 +250,6 @@ public class Schematic extends SubCommand {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getServer().getPluginManager().getPlugin("PlotSquared"), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
counter++;
|
||||
PlayerFunctions.sendMessage(plr, "&6ID: "+plot.id);
|
||||
boolean result = SchematicHandler.save(sch, Settings.Web.PATH+"/"+plot.id.x+","+plot.id.y+","+world+","+owner+".schematic");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user