Block Runner (renamed from Heavy Blocks) bug fixes. Added additional checks on the block place event.

This commit is contained in:
Thanos paravantis 2015-10-16 20:34:50 +03:00
parent c5dcf5d45a
commit fde6617c6b

View File

@ -8,8 +8,12 @@ import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilParticle;
import mineplex.core.common.util.UtilParticle.ParticleType;
import mineplex.core.common.util.UtilParticle.ViewDist;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilServer;
import mineplex.core.common.util.UtilShapes;
import mineplex.core.common.util.UtilTextMiddle;
import nautilus.game.arcade.game.games.mineware.Challenge;
import nautilus.game.arcade.game.games.mineware.MineWare;
@ -133,13 +137,30 @@ public class ChallengeBlockRunner extends Challenge
if(bottomVoid1.isEmpty() && bottomVoid2.isEmpty() && bottomVoid3.isEmpty())
{
UtilTextMiddle.display("", C.cRed + "You can't place blocks that far from the ground.", 5, 40, 5);
blockBreakEffect(block);
// Cancelling so the player doesn't block farm.
event.setCancelled(true);
return;
}
// Second Check
// Checking if the player is trying to trap another player.
for (Player others : Host.GetPlayers(true))
{
if (others.equals(player))
continue;
if (block.getLocation().add(0.5, 0.5, 0.5).distanceSquared(others.getLocation()) <= 1.5)
{
UtilTextMiddle.display("", C.cRed + "You can't place blocks near other players.", 5, 40, 5);
blockBreakEffect(block);
event.setCancelled(true);
return;
}
}
// Third Check
// Checking if the player is trying to make a tower up to the sky.
Block bottom1 = player.getLocation().getBlock().getRelative(BlockFace.DOWN);
@ -164,6 +185,7 @@ public class ChallengeBlockRunner extends Challenge
blockBreakEffect(bottom2);
blockBreakEffect(bottom3);
UtilTextMiddle.display("", C.cRed + "You can't build a tower that high.", 5, 40, 5);
return;
}
}
@ -184,6 +206,9 @@ public class ChallengeBlockRunner extends Challenge
private void blockBreakEffect(Block block)
{
if (block.getType() == Material.GRASS)
return;
UtilParticle.PlayParticle(ParticleType.BLOCK_DUST.getParticle(block.getType(), block.getData()), block.getLocation(), 0.0F, 0.0F, 0.0F, 0,
10, ViewDist.NORMAL, UtilServer.getPlayers());
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getTypeId());