MyChat Scripts: функция mSendCustomMsgToClientConsoleByCID, отправка custom-сообщения клиенту
Функция для отправки специального сообщения в консоль MyChat Client.
Синтаксис
function mSendCustomMsgToClientConsoleByCID(iCID: integer; sMsg, sSound: string; bFocus, bSaveToLog: boolean; iType: integer): integer;
Параметры и возвращаемые значения
Параметр |
Тип |
Значение |
iCID |
integer |
уникальный идентификатор подключения клиента в онлайн-структуре сервера; |
sMsg |
string |
текст сообщения. Можно использовать переносы строк (CRLF); |
sSound |
string |
тип звукового уведомления, которое можно указать. Если будет задана пустая строка — никакого звука на клиенте не будет. Если в настройках клиентской программы отключены все звуки, то звукового уведомления также не будет. Список возможных звуков указан в справочнике звуков MyChat Client; |
bFocus |
boolean |
принудительно переключить программу клиента на консоль для показа сообщения; |
bSaveToLog |
boolean |
сохранять сообщение в протоколе клиента на диск, а не только отображать его в консоли; |
iType |
integer |
тип сообщения, один из вариантов. |
Результат функции
Число 0, если отправка произошла успешно, -1 — если CID не существует или произошла сетевая ошибка.
Пример
Запрет отправки сообщений в общую конференцию main всем пользователям, кроме группы прав NSS. Если в конференцию будет отправлять сообщение пользователь из другой группы, оно будет игнорироваться, а в консоль пользователю в Windows-приложение будет отправляться уведомление про это.
const
NOTIFY_FLAG = true; // true/false: notify a user that he can't write messages in a conference
RESTRICTED_CONFS = '|main|';
ALLOWED_ROLES = '|Administrators|Operators|NSS|';
function OnConfMessage(iCID, iUIN, iUID, iMsgType: integer; sConfName, sMsg: string): boolean;
var
sRoleName: string;
bFlag: boolean;
begin
bFlag := true;
if pos('|' + sConfName + '|', RESTRICTED_CONFS) <> 0 then begin
sRoleName := mGetUserRoleName(iUIN);
if pos('|' + sRoleName + '|', ALLOWED_ROLES) = 0 then begin
bFlag := false;
if NOTIFY_FLAG then
mSendCustomMsgToClientConsoleByCID(iCID,
'Sorry, but you can not send messages to the conference #' + sConfName,
'Status', true, true, 4);
end;
end;
result := bFlag;
end;
begin
end.