Событие 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".