IRC Client KVIrc forum

Russian talks => Исправленные и закрытые ошибки => Topic started by: FiX on 13 July 2007, 00:26



Title: Мод +k
Post by: FiX on 13 July 2007, 00:26
Не работает автоматический перезаход на канал, при установленном на канале моде +k ключ
При автоматическом перезаходе после кика или после команды /hop выдается сообщение "Cannot join channel (+k)" и возвращения на канал не происходит.


Title: Re: Мод +k
Post by: DEN on 16 July 2007, 17:41
Логично, ведь чтобы зайти на канал надо прописать тот самый ключ. А в скрипте "перезахода после кика" без ключа по умолчанию.


Title: Re: Мод +k
Post by: FiX on 16 July 2007, 23:11
В каком скрипте? Эта возможность является стандартной безо всяких скриптов.


Title: Re: Мод +k
Post by: Youpiter on 17 July 2007, 21:15
Не думаю, что эта возможность является стандартной.
Для себя это решил так. Я отключил програмный автореджоин и прописал одно событие которое срабатывает если меня кикают.
Code:
event(OnMeKick,Vengeance)
{
notice -q $0 $k(5,8)Не балуй!
chanserv unban $chan.name
ChanServ KICK $chan.name $0 $k(5,8)Негодник!$k
join $chan.name КЛЮЧ
}
Надеюсь понятно, что это работает если вы имеете access на канале. Хотя join должен срабатывать в любом случае.


Title: Re: Мод +k
Post by: FiX on 18 July 2007, 01:13
Неудобно, если каналов несколько разных да и при команде /hop возврата на канал не будет.
Насчет стандартного... в мирке же все нормально работает.


Title: Re: Мод +k
Post by: Alvis on 18 July 2007, 20:30
можно заменить код в соответствующем пункте меню на:
if($channel($0))
{
   %key = $chan.key($channel($0));
   part --keep --silent $0;
   join $0 %key;
}


Title: Re: Мод +k
Post by: FiX on 20 July 2007, 18:25
В этом случае после реконнекта на канал не зайдет. Я понимаю, можно его добавить в автозаход в настройках, но невсегда это надо.
Да и не понимаю зачем городить огород с кучей скриптов, если недоработка явно программистов и не думаю, что она решается сложно.


Title: Re: Мод +k
Post by: FiX on 19 November 2007, 02:24
АП.
С момента багрепорта (на старом форуме) прошел уже год. =/

/hop исправили, а кик все так же действует как и раньше. Свежая сборка с SVN.


Title: Re: Мод +k
Post by: FiX on 21 November 2007, 18:40
В общем, решил проблему сам.
Если кому интеерсно:

Добавляем новый обработчик для события "OnChannelModeChange" и пишем туда:

Code:
if ($chan.key($channel($chan.name))) %Chankey{$server.$chan.name}=$chan.key($channel($chan.name));

Потом в редакторе событий добавляем новый обработчик на событие 475 (оно же "Cannot join channel (+k)"):

Code:
if (%Chankey{$0.$3}) {
%temp1=%Chankey{$0.$3};
%Chankey{$0.$3}=;
join $3 %temp1;
}

Все. Еще хотелось бы убрать само сообщение "Cannot join channel (+k)", но пока не разобрался как.


Title: Re: Мод +k
Post by: Alexey on 25 July 2008, 18:32
Исправлено в SVN