Bukkit/CraftBukkit — pull request #1148 by desht (2013-04-29 07:59:41+00:00)
Title: [C] Send block updates even when applyPhysics is false.  Fixes BUKKIT-3971.

### The Issue
Calling block.setTypeId() (or .setTypeIdAndData() or .setData()) doesn't send block updates if the applyPhysics flag is false. This manifests itself in block changes not being visible until players log out and in again.

### Justification for this PR

This PR fixes the above problem, ensuring block updates are sent even when physics checks don't need to be applied.

### PR Breakdown

From net.minecraft.server.World (setTypeIdAndData() method):
```java
if ((j1 & 2) != 0 && (!this.isStatic || (j1 & 4) == 0)) {
this.notify(i, j, k);
}
```

The CraftBlock class is setting bit 0x4 of the update flag when bit 0x2
should in fact be set here. Bit 0x2 means "do updates"; bit 0x4 means
"don't do updates if the world is static, even when bit 0x2 is set". The PR changes three calls in CraftBlock to send 2 instead of 4, ensuring updates are sent.

### Testing Results and Materials

This can be tested with CraftBook as described in BUKKIT-3971. In addition, the test plugin https://github.com/desht/buster2.git has been used to demonstrate the problem using the ``/buster2 bukkit 1`` and ``/buster2 bukkit_nophysics 1`` commands. Note however that buster2 requires a custom Bukkit/CraftBukkit branch since its primary purpose is to test and measure my mass block update changes; a separate issue. I can confirm via direct testing that my 4->2 change fixes this issue.

### Relevant PR(s)

No other relevant PRs. This is a self-contained fix.

### JIRA Ticket(s)

BUKKIT-3971 - https://bukkit.atlassian.net/browse/BUKKIT-3971