Finish mlg handling
Issues: -Twisting vines placement will delete block standing on (example: if landing with open trapdoor, vines deletes the block) -OnGround does not handle standing on moving pistons
This commit is contained in:
@@ -369,7 +369,7 @@ public class LegacyAgent extends Agent {
|
||||
if (groundLoc == null) return;
|
||||
|
||||
Location loc = !LegacyMats.shouldReplace(groundLoc.getBlock(), yPos, nether) ? groundLoc.add(0, 1, 0) : groundLoc;
|
||||
boolean waterloggable = loc.getBlock().getBlockData() instanceof Waterlogged;
|
||||
boolean waterloggable = !nether && loc.getBlock().getBlockData() instanceof Waterlogged;
|
||||
boolean waterlogged = waterloggable && ((Waterlogged)loc.getBlock().getBlockData()).isWaterlogged();
|
||||
|
||||
event.setCancelled(true);
|
||||
@@ -390,7 +390,7 @@ public class LegacyAgent extends Agent {
|
||||
scheduler.runTaskLater(plugin, () -> {
|
||||
Block block = loc.getBlock();
|
||||
|
||||
boolean waterloggedNow = block.getBlockData() instanceof Waterlogged
|
||||
boolean waterloggedNow = !nether && block.getBlockData() instanceof Waterlogged
|
||||
&& ((Waterlogged)block.getBlockData()).isWaterlogged();
|
||||
if (block.getType() == Material.WATER || waterloggedNow) {
|
||||
bot.look(BlockFace.DOWN);
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.data.Bisected;
|
||||
import org.bukkit.block.data.Waterlogged;
|
||||
import org.bukkit.block.data.Bisected.Half;
|
||||
import org.bukkit.block.data.type.*;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
@@ -315,6 +316,10 @@ public class LegacyMats {
|
||||
if (block.getType() == Material.LIGHTNING_ROD && !((LightningRod)block.getBlockData()).isWaterlogged()
|
||||
&& (((LightningRod)block.getBlockData()).getFacing() == BlockFace.UP || ((LightningRod)block.getBlockData()).getFacing() == BlockFace.DOWN))
|
||||
return false;
|
||||
if (block.getType().data == TrapDoor.class && (((TrapDoor)block.getBlockData()).getHalf() == Half.TOP
|
||||
|| (((TrapDoor)block.getBlockData()).getHalf() == Half.BOTTOM && ((TrapDoor)block.getBlockData()).isOpen()))
|
||||
&& !((TrapDoor)block.getBlockData()).isWaterlogged())
|
||||
return false;
|
||||
return true;
|
||||
} else {
|
||||
if (block.getType().name().endsWith("_CARPET"))
|
||||
@@ -338,6 +343,8 @@ public class LegacyMats {
|
||||
case END_ROD:
|
||||
case FLOWER_POT:
|
||||
case SCAFFOLDING:
|
||||
case COMPARATOR:
|
||||
case REPEATER:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
@@ -373,6 +380,14 @@ public class LegacyMats {
|
||||
return false;
|
||||
if (block.getType().data == Gate.class)
|
||||
return false;
|
||||
if (block.getType() == Material.PISTON_HEAD && ((PistonHead)block.getBlockData()).getFacing() != BlockFace.UP)
|
||||
return false;
|
||||
if (block.getType().data == Piston.class && ((Piston)block.getBlockData()).getFacing() != BlockFace.DOWN
|
||||
&& ((Piston)block.getBlockData()).isExtended())
|
||||
return false;
|
||||
if (block.getType().data == TrapDoor.class && (((TrapDoor)block.getBlockData()).getHalf() == Half.BOTTOM
|
||||
|| ((TrapDoor)block.getBlockData()).isOpen()))
|
||||
return false;
|
||||
switch (block.getType()) {
|
||||
case POINTED_DRIPSTONE:
|
||||
case SMALL_AMETHYST_BUD:
|
||||
@@ -405,10 +420,12 @@ public class LegacyMats {
|
||||
case CONDUIT:
|
||||
case END_PORTAL_FRAME:
|
||||
case FARMLAND:
|
||||
case LADDER:
|
||||
case DAYLIGHT_DETECTOR:
|
||||
case HONEY_BLOCK:
|
||||
case HOPPER:
|
||||
case LIGHTNING_ROD:
|
||||
case SCULK_SENSOR:
|
||||
case SCULK_SHRIEKER:
|
||||
return false;
|
||||
default:
|
||||
}
|
||||
@@ -441,8 +458,12 @@ public class LegacyMats {
|
||||
return true;
|
||||
if (block.getType().data == Stairs.class && !((Stairs)block.getBlockData()).isWaterlogged())
|
||||
return true;
|
||||
if (block.getType().data == Chain.class && !((Chain)block.getBlockData()).isWaterlogged())
|
||||
return true;
|
||||
if (block.getType().data == Candle.class)
|
||||
return true;
|
||||
if (block.getType().data == TrapDoor.class && !((TrapDoor)block.getBlockData()).isWaterlogged())
|
||||
return true;
|
||||
switch (block.getType()) {
|
||||
case POINTED_DRIPSTONE:
|
||||
case SMALL_AMETHYST_BUD:
|
||||
@@ -459,6 +480,8 @@ public class LegacyMats {
|
||||
case SOUL_CAMPFIRE:
|
||||
case CONDUIT:
|
||||
case LIGHTNING_ROD:
|
||||
case SCULK_SENSOR:
|
||||
case SCULK_SHRIEKER:
|
||||
return true;
|
||||
default:
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user