跳转至

剪贴板示例

复制区域到剪贴板

// 获取玩家会话
LocalSession session = WorldEdit.getInstance()
    .getSessionManager().get(player);
EditSession editSession = session.createEditSession(player);

// 创建剪贴板
BlockVector3 pos1 = selection.getMinimumPoint();
BlockVector3 pos2 = selection.getMaximumPoint();
CuboidRegion region = new CuboidRegion(pos1, pos2);
BlockArrayClipboard clipboard = new BlockArrayClipboard(region);

// 复制
ForwardExtentCopy copy = new ForwardExtentCopy(
    editSession, region, clipboard, region.getMinimumPoint()
);
Operations.complete(copy);

粘贴剪贴板

// 粘贴到指定位置
EditSession pasteSession = WorldEdit.getInstance()
    .newEditSessionBuilder().world(world).build();
Extent extent = clipboard;
BlockVector3 to = player.getLocation();

// 执行粘贴
pasteSession.paste(clipboard, to);
pasteSession.close();

保存原理图

ClipboardFormat format = ClipboardFormats.findByFile(file);
try (ClipboardWriter writer = format.getWriter(new FileOutputStream(file))) {
    writer.write(clipboard);
}

加载原理图

ClipboardFormat format = ClipboardFormats.findByFile(file);
try (ClipboardReader reader = format.getReader(new FileInputStream(file))) {
    Clipboard clipboard = reader.read();
}