Fix players being able to place boats, armorstands etc using offhand

This commit is contained in:
dordsor21 2019-02-14 17:38:36 +00:00
parent 130e1b6300
commit b999cb4195

View file

@ -1886,23 +1886,29 @@ import java.util.regex.Pattern;
break;
}
ItemStack hand = player.getInventory().getItemInMainHand();
ItemStack offHand = player.getInventory().getItemInOffHand();
Material type = (hand == null) ? null : hand.getType();
if (type == Material.AIR) {
Material offType = (offHand == null) ? null : offHand.getType();
if ((type == Material.AIR && offType != Material.AIR && !player.isSneaking()
&& blockType.isInteractable()) || (type == Material.AIR
&& offType == Material.AIR)) {
eventType = PlayerBlockEventType.INTERACT_BLOCK;
break;
}
if (!(type != null && type.equals(offType))) {
type = offType;
}
if (type == null || type.isBlock()) {
location = BukkitUtil
.getLocation(block.getRelative(event.getBlockFace()).getLocation());
eventType = PlayerBlockEventType.PLACE_BLOCK;
break;
}
Material handType = hand.getType();
lb = new BukkitLazyBlock(PlotBlock.get(handType.toString()));
if (handType.toString().endsWith("egg")) {
lb = new BukkitLazyBlock(PlotBlock.get(type.toString()));
if (type.toString().endsWith("egg")) {
eventType = PlayerBlockEventType.SPAWN_MOB;
} else {
switch (handType) {
switch (type) {
case FIREWORK_ROCKET:
case FIREWORK_STAR:
eventType = PlayerBlockEventType.SPAWN_MOB;