Source:
public boolean checkBlockRestrictionsAfter(Player player, Player controller, Game game) { for (UUID blockingCreatureId : this.getBlockers()) { Permanent blockingCreature = game.getPermanent(blockingCreatureId); if (blockingCreature != null) { for (Map.Entry<RestrictionEffect, HashSet<Ability>> entry : game.getContinuousEffects().getApplicableRestrictionEffects(blockingCreature, game).entrySet()) { RestrictionEffect effect = entry.getKey(); for (Ability ability : entry.getValue()) { if (!effect.canBlockCheckAfter(ability, game)) { if (controller.isHuman()) { game.informPlayer(controller, new StringBuilder(blockingCreature.getLogName()).append(" can't block this way.").toString()); return false; } else { removeBlocker(blockingCreatureId, game); } } } } } } for (UUID attackingCreatureId : this.getAttackers()) { Permanent attackingCreature = game.getPermanent(attackingCreatureId); if (attackingCreature != null) { for (Map.Entry<RestrictionEffect, HashSet<Ability>> entry : game.getContinuousEffects().getApplicableRestrictionEffects(attackingCreature, game).entrySet()) { RestrictionEffect effect = entry.getKey(); for (Ability ability : entry.getValue()) { if (!effect.canBeBlockedCheckAfter(attackingCreature, ability, game)) { if (controller.isHuman()) { game.informPlayer(controller, new StringBuilder(attackingCreature.getLogName()).append(" can't be blocked this way.").toString()); return false; } else { for (CombatGroup combatGroup : this.getGroups()) { if (combatGroup.getAttackers().contains(attackingCreatureId)) { for (UUID blockerId : combatGroup.getBlockers()) { removeBlocker(blockerId, game); } } } } } } } } } return true; }

Target:
public boolean checkBlockRestrictionsAfter(Player player, Player controller, Game game) { for (UUID blockingCreatureId : this.getBlockers()) { Permanent blockingCreature = game.getPermanent(blockingCreatureId); if (blockingCreature != null) { for (Map.Entry<RestrictionEffect, HashSet<Ability>> entry : game.getContinuousEffects().getApplicableRestrictionEffects(blockingCreature, game).entrySet()) { RestrictionEffect effect = entry.getKey(); for (Ability ability : entry.getValue()) { if (!effect.canBlockCheckAfter(ability, game)) { if (controller.isHuman()) { game.informPlayer(controller, blockingCreature.getLogName() + " can't block this way."); return false; } else { removeBlocker(blockingCreatureId, game); } } } } } } for (UUID attackingCreatureId : this.getAttackers()) { Permanent attackingCreature = game.getPermanent(attackingCreatureId); if (attackingCreature != null) { for (Map.Entry<RestrictionEffect, HashSet<Ability>> entry : game.getContinuousEffects().getApplicableRestrictionEffects(attackingCreature, game).entrySet()) { RestrictionEffect effect = entry.getKey(); for (Ability ability : entry.getValue()) { if (!effect.canBeBlockedCheckAfter(attackingCreature, ability, game)) { if (controller.isHuman()) { game.informPlayer(controller, attackingCreature.getLogName() + " can't be blocked this way."); return false; } else { for (CombatGroup combatGroup : this.getGroups()) { if (combatGroup.getAttackers().contains(attackingCreatureId)) { for (UUID blockerId : combatGroup.getBlockers()) { removeBlocker(blockerId, game); } } } } } } } } } return true; }