剪贴板示例
复制区域到剪贴板
// 获取玩家会话
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();
}