2

I made a map in 1.8.9 using lots of commands blocks containing /testfor commands. However, once I went into the most recent snapshot (1.9-pre4) and started messing around with more /testfor stuff, the commands were "invalid". I tried using both chain command blocks and a 20Hz clock with normal command blocks, and none worked. Even the /testfor commands which I put in while playing on 1.8.9 stopped working. Is this just a bug waiting to be fixed, or is the /testfor command being changed?

The command I'm using is:

/testfor @p[204,9,59,0]
  • Also, it seems like every other kind of command I had in my world is still working. (/tellraw /tp /give /clear etc...) – user140378 Feb 27 '16 at 22:45
  • Can you tell us what specific commands you are using? – angussidney Feb 27 '16 at 22:47
  • Take a look here – bummi Feb 27 '16 at 22:51
  • @angussidney Yes. The command is: testfor @p[204,9,59,0] written exactly as shown in the command block. I also just discovered that normal just using a plain testfor command: /testfor @p works fine, but when I attach coordinates and radius it doesn't work. – user140378 Feb 27 '16 at 23:05
  • 1
    I don't know why this just popped up on the review queue but Minecraft snapshots are available to the public and are not off-topic. – Studoku Feb 28 '16 at 1:09
3

In 1.9, the r parameter has undergone some major changes. Prior to 16w07a, the produced radius and entity selection was very inconsistent. MC-95352 resulted in various different fix attempts.

For comparison, in 1.8 r=0 would target entities within the whole blockspace. As well, it would latch onto the block grid even when executed by an entity.

In 16w07a, the radius was fixed to be consistent and execute from the center of the block, but there was no offset to the input value. For example, r=0 would literally mean "these exact coordinates with no leniency". If any entity was not in the exact center of a block, it could not be targeted.

In 16w07b, the radius was changed to execute from the bottom face of the blockspace rather than the center, and the offset to the radius was set to 0.25. This meant that with r=0 (which essentially meant r=0.25), an entity had to be within a small part of the center of the block, rather than the whole blockspace in 1.8.

In 1.9 pre-release 3, the radius offset was changed to 0.015625 (r=0 meant r=0.015625).

And finally in 1.9 pre-release 4, the offset was removed again and r=0 meant "exactly at this location" once more. However, a major changed occurred here: the radius, when executed by an entity, no longer latches onto the block grid and instead used the entity as the origin. This means that with entities, you'd actually be searching around the entity rather than the block that they're in. See MC-97316 for details.

Since r=0 means "exactly at these coordinates" rather than "within this blockspace", you will not be able to use it absolutely anymore. You will need to change it to r=1 (which indeed means 1 block exactly in each direction, reaching to the center of the neighboring blocks).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.