mirror of
https://github.com/PaperMC/Paper.git
synced 2025-03-02 14:58:43 +01:00
Added more control over block placement on interactable objects. Thanks Acru!
Plugins can now allow placing a block on an interactable object, by DENYing the interact and ALLOWing the place.
This commit is contained in:
parent
b5d1619e75
commit
a285a7b211
1 changed files with 5 additions and 3 deletions
|
@ -213,12 +213,14 @@ public class ItemInWorldManager {
|
||||||
boolean bottom = (world.getData(i, j, k) & 8) == 0;
|
boolean bottom = (world.getData(i, j, k) & 8) == 0;
|
||||||
((EntityPlayer) entityhuman).netServerHandler.sendPacket(new Packet53BlockChange(i, j + (bottom ? 1 : -1), k, world));
|
((EntityPlayer) entityhuman).netServerHandler.sendPacket(new Packet53BlockChange(i, j + (bottom ? 1 : -1), k, world));
|
||||||
}
|
}
|
||||||
|
result = (event.useItemInHand() != Event.Result.ALLOW);
|
||||||
} else {
|
} else {
|
||||||
result = Block.byId[i1].interact(world, i, j, k, entityhuman);
|
result = Block.byId[i1].interact(world, i, j, k, entityhuman);
|
||||||
|
}
|
||||||
|
|
||||||
if (itemstack != null && !result) {
|
if (itemstack != null && !result) {
|
||||||
result = itemstack.placeItem(entityhuman, world, i, j, k, l);
|
result = itemstack.placeItem(entityhuman, world, i, j, k, l);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// If we have 'true' and no explicit deny *or* an explicit allow -- run the item part of the hook
|
// If we have 'true' and no explicit deny *or* an explicit allow -- run the item part of the hook
|
||||||
if (itemstack != null && ((!result && event.useItemInHand() != Event.Result.DENY) || event.useItemInHand() == Event.Result.ALLOW)) {
|
if (itemstack != null && ((!result && event.useItemInHand() != Event.Result.DENY) || event.useItemInHand() == Event.Result.ALLOW)) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue