Синтаксис:
$UserCommand [Тип] [Контекст] [Детали]||
Направление команды:
Хаб ---> Клиент
[Тип] — положительное, целое число, описывающее тип команды:
0 — разделитель
1 — raw команда
2 — raw команда с ограничением на единственный ник %[nick]
255 — очистка команд
[Контекст] — целое число, регулирующее, где показывать контекстные менюшки:
[1] — Контекстное меню хаба (доступно по клику на вкладке хаба). Примеры: просмотр правил, смена пароля. Эта команда может содержать параметр %[nick]. Вместо этого следует использовать переменную %[mynick] или %[line:blah].
[2] — Контекстное меню юзера (доступно по клику на любого юзера). Примеры: показ статистики юзера, проверка бана юзера. Эта команда может содержать переменные: %[nick], %[mynick] и %[line:blah].
[4] — Контекстное меню поиска. Пример: сообщить о битом файле. Эта команда может содержать специфические аргументы ника и файла.
[8] — Конкестное меню файл–листа. Пример: сообщение о найденном битом файле у юзера в списке файлов. Эта команда может содержать специфические аргументы ника и файла.
Замечание: этот контекст является новым в DC++ 0.669
[Детали] — этот параметр зависит от параметра [Тип]
[Тип] = 0 (разделитель) и [Тип] = 255 (очистка) не должны содержать параметра [Детали]
[Тип] = 1 (raw) использует в качестве деталей [Заголовок]$[Команда]
[Заголовок] — это название менюшки. Менюшка может быть составной, то есть, содержать подменюшки. Для построения подменюшки используется обратный слеш (\). Например, [Подменю]\[Заголовок]. Степень вложенности подменюшек может быть любой.
Более высокие числа зарезервированы для дальнейшего использования.
Эскейп последовательности:
Если в меню используются знаки $, | и &, то их необходимо заменить на кодовые аналоги (аналоги html) (алгоритм экранирования приведён на странице NMDC)
Как и все команды NMDC, данная команда разделяется от других знаком |.
Контекст:
Контекстное число — это бинарный флаг, который может быть составлен из других чисел, например, меню юзера и меню поиска вместе дадут (2 | 4 = 6). То есть, для того, чтобы менюшка появилась в меню юзера и в меню поиска, следует указывать контекст, равный шести.
Детали:
Разделитель (вертикальная черта):
$UserCommand 0 [Контекст] |
После [Контекста] и перед символом | может находиться некий текст, который в любом случае будет игнорироваться
Raw команды:
$UserCommand 1 [Контекст] [Заголовок]$[raw]||
Команда добавляет raw пункт меню с заголовком [Заголовок] и raw командой [raw]. Эта команда должна оканчиваться на |, и если этого символа нет, то она отвергается.
Raw команда с ограничением на единственный ник:
$UserCommand 2 [Контекст] [Заголовок]$[raw]||
То же самое, что и в предыдущем случае, но эта команда работает одна на один ник. Это должно помешать использованию массовой рассылки.
Очистка меню:
$UserCommand 255 [Контекст] |
Команда стирает все менюшки из указанного контекста и ниже. То есть, например, 7 — сотрёт все менюшки с контекстами 1, 2 и 4.
Примеры:
$UserCommand 2 6 Кик$$To: %[nick] From: %[mynick] $<%[mynick]> You are being kicked====|$Kick %[nick]||
Эта команда отсылает в приват сообщение "You are being kicked====" для ника, и отправляет команду $Kick. Менюшки будут в поиске и меню юзера. Raw команда с ограничением на единственный ник не позволит сделать множественный кик.
$UserCommand 255 1 |
Команда удалить все менюшки из контекстного меню хаба (вкладка хаба).
На поддержку данной команды может указывать наличие характеристики UserCommand в команде $Supports. Однако, из–за большой распространённости данной команды наличие этой характеристики в команде $Supports не обязательно
Оригинал (by Setuper): http://mydc.ru/index.html?showtopic=915&view=findpost&p=6892