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;
|
if (groundLoc == null) return;
|
||||||
|
|
||||||
Location loc = !LegacyMats.shouldReplace(groundLoc.getBlock(), yPos, nether) ? groundLoc.add(0, 1, 0) : groundLoc;
|
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();
|
boolean waterlogged = waterloggable && ((Waterlogged)loc.getBlock().getBlockData()).isWaterlogged();
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@@ -390,7 +390,7 @@ public class LegacyAgent extends Agent {
|
|||||||
scheduler.runTaskLater(plugin, () -> {
|
scheduler.runTaskLater(plugin, () -> {
|
||||||
Block block = loc.getBlock();
|
Block block = loc.getBlock();
|
||||||
|
|
||||||
boolean waterloggedNow = block.getBlockData() instanceof Waterlogged
|
boolean waterloggedNow = !nether && block.getBlockData() instanceof Waterlogged
|
||||||
&& ((Waterlogged)block.getBlockData()).isWaterlogged();
|
&& ((Waterlogged)block.getBlockData()).isWaterlogged();
|
||||||
if (block.getType() == Material.WATER || waterloggedNow) {
|
if (block.getType() == Material.WATER || waterloggedNow) {
|
||||||
bot.look(BlockFace.DOWN);
|
bot.look(BlockFace.DOWN);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.data.Bisected;
|
import org.bukkit.block.data.Bisected;
|
||||||
import org.bukkit.block.data.Waterlogged;
|
import org.bukkit.block.data.Waterlogged;
|
||||||
|
import org.bukkit.block.data.Bisected.Half;
|
||||||
import org.bukkit.block.data.type.*;
|
import org.bukkit.block.data.type.*;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
@@ -315,6 +316,10 @@ public class LegacyMats {
|
|||||||
if (block.getType() == Material.LIGHTNING_ROD && !((LightningRod)block.getBlockData()).isWaterlogged()
|
if (block.getType() == Material.LIGHTNING_ROD && !((LightningRod)block.getBlockData()).isWaterlogged()
|
||||||
&& (((LightningRod)block.getBlockData()).getFacing() == BlockFace.UP || ((LightningRod)block.getBlockData()).getFacing() == BlockFace.DOWN))
|
&& (((LightningRod)block.getBlockData()).getFacing() == BlockFace.UP || ((LightningRod)block.getBlockData()).getFacing() == BlockFace.DOWN))
|
||||||
return false;
|
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;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
if (block.getType().name().endsWith("_CARPET"))
|
if (block.getType().name().endsWith("_CARPET"))
|
||||||
@@ -338,6 +343,8 @@ public class LegacyMats {
|
|||||||
case END_ROD:
|
case END_ROD:
|
||||||
case FLOWER_POT:
|
case FLOWER_POT:
|
||||||
case SCAFFOLDING:
|
case SCAFFOLDING:
|
||||||
|
case COMPARATOR:
|
||||||
|
case REPEATER:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -373,6 +380,14 @@ public class LegacyMats {
|
|||||||
return false;
|
return false;
|
||||||
if (block.getType().data == Gate.class)
|
if (block.getType().data == Gate.class)
|
||||||
return false;
|
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()) {
|
switch (block.getType()) {
|
||||||
case POINTED_DRIPSTONE:
|
case POINTED_DRIPSTONE:
|
||||||
case SMALL_AMETHYST_BUD:
|
case SMALL_AMETHYST_BUD:
|
||||||
@@ -405,10 +420,12 @@ public class LegacyMats {
|
|||||||
case CONDUIT:
|
case CONDUIT:
|
||||||
case END_PORTAL_FRAME:
|
case END_PORTAL_FRAME:
|
||||||
case FARMLAND:
|
case FARMLAND:
|
||||||
case LADDER:
|
|
||||||
case DAYLIGHT_DETECTOR:
|
case DAYLIGHT_DETECTOR:
|
||||||
|
case HONEY_BLOCK:
|
||||||
case HOPPER:
|
case HOPPER:
|
||||||
case LIGHTNING_ROD:
|
case LIGHTNING_ROD:
|
||||||
|
case SCULK_SENSOR:
|
||||||
|
case SCULK_SHRIEKER:
|
||||||
return false;
|
return false;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
@@ -441,8 +458,12 @@ public class LegacyMats {
|
|||||||
return true;
|
return true;
|
||||||
if (block.getType().data == Stairs.class && !((Stairs)block.getBlockData()).isWaterlogged())
|
if (block.getType().data == Stairs.class && !((Stairs)block.getBlockData()).isWaterlogged())
|
||||||
return true;
|
return true;
|
||||||
|
if (block.getType().data == Chain.class && !((Chain)block.getBlockData()).isWaterlogged())
|
||||||
|
return true;
|
||||||
if (block.getType().data == Candle.class)
|
if (block.getType().data == Candle.class)
|
||||||
return true;
|
return true;
|
||||||
|
if (block.getType().data == TrapDoor.class && !((TrapDoor)block.getBlockData()).isWaterlogged())
|
||||||
|
return true;
|
||||||
switch (block.getType()) {
|
switch (block.getType()) {
|
||||||
case POINTED_DRIPSTONE:
|
case POINTED_DRIPSTONE:
|
||||||
case SMALL_AMETHYST_BUD:
|
case SMALL_AMETHYST_BUD:
|
||||||
@@ -459,6 +480,8 @@ public class LegacyMats {
|
|||||||
case SOUL_CAMPFIRE:
|
case SOUL_CAMPFIRE:
|
||||||
case CONDUIT:
|
case CONDUIT:
|
||||||
case LIGHTNING_ROD:
|
case LIGHTNING_ROD:
|
||||||
|
case SCULK_SENSOR:
|
||||||
|
case SCULK_SHRIEKER:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user