diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java index ebf0bf3a5..d8dcbd2d4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/hideseek/HideSeek.java @@ -50,7 +50,6 @@ import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.FireworkMeta; -import mineplex.core.antihack.AntiHack; import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilBlock; @@ -67,11 +66,12 @@ import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilTime; import mineplex.core.itemstack.ItemStackFactory; +import mineplex.core.packethandler.IPacketHandler; +import mineplex.core.packethandler.PacketInfo; import mineplex.core.recharge.Recharge; import mineplex.core.updater.UpdateType; import mineplex.core.updater.event.UpdateEvent; import mineplex.minecraft.game.core.combat.DeathMessageType; -import mineplex.minecraft.game.core.condition.Condition.ConditionType; import mineplex.minecraft.game.core.damage.CustomDamageEvent; import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.GameType; @@ -91,9 +91,9 @@ import nautilus.game.arcade.stats.BadHiderStatTracker; import nautilus.game.arcade.stats.HunterKillerStatTracker; import nautilus.game.arcade.stats.HunterOfTheYearStatTracker; import nautilus.game.arcade.stats.MeowStatTracker; - import net.minecraft.server.v1_7_R4.EntityCreature; import net.minecraft.server.v1_7_R4.Navigation; +import net.minecraft.server.v1_7_R4.PacketPlayOutSpawnEntity; @SuppressWarnings("deprecation") public class HideSeek extends TeamGame @@ -188,6 +188,23 @@ public class HideSeek extends TeamGame private ArrayList _allowedBlocks; private ArrayList _allowedEnts; + private IPacketHandler preventSpawnSent = new IPacketHandler() { + + @Override + public void handle(PacketInfo packetInfo) + { + if (packetInfo.getPacket() instanceof PacketPlayOutSpawnEntity) + { + Entity passenger = packetInfo.getPlayer().getPassenger(); + if (passenger != null && passenger.getType() == EntityType.FALLING_BLOCK) { + if (passenger.getEntityId() == ((PacketPlayOutSpawnEntity) packetInfo.getPacket()).a){ + packetInfo.setCancelled(true); + } + } + } + } + + }; public HideSeek(ArcadeManager manager) { @@ -249,6 +266,20 @@ public class HideSeek extends TeamGame new BadHiderStatTracker(this) ); } + + @EventHandler + public void onBombsPacketListener(GameStateChangeEvent event) + { + if (event.GetState() == GameState.Live) + { + this.getArcadeManager().getPacketHandler().addPacketHandler(preventSpawnSent); + } + else if (event.GetState() == GameState.End) + { + this.getArcadeManager().getPacketHandler().removePacketHandler(preventSpawnSent); + } + } + public Material GetItemEquivilent(Material mat) {