public void pasteClipboard(InstanceData i, Vector where) { Log.debug("AsyncManager.pasteClipboard"); DungeonData d = i.getDungeon(); AsyncEditSession es = (AsyncEditSession) this.ess.getEditSession(InstancedDungeon.getIDungeonDim(), 999999999); // esRegistry.put(p, es); String p = es.getPlayer(); Log.debug("Player is : " + p); es.setAsyncForced(true); es.setFastMode(true); AsyncCuboidClipboard cc = new AsyncCuboidClipboard(p, d.getSchematic()); int id = bp.getJobId(p); id = id + 1; Log.debug("Job ID is reported as : " + id); fpRegistry.put(id, i); je.add(bp.getJob(p, id)); this.bp.addListener((IBlockPlacerListener) this); cc.setOffset(new Vector(0, 0, 0)); try { Log.debug("Doing Paste."); cc.paste(es, where, true); Log.debug("Post Paste."); } catch (MaxChangedBlocksException e) { e.printStackTrace(); } }
private RetVal subEntrance(ArrayList<String> arg, String pName) { Log.debug("CommandDungeon.subEntrance"); RetVal r = new RetVal(); if (arg.isEmpty()) { r.Err( Config.ecol + "Error - Invalid number of arguments! Command is /" + Config.command + " dungeon entrance <dungeon name> (while standing at the warp-in point)!"); return r; } DungeonData d = DungeonManager.getDungeon(arg.get(0)); if (d == null) { r.Err(Config.ecol + "Error - Invalid argument! '" + arg.get(0) + "' not a valid Dungeon!"); return r; } InstanceData i = InstanceManager.getEditInstanceForDungeon(d.name); if (i == null) { r.Err( Config.ecol + "Error - Invalid argument! '" + arg.get(0) + "' does not have an edit Instance!"); return r; } Location l = bridge.getPlayerLoc(pName); Vector v = l.getPosition(); Vector vOff = v.subtract(i.getBounds().getMinimumPoint()); d.setSpawn(vOff.getBlockX(), vOff.getBlockY(), vOff.getBlockZ(), l.getYaw(), l.getPitch()); r.add("Successfully added spawn in location to Dungeon '" + arg.get(0) + "'"); r.tru(); return r; }