/** * Get an edit session. Every subsequent call returns a new edit session. * Usually you only need to use one edit session. * * @return an edit session */ public EditSession remember() { EditSession editSession = controller.getEditSessionFactory() .getEditSession(player.getWorld(), session.getBlockChangeLimit(), session.getBlockBag(player), player); editSession.enableStandardMode(); editSessions.add(editSession); return editSession; }
/** * Construct a new edit session. * * @param player the player * @return an edit session */ public EditSession createEditSession(Player player) { checkNotNull(player); BlockBag blockBag = getBlockBag(player); // Create an edit session EditSession editSession = WorldEdit.getInstance().getEditSessionFactory() .getEditSession(player.isPlayer() ? player.getWorld() : null, getBlockChangeLimit(), blockBag, player); editSession.setFastMode(fastMode); editSession.setReorderMode(reorderMode); Request.request().setEditSession(editSession); editSession.setMask(mask); return editSession; }
EditSession redone; if (args.argsLength() < 2) { redone = session.redo(session.getBlockBag(player), player); } else { player.checkPermission("worldedit.history.redo.other"); break; redone = sess.redo(session.getBlockBag(player), player);
EditSession undone; if (args.argsLength() < 2) { undone = session.undo(session.getBlockBag(player), player); } else { player.checkPermission("worldedit.history.undo.other"); break; undone = sess.undo(session.getBlockBag(player), player);
@Override public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, com.sk89q.worldedit.util.Location clicked) { BlockBag bag = session.getBlockBag(player); try (EditSession editSession = session.createEditSession(player)) { try { editSession.disableBuffering(); BlockVector3 position = clicked.toVector().toBlockPoint(); editSession.setBlock(position, pattern.apply(position)); } catch (MaxChangedBlocksException ignored) { } finally { session.remember(editSession); } } finally { if (bag != null) { bag.flushChanges(); } } return true; }
/** * Gets the session for the player. * * @param player a player * @return a session */ public EditSession createEditSession(Player player) { com.sk89q.worldedit.entity.Player wePlayer = wrapPlayer(player); LocalSession session = WorldEdit.getInstance().getSessionManager().get(wePlayer); BlockBag blockBag = session.getBlockBag(wePlayer); EditSession editSession = WorldEdit.getInstance().getEditSessionFactory() .getEditSession(wePlayer.getWorld(), session.getBlockChangeLimit(), blockBag, wePlayer); editSession.enableStandardMode(); return editSession; }
BlockBag bag = session.getBlockBag(player);
public void undo(Player player, int count) { try { LocalSession session = getPlayerSession(player); if (session != null) { final BukkitPlayer bukkitPlayer = getBukkitPlayer(player); if (bukkitPlayer != null) { for (int i = 0; i < count; i++) { session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer); } } } } catch (Exception ex) { FLog.severe(ex); } }