Общие сведения
Плагины представляют из себя обычные динамически загружаемые библиотеки (DLL). Для установки необходимо скопировать файл плагина в папку “Plugins”, созданную в каталоге с программой CommFort server и перезапустить программу. Плагины должны иметь расширение «cfsplug». Например “myplugin.cfsplug”. Очередность работы плагинов определяется по алфавиту (имен файлов).
Для функций плагина необходимо использовать соглашение _stdcall. Так же необходимо отключить декорирование имен экспортируемых функций.
Для ознакомления с типами экспортируемых функций, а так же общей структурой плагина используйте прилагающийся исходный код к плагину “Null” (CodeGear C++ Builder 2009), поставляющийся вместе с данной инструкцией.
Описание состава сообщений
Для описания состава сообщений, отправляемых программе и принимаемых от нее будут использоваться следующие шаблоны:
число(описание): целое десятичное 32 разрядное число. представляет из себя последовательность 4х байтов, содержащих данное числоСостав сообщений, отправляемых программой плагину
Описание | 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 |