Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
Алексей Пикуров
Сделано по запросу нашего клиента, работает с версии MyChat 6.0 и выше.

Ситуация следующая. Один пользователь не может открывать приваты с определёнными людьми, но может получать от них сообщения в привате.

Однако, со всеми остальными людьми ему можно открывать приваты. Как это реализовать?

Навешиваем обработку события на OnPrivateRequest на сервере:

Код: Выделить всё
function OnPrivateRequest(iCID, iUIN, iUINTo, iRole, iRoleReciever, iTask: integer): boolean;
begin
  if (iUIN = 6) and (iUINTo = 3) then begin
    mSendCustomMsgToClientConsoleByCID(iCID, 'Вам запрещено общаться с этим человеком.' + CRLF +
                                             'Все вопросы к Яндексу :)',
                                             'Error', true, true, 74);
    result := false;
  end else result := true;
end;

begin
end.


И делаем всё, что нам нужно. Попробуйте, это очень просто и очень быстро работает.