diff --git a/src/main/java/com/comandante/creeper/command/MovementCommand.java b/src/main/java/com/comandante/creeper/command/MovementCommand.java index 0ca09b3c43a94bfd06a824ab4d16caad38d52cbf..b05384736f87a97c3918d610a8e1fc74e8c06012 100644 --- a/src/main/java/com/comandante/creeper/command/MovementCommand.java +++ b/src/main/java/com/comandante/creeper/command/MovementCommand.java @@ -3,6 +3,7 @@ package com.comandante.creeper.command; import com.comandante.creeper.managers.GameManager; import com.comandante.creeper.player.CoolDownType; import com.comandante.creeper.player.PlayerMovement; +import com.comandante.creeper.spells.Effect; import com.comandante.creeper.world.RemoteExit; import com.comandante.creeper.world.Room; import com.google.common.base.Optional; @@ -11,6 +12,7 @@ import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.MessageEvent; import java.util.Arrays; +import java.util.Iterator; import java.util.List; public class MovementCommand extends Command { @@ -44,6 +46,13 @@ public class MovementCommand extends Command { write("You are dead and can not move."); return; } + for (String effectId : playerManager.getPlayerMetadata(playerId).getEffects()) { + Effect effect = gameManager.getEntityManager().getEffectEntity(effectId); + if (effect.isFrozenMovement()) { + write("You are frozen and can not move."); + return; + } + } final String command = getRootCommand(e); PlayerMovement playerMovement = null; if (!validTriggers.contains(command.toLowerCase())) { diff --git a/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java b/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java index db5b11180e06ddabd41f35ec5aa09d7170a83f71..9666b4f5aec44f60d307fa1a7b32d1ae3f437d61 100644 --- a/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java +++ b/src/main/java/com/comandante/creeper/command/admin/TeleportCommand.java @@ -8,6 +8,7 @@ import com.comandante.creeper.player.Player; import com.comandante.creeper.player.PlayerMovement; import com.comandante.creeper.player.PlayerRole; import com.comandante.creeper.server.Color; +import com.comandante.creeper.spells.Effect; import com.comandante.creeper.world.Room; import com.google.common.collect.Sets; import org.jboss.netty.channel.ChannelHandlerContext; @@ -43,6 +44,13 @@ public class TeleportCommand extends Command { write("You are dead and can not move."); return; } + for (String effectId : playerManager.getPlayerMetadata(playerId).getEffects()) { + Effect effect = gameManager.getEntityManager().getEffectEntity(effectId); + if (effect.isFrozenMovement()) { + write("You are frozen and can not move."); + return; + } + } String desiredId = originalMessageParts.get(1); Iterator<Map.Entry<String, Player>> players = playerManager.getPlayers(); while (players.hasNext()) {