当前位置: 首页>>代码示例>>Java>>正文


Java LocalSession.createEditSession方法代码示例

本文整理汇总了Java中com.sk89q.worldedit.LocalSession.createEditSession方法的典型用法代码示例。如果您正苦于以下问题:Java LocalSession.createEditSession方法的具体用法?Java LocalSession.createEditSession怎么用?Java LocalSession.createEditSession使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.sk89q.worldedit.LocalSession的用法示例。


在下文中一共展示了LocalSession.createEditSession方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getExtent

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
@BindingMatch(
        type = {Extent.class},
        behavior = BindingBehavior.PROVIDES
)
public Extent getExtent(ArgumentStack context) throws ParameterException {
    Extent extent = context.getContext().getLocals().get(EditSession.class);
    if (extent != null) return extent;
    extent = Request.request().getExtent();
    if (extent != null) return extent;
    Actor actor = context.getContext().getLocals().get(Actor.class);
    if (actor == null) throw new ParameterException("No player to get a session for");
    if (!(actor instanceof Player)) throw new ParameterException("Caller is not a player");
    LocalSession session = WorldEdit.getInstance().getSessionManager().get(actor);
    EditSession editSession = session.createEditSession((Player) actor);
    editSession.enableQueue();
    context.getContext().getLocals().put(EditSession.class, editSession);
    session.tellVersion(actor);
    return editSession;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:20,代码来源:FawePrimitiveBinding.java

示例2: actPrimary

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
@Override
public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, com.sk89q.worldedit.util.Location clicked) {
    World world = (World) clicked.getExtent();
    final int blockType = world.getBlockType(clicked.toVector());
    if (blockType == BlockID.BEDROCK
            && !player.canDestroyBedrock()) {
        return true;
    }

    EditSession editSession = session.createEditSession(player);
    editSession.getSurvivalExtent().setToolUse(config.superPickaxeDrop);

    try {
        if (editSession.setBlock(clicked.getBlockX(), clicked.getBlockY(), clicked.getBlockZ(), EditSession.nullBlock)) {
            world.playEffect(clicked.toVector(), 2001, blockType);
        }
    } finally {
        editSession.flushQueue();
        session.remember(editSession);
    }

    return true;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:24,代码来源:SinglePickaxe.java

示例3: actPrimary

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
@Override
public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, Location clicked) {
    World world = (World) clicked.getExtent();

    int initialType = world.getBlockType(clicked.toVector());

    if (initialType == BlockID.AIR) {
        return true;
    }

    if (initialType == BlockID.BEDROCK && !player.canDestroyBedrock()) {
        return true;
    }

    EditSession editSession = session.createEditSession(player);

    try {
        recurse(server, editSession, world, clicked.toVector().toBlockVector(),
                clicked.toVector(), range, initialType, new HashSet<BlockVector>());
    } catch (WorldEditException e) {
        throw new RuntimeException(e);
    }
    editSession.flushQueue();
    session.remember(editSession);
    return true;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:27,代码来源:FloodFillTool.java

示例4: getEditSession

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
/**
 * Gets an {@link EditSession} from a {@link ArgumentStack}.
 *
 * @param context the context
 * @return an edit session
 * @throws ParameterException on other error
 */
@BindingMatch(type = EditSession.class,
        behavior = BindingBehavior.PROVIDES)
public EditSession getEditSession(ArgumentStack context) throws ParameterException {
    Player sender = getPlayer(context);
    LocalSession session = worldEdit.getSessionManager().get(sender);
    EditSession editSession = session.createEditSession(sender);
    editSession.enableQueue();
    context.getContext().getLocals().put(EditSession.class, editSession);
    session.tellVersion(sender);
    return editSession;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:19,代码来源:WorldEditBinding.java

示例5: actPrimary

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
@Override
public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, com.sk89q.worldedit.util.Location clicked) {
    World world = (World) clicked.getExtent();
    final Vector pos = clicked.toVector();

    EditSession editSession = session.createEditSession(player);

    BaseBlock block = editSession.getBlock(pos);
    int initialType = block.getType();

    if (initialType == BlockID.AIR || (initialType == BlockID.BEDROCK && !player.canDestroyBedrock())) {
        editSession.flushQueue();
        return true;
    }

    editSession.getSurvivalExtent().setToolUse(config.superPickaxeManyDrop);

    final int radius = (int) range;
    final BlockReplace replace = new BlockReplace(editSession, (editSession.nullBlock));
    editSession.setMask((Mask) null);
    RecursiveVisitor visitor = new RecursiveVisitor(new IdMask(editSession), replace, radius, editSession);
    visitor.visit(pos);
    Operations.completeBlindly(visitor);

    editSession.flushQueue();
    session.remember(editSession);

    return true;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:30,代码来源:RecursivePickaxe.java

示例6: actPrimary

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
@Override
public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session, com.sk89q.worldedit.util.Location clicked) {
    int ox = clicked.getBlockX();
    int oy = clicked.getBlockY();
    int oz = clicked.getBlockZ();
    int initialType = ((World) clicked.getExtent()).getBlockType(clicked.toVector());

    if (initialType == 0) {
        return true;
    }

    if (initialType == BlockID.BEDROCK && !player.canDestroyBedrock()) {
        return true;
    }

    EditSession editSession = session.createEditSession(player);
    editSession.getSurvivalExtent().setToolUse(config.superPickaxeManyDrop);

    for (int x = ox - range; x <= ox + range; ++x) {
        for (int y = oy - range; y <= oy + range; ++y) {
            for (int z = oz - range; z <= oz + range; ++z) {
                if (editSession.getLazyBlock(x, y, z).getId() != initialType) {
                    continue;
                }
                editSession.setBlock(x, y, z, air);
            }
        }
    }
    editSession.flushQueue();
    session.remember(editSession);

    return true;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:34,代码来源:AreaPickaxe.java

示例7: actSecondary

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
@Override
public boolean actSecondary(Platform server, LocalConfiguration config, Player player, LocalSession session) {
    WorldVectorFace pos = getTargetFace(player);
    if (pos == null) return false;
    EditSession eS = session.createEditSession(player);
    if (secondary.getType() == BlockID.AIR) {
        eS.setBlockFast(pos, secondary);
    } else {
        eS.setBlockFast(pos.getFaceVector(), secondary);
    }
    eS.flushQueue();
    return true;

}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:15,代码来源:LongRangeBuildTool.java

示例8: actPrimary

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
@Override
public boolean actPrimary(Platform server, LocalConfiguration config, Player player, LocalSession session) {
    WorldVectorFace pos = getTargetFace(player);
    if (pos == null) return false;
    EditSession eS = session.createEditSession(player);
    if (primary.getType() == BlockID.AIR) {
        eS.setBlockFast(pos, primary);
    } else {
        eS.setBlockFast(pos.getFaceVector(), primary);
    }
    eS.flushQueue();
    return true;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:14,代码来源:LongRangeBuildTool.java

示例9: act

import com.sk89q.worldedit.LocalSession; //导入方法依赖的package包/类
public boolean act(BrushAction action, Platform server, LocalConfiguration config, Player player, LocalSession session) {
    switch (action) {
        case PRIMARY:
            setContext(primary);
            break;
        case SECONDARY:
            setContext(secondary);
            break;
    }


    BrushSettings current = getContext();
    Brush brush = current.getBrush();
    if (brush == null) return false;

    EditSession editSession = session.createEditSession(player);
    Vector target = getPosition(editSession, player);

    if (target == null) {
        editSession.cancel();
        BBC.NO_BLOCK.send(player);
        return true;
    }
    BlockBag bag = session.getBlockBag(player);
    Request.request().setEditSession(editSession);
    Mask mask = current.getMask();
    if (mask != null) {
        Mask existingMask = editSession.getMask();

        if (existingMask == null) {
            editSession.setMask(mask);
        } else if (existingMask instanceof MaskIntersection) {
            ((MaskIntersection) existingMask).add(mask);
        } else {
            MaskIntersection newMask = new MaskIntersection(existingMask);
            newMask.add(mask);
            editSession.setMask(newMask);
        }
    }
    Mask sourceMask = current.getSourceMask();
    if (sourceMask != null) {
        editSession.addSourceMask(sourceMask);
    }
    ResettableExtent transform = current.getTransform();
    if (transform != null) {
        editSession.addTransform(transform);
    }
    try {
        new PatternTraverser(current).reset(editSession);
        brush.build(editSession, target, current.getMaterial(), current.getSize());
    } catch (MaxChangedBlocksException e) {
        player.printError("Max blocks change limit reached."); // Never happens
    } finally {
        if (bag != null) {
            bag.flushChanges();
        }
        session.remember(editSession);
        Request.reset();
    }
    return true;
}
 
开发者ID:boy0001,项目名称:FastAsyncWorldedit,代码行数:62,代码来源:BrushTool.java


注:本文中的com.sk89q.worldedit.LocalSession.createEditSession方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。