Событие MyChat Server: OnConfMessage, новое сообщение в конференции

Событие MyChat Server: OnConfMessage, новое сообщение в конференции

"Для разработчиков", "Серверные скрипты", "Скриптовые события", "Chat events", "Конференции", "OnConfMessage".

 

Событие, возникающее в момент отправки сообщения в текстовую конференцию каким-либо пользователем.

 

Шаблон события

function OnConfMessage(iCID, iUIN, iUID, iMsgType: integer; sConfName, sMsg: string): boolean;
begin
  // your own code

  result := true;
end;

begin

end.

Вместо комментария может быть любой ваш код.

 

Описание параметров

Параметр

Тип

Значение

iCID

integer

Connection ID клиента, уникальный сеансовый идентификатор в онлайн-структуре сетевых подключений к серверу;

iUIN

integer

уникальный идентификатор отправителя сообщения (число >=0);

iUID

integer

уникальный идентификатор конференции (число >=0);

sConfName

string

текстовое название конференции;

iMsgType

integer

тип сообщения;

sMsg

string

текст сообщения.

 

Возвращаемое значение

По умолчанию функция должна возвращать true, однако, если вы решаете по каким-то причинам отменить сообщение в конференции, можно вернуть false, и тогда отправленное сообщение будет уничтожено и не отобразится ни у отправителя, ни у всех членов конференции.

 

Пример

function OnConfMessage(iCID, iUIN, iUID, iMsgType: integer; sConfName, sMsg: string): boolean;
var
  bFlag: boolean;
begin
  bFlag := true;
  
    if sConfName = 'main' then begin
      if iUIN <> 3 then bFlag := false;
    end;

  result := bFlag;
end;

begin

end.

Скрипт следит, кто отправляет сообщения в текстовые конференции, и в какие. Если сообщение отправляется в конференцию "main" и UIN отправителя отличен от 3 (например, это модератор конференции), то сообщение попросту удаляется. Таким образом можно сделать своеобразный фильтр типа "В конференцию "main" нельзя никому отправлять сообщения, кроме Павла Сергеевича, а у него UIN=3".

 

Ещё посмотреть

OnPrivateMessage