forked from SteamWar/SteamWar
Add Schematic Revisions
This commit is contained in:
@@ -47,11 +47,25 @@ public class SchematicData {
|
||||
private final NodeData data;
|
||||
|
||||
public SchematicData(SchematicNode node) {
|
||||
this.data = NodeData.get(node);
|
||||
this.data = NodeData.getLatest(node);
|
||||
if(node.isDir())
|
||||
throw new SecurityException("Node is Directory");
|
||||
}
|
||||
|
||||
public SchematicData(SchematicNode node, int revision) {
|
||||
if(node.isDir())
|
||||
throw new SecurityException("Node is Directory");
|
||||
|
||||
if (revision < 1) {
|
||||
this.data = NodeData.getLatest(node);
|
||||
} else {
|
||||
if (NodeData.getRevisions(node) < revision) {
|
||||
throw new IllegalArgumentException("Revision " + revision + " does not exist");
|
||||
}
|
||||
this.data = NodeData.get(node, revision);
|
||||
}
|
||||
}
|
||||
|
||||
public Clipboard load() throws IOException, NoClipboardException {
|
||||
return WorldEditWrapper.impl.getClipboard(data.schemData(), data.getNodeFormat());
|
||||
}
|
||||
@@ -60,12 +74,12 @@ public class SchematicData {
|
||||
WorldEditWrapper.impl.setPlayerClipboard(player, data.schemData(), data.getNodeFormat());
|
||||
}
|
||||
|
||||
public void saveFromPlayer(Player player) throws IOException, NoClipboardException {
|
||||
data.saveFromStream(WorldEditWrapper.impl.getPlayerClipboard(player), WorldEditWrapper.impl.getNativeFormat());
|
||||
public static void saveFromPlayer(Player player, SchematicNode node) throws IOException, NoClipboardException {
|
||||
NodeData.saveFromStream(node, WorldEditWrapper.impl.getPlayerClipboard(player), WorldEditWrapper.impl.getNativeFormat());
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void saveFromBytes(byte[] bytes, NodeData.SchematicFormat newFormat) {
|
||||
data.saveFromStream(new ByteArrayInputStream(bytes), newFormat);
|
||||
public static void saveFromBytes(SchematicNode node, byte[] bytes, NodeData.SchematicFormat newFormat) {
|
||||
NodeData.saveFromStream(node, new ByteArrayInputStream(bytes), newFormat);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user