package zones;
/**
* @author Mangol
*/
public class CustomZone implements OnInitScriptListener
{
    private static ZoneListener _zoneListener;
    private final AttackListener attackListener = new AttackListener();
    private static String[] zones = { "[zone1]", "[zone2]", };
    private final int[] check_transform_id = { 106, 306, 506 }; // пример и тд.
    @Override
    public void onInit()
    {
        _zoneListener = new ZoneListener();
        for(final String z : zones)
        {
            final Zone zone = ReflectionUtils.getZone(z);
            zone.addListener(_zoneListener);
        }
    }
    private class ZoneListener implements OnZoneEnterLeaveListener
    {
        @Override
        public void onZoneEnter(final Zone zone, final Creature cha)
        {
            if(zone.getParams() == null || !cha.isPlayable())
            {
                return;
            }
            final Player player = cha.getPlayer();
            if(zone.getParams().getBool("transformprotection"))
            {
                if(player != null)
                {
                    final int transform_id = player.getTransformation();         
                    //если увидели ид трансформы которую нужно снять.
                    if(ArrayUtils.contains(check_transform_id, transform_id))
                    {
                        player.setTransformation(0);
                        player.sendMessage("Что творишь Что творишь!!1");
                    }
                }
            }
            player.addListener(attackListener);
        }
        @Override
        public void onZoneLeave(final Zone zone, final Creature cha)
        {
            if(cha.isPlayer())
            {
                cha.removeListener(attackListener);
            }
        }
    }
    private class AttackListener implements OnAttackListener
    {
        @Override
        public void onAttack(final Creature actor, final Creature target)
        {
            if(actor.isPlayer())
            {
                final Player player = actor.getPlayer();
                final int transform_id = player.getTransformation();         
                //если увидели ид трансформы которую нужно снять.
                if(ArrayUtils.contains(check_transform_id, transform_id))
                {
                    player.setTransformation(0);
                    player.sendMessage("Что творишь Что творишь!!1");
                }
            }
        }
    }
}