The coordinates can be added as target selector arguments, i.e. inside the @e[...]
, using the x
, y
, and z
arguments, combined with r
to set a maximum radius. Note that Tilde notation is not allowed for this, you need the absolute coordinates.
Placing an enchanted item in an Item Frame has to be done all at once, since the entitydata is running on the Item Frame, not on the item that is in it. This is done by setting the Item
tag of the item frame to a valid compound NBT structure for an item, such as
{id:"minecraft:stone_sword",tag:{ench:[{id:16,lvl:1}]}}
for a Sharpness I Stone Sword.
Overall, the command you want to be running might look like:
entitydata @e[type=ItemFrame,x=1,y=2,z=3,r=2] {Item:{id:"minecraft:stone_sword",tag:{ench:[{id:16,lvl:1}]}}}
Be careful regarding the closing parentheses.
You used the wrong entity name. A hanging itemframe is not called ItemFrame but item_frame.
So, the following command would work:
/testfor @e[type=item_frame,r=10] {Item:{id:minecraft:writable_book,tag:{display:{Name:"Keys"}}}}
Please note: this command checks the name given to an item. You are essentially looking for a writable book that has been renamed using an anvil.
If your goal is however to check for a closed book with a title you should use the following command:
/testfor @e[type=item_frame,r=10] {Item:{id:minecraft:written_book,tag:[{title:Keys}][2]}}
Best Answer
In 1.7.2, Maps, when placed in an item frame, now expand to cover the block, not just sit within the borders of the item frame.
From the wiki
Now, by simply right clicking to place the map in the item frame, it will sit like this:
so you can then create a map wall (with some planning and correct alignment) like this: