Copies blocks from the world. If specified, stores blocks inside a temporary "clipboard" unique to each entity, the only times the clipboard is overwritten is if the entity performs another /copy command or the server goes down (unless the clipboard can be saved serverside somehow, I suppose.
The six positioning arguments are required. they work just like the fill command or the first two sets of XYZ values in the clone command in that they specify the cuboid selection region for the command to copy blocks from. Just like all positioning arguments, they can be either concrete world XYZ positions or they can use Tilde notation for relative positioning.
[filtermode] is similar to [mode] in the clone command and is optional. it has all of the same options, but excludes the "replace" option, because there is no need for it in this location of the copy command. These change the way blocks are copied into the clipboard, so they only matter if the copymode is set to something that isn't world
The options are filtered, masked, and normal
Copy only blocks with the specified block id (TileName) to the clipboard
Copy only non-air blocks to the clipboard.
NOTE: To be quite honest, these two are only here to be congruent with the clone command and make sure people get what they expect when they use similar syntax as clone.
Used when filtering is not needed, but copymode is needed
[copymode] is a new argument just for the copy command and is optional. it decides how the server will store the copied blocks for usage.
The options are world, clipboard, and move
Doesn't copy blocks to entity's clipboard, instead, remembers the cuboid location.
When the /paste command is used, it performs the copy from the cuboid location at that time, with the blocks in their current state. This can be useful for building frames for an animation, perhaps. You set your cuboid location, and start building in it. Rather than doing a /copy then /paste combo for every new frame, the game remembers the cuboid location, so all you have to do is /paste and it copies the blocks as they are to the new location. So you build a bit, then paste in the next slot of your frame lineup. Build a bit, and paste, build a bit, and paste, etc, etc.
Another example of usage could be for tracking the changes in a region of a building server. the server admin could set a cuboid region and let people build in it. Then, every hour or so, they can make a new copy of the location somewhere else, and when the build time is up, they have a big gallery of all the hourly changes people made to the area lined up.
NOTE: If the copy mode is set to world, then filtering through filtermode does not work with the copy command, and must be done with the paste command instead. This is because in the copy command, filtering changes the way blocks are added to the clipboard.
This would probably be the default behavior, but I'll put it in the list anyway. Copies the specified blocks into the unique "clipboard" attributed to the entity that performed the command. Every entity has a "clipboard" and the server itself also has a clipboard, for when command blocks or the console use the command.
This option copies the blocks selected into the "virtual clipboard" of the entity that performed the command, so to speak, it's not their actual computer's clipboard, but a temporary (gets forgotten if the server goes down) storage array of blocks that each entity would have unique to them.
Essentially this is the same way WorldEdit's copy command works, where it stores a copy array for each player. This would be the copy command everyone is used to, essentially, you store some blocks, and paste them in a new location later. When /paste is used, it places the blocks down and nothing happens to the clipboard, it stays the same. This way, you can do multiple pastes with the same clipbioard, and it only gets rewritten if you do another /copy command or the server goes down (if clipboards aren't saved across sessions, which they definitely could be, but that's not part of this suggestion)
Alternatively cut. Copies the specified blocks to the clipboard and replaces the original area with air.
Kind of dangerous, but so is the cut command in worldedit and any other program with a cut command.
[TileName] is mandatory with filtered mode, and specifies the id of block to copy to the clipboard. The same as with the clone command.
Pastes blocks into the world either from the executor's "clipboard" or from their cuboid location, depending on how they copied the blocks in the first place.
The Three positioning arguments are required. they work just like the setblock command or the third set of XYZ values in the clone command in that they specify the lowermost XYZ corner of the location for the command to paste the blocks to. Just like all positioning arguments, they can be either concrete world XYZ positions or they can use Tilde notation for relative positioning.
[filtermode] is similar to [mode] in the clone command and is optional. it has all of the same options and works exactly the same
The options are filtered, masked, and replace
Paste only blocks with the specified block id (TileName) into the world. Funnily enough, if you would use this in both the copy and paste commands, but you use a different block ID for the paste than for the copy, no blocks will be placed because the requested blocks in the paste wouldn't exist in the filtered copy.
Paste only non-air blocks into the world.
Paste all blocks, overwriting all blocks of the destination region with the blocks from the source. This is the default when not specified.
[pastemode] is similar to [mode2] in the clone command and is optional. It has the same options and works almost the same.
The options are force, move, and normal
Force the paste even if the source and destination regions overlap.
Essentially the cut command, but integrated into the paste side instead. Pastes the blocks into the world and then replaces the original location with air.
Not so sure this should still be in here, because the case where it makes the most sense is if the copy mode was set to world. I don't know how the server would know where to replace with air for clipboard mode, and this might be redundant if move mode for /copy is implemented. So this one I'm not so sure about.
Don't move or force. Used when TileName also needs to be specified, but pastemode does not.
[TileName] is mandatory with filtered mode, and specifies the id of block to paste from the clipboard or cuboid region. The same as with the clone command.
Examples of Usage:
Dynamically placed Animations:
To dispell claims that this is a redundancy on the clone command, consider this example.
There are three entities, two are located next to an array of animation frames, and the last is somewhere else in the world.
Entity one is the pointer for the location of the animation frames. Entity Two is the pointer for which frame to copy. Entity three is the pointer for where the animation should appear.
E2 gets teleported to the corner of the animation frame that the system is currently set to using a scoreboard checker mechanism. Performs a copy on the frame. E3 then executes a teleport on E2 that moves E2 to its location. E2 pastes the new frame in, and then E1 teleports E2 back to the frames area, the scoreboard gets updated to the next frame, and the loop begins again.
The difference this has to the clone command is that it can be done from any dynamic location to any other by moving the entities in question. Rather than setting concrete world positions, everything is relative.
An entity copies a selection of blocks.
a looping machine teleports the same entity a few blocks to the side and makes it paste. the machine subtracts one from its loop counter. The loop continues until the counter runs out and the stack is complete.