Общие сведения

Плагины представляют из себя обычные динамически загружаемые библиотеки (DLL). Для установки необходимо скопировать файл плагина в папку “Plugins”, созданную в каталоге с программой CommFort server и перезапустить программу. Плагины должны иметь расширение «cfsplug». Например “myplugin.cfsplug”. Очередность работы плагинов определяется по алфавиту (имен файлов).

Для функций плагина необходимо использовать соглашение _stdcall. Так же необходимо отключить декорирование имен экспортируемых функций.

Для ознакомления с типами экспортируемых функций, а так же общей структурой плагина используйте прилагающийся исходный код к плагину “Null” (CodeGear C++ Builder 2009), поставляющийся вместе с данной инструкцией.

Описание состава сообщений

Для описания состава сообщений, отправляемых программе и принимаемых от нее будут использоваться следующие шаблоны:

число(описание): целое десятичное 32 разрядное число. представляет из себя последовательность 4х байтов, содержащих данное число
текст(описание): текстовые данные. Представляют из себя число(длина текста в байтах) + сам текст
пользователь(описание): текст(имя пользователя) + текст(IP-адрес пользователя)+число(иконка пользователя)

Состав сообщений, отправляемых программой плагину

Описание ID Структура данных Примечания
Сообщение в приват 60 Пользователь()+число(режим)+текст(сообщение) Режимы:
0 - текст опубликован обычно
1 – текст опубликован состоянием (F9)
Личное сообщение 61 Пользователь()+текст(сообщение)
Подключение к каналу бота 62 Текст(канал)+текст(тема)+текст(приветствие)
Публикация сообщения в канал 70 Пользователь()+текст(канал)+число(режим)+текст(сообщение) Режимы:
0 - текст опубликован обычно
1 – текст опубликован состоянием (F9)
Смена темы канала 71 Пользователь()+текст(канал)+текст(новая тема)
Подключеник к каналу другого пользователя 72 Пользователь()+текст(канал)
Выход из канала другого пользователя 73 Пользователь()+текст(канал)
Смена имени 75 Пользователь()+текст(новое имя)+число(новая иконка) -
Смена иконки 76 Пользователь()+число(номер новой иконки)
Смена состояния 77 Пользователь()+текст(новое состояние)
Пользователь присоеденился к чату 78 Пользователь()
Пользователь покинул чат 79 Пользователь()
Публикация объявления 80 Пользователь()+число(срок действия в минутах)+текст(текст объявления)
Регистрация нового пользователя 81 Текст(имя)+текст(IP-адрес)
Запрос на активацию модератором нового пользователя 82 Текст(имя)+текст(IP-адрес)+текст(сообщение модератору)
Список каналов (ответ на запрос с ID=40) 90 Число(количество каналов)+(текст(канал)+число(количество пользователей в канале)+текст(тема канала))*количество каналов
Список подключенных пользователей (ответ на запрос с ID=41) 91 Число(количество подключенных пользователей)+пользователь()*количество подключенных пользователей
Список зарегистрированных пользователей (ответ на запрос с ID=42) 92 Число(количество зарегистрированных пользователей)+(текст(имя)+текст(IP-адрес))*количество зарегистрированных пользователей
Список пользователей ожидающих активации модератором (ответ на запрос с ID=43) 93 Число(количество пользователей ожидающих активации модератором)+(текст(имя)+текст(IP-адрес)+текст(дата и время подачи заявки на активацию)+текст(сообщение модератору))*количество пользователей ожидающих активации модератором

Состав сообщений, принимаемых программой от плагина

Описание ID Структура данных Примечания
Опубликовать сообщение в канал 20 Число(режим)+текст(канал)+текст(сообщение) Режимы:
0 - текст опубликован обычно
1 – текст опубликован состоянием (F9)
Опубликовать сообщение в приват 21 Число(режим)+текст(имя пользователя)+текст(сообщение) Режимы:
0 - текст опубликован обычно
1 – текст опубликован состоянием (F9)
Отправить личное сообщение 22 текст(имя пользователя)+текст(сообщение)
Изменить тему канала 23 Текст(канал)+текст(новая тема)
Изменить приветствие канала 24 Текст(канал)+текст(новое приветствие)
Изменить состояние 25 Текст(новое состояние)
Создать/подключиться к общему каналу 26 Текст(канал)+число(видимость)+число(режим входа) Видимость:
0 – канал невидим в списке каналов
1 – канал доступен в списке каналов

Режим входа:
0 – вход разрешен всем пользователям
1 – вход разрешен только по приглашению

Внимание! Один пользователь может одновременно находиться не более чем в 16 общих каналах.
Покинуть общий канал 27 Текст(канал)
Наложить ограничение 28 число(тип ограничения)+число(тип идентификации)+число(тип анонимности)+число(время в минутах)+текст(учетная запись, либо IP-адрес, либо диапазон IP-адресов)+текст(название канала)+текст(причина ограничения) Тип ограничения:
0 - Запретить доступ к чату,
1 - Запретить доступ к каналу,
2 - Запретить публикацию в канале,
3 - Запретить публикацию картинок,
4 - Запретить публикацию объявлений.

тип идентификации:
0 - учетная запись
1 - IP-адрес
2 - диапазон IP-адресов (пример: 192.168.0.0-192.168.0.255)

тип анонимности:
0 - обычное ограничение
1 - анонимное ограничение
Удалить (закрыть) канал 29 Текст(канал)
Опубликовать объявление 30 Число(срок действия в минутах)+текст(текст объявления)
Зарегистрировать учетную запись 31 Текст(имя)+текст(пароль)
Удалить учетную запись 32 Текст(имя)
Принять активацию учетной записи 33 Текст(имя)
Отклонить активацию учетной записи 34 Текст(имя)+текст(причина)
Запросить список каналов 40
Запросить список подключенных пользователей 41
Запросить список зарегистрированных пользователей 42
Запросить список пользователей, ожидающих активацию модератором 43