В этой статье я раскажу как собрать на удаленной *nix машине наверно самого известного и бота для IRC сетей. Для описания я взял бота версии 1.6.9, которого вы сможете легко найти на просторах интернета. Итак начнем:
1.Распаковка и установка. Итак будем считать что вы уже нашли откуда скачать бота и конечно же у вас уже имеется shell. Перво наперво нам нужно его распаковать пишем в консоле tar -zxvf [filename], бот распакован теперь нужно перейти в каталог с только что раскпакованым ботом пишем cd [название папки]. Теперь нужно сконфигурировать файлы пишем ./configure . Теперь нужно собрать бота, а делается это двумя способами:
Static будет занимать меньше, чем eggdrop + dynamic-модули, и будет в одном файле. Таким образом менять версию бота для тестов или проверок намного проще, так как менять надо всего лишь один файл. А также, если ваш бот запускается в одном экземпляре и больше нет никаких других ботов запускающихся из этой же директории, то этот вид сборки тоже будет лучшим вариантом.
Dynamic будет в виде нескольких файлов (сам eggdrop и модули) и займет чуть больше, из-за заголовков и служебной информации в скомпилированных файлах. Но динамик выигрывает за счет экономии памяти при запуске нескольких ботов. Если запустить несколько ботов, то память будет общей. А также dynamic-модули можно загружать/выгружать на лету.
Для сборки бота как dynamic (обычно): make
Для сборки бота как static: make static
Для автоматического подключения модулей: make config
И завершаем процесс установки камандой make install
2.Eggdrop.conf. Если всё прошло без ошибок, то время для eggdrop.conf (лучше взять для правки eggdrop.advanced.conf). Качаем его к себе на винт с ftp и правим под себя. Придумываем ник, реалнэйм, инфо на бота, а также заменяем всякие там #lamest на твой крутой IRC-канал. Находим строчку set owner и подставляем туда твой ник на IRC (чтобы какой-нибудь злой перец не мог удалить тебя). Обязательно удаляем строчку (или заремим её) die «Please edit your config file.» Это злая шутка не запустит бота, если не удалить эту строку. Также полезно изменить telnet-порт (по умолчанию 3333). Это делается модификацией строки listen 3333 all. И конечно же прописываем irc-сервер, на который бот будет коннектиться при запуске (блок set servers { } ). Вообще конфиг можно править в течении нескольких часов ;) Но, для первого запуска изменяем лишь главное. После проделанных изменений заливаем назад в папку eggdrop-а eggdrop.conf и пробуем запустить бота.
3.Запуск и управление ботом. Для первого запуска необходим параметр -m , для создания юзерлиста и файла каналов. Итак, строка запуска:
./eggdrop -m eggdrop.conf
После набора этой строки, может быть 2 варианта. Либо программа нагло выругается, что, мол у тебя в конфиге ошибка (заново правим его, учитывая строку, в которой произошёл недочёт) или недостаёт какого-то модуля или директории (создаём директорию, либо правим патч к модулям в конфиге), либо всё пройдёт как по маслу и последняя строка будет (Set to bground number-process). Во втором случае, прыгаем от радости и ждём прибытия на канал нашего доброго ламабота. Затем прописываем себя как овнера на боте. Для этого лучше написать строку на шелле для коннекта на бота.
telnet localhost № порта, который был указан в конфиге.
Введём ник «new», затем ваш ник и пароль, который будет в дальнейшем запомнен ботом, для вашей идентификации. Теперь, настало время для настройки бота через telnet либо DCC-чат (partyline). Чтобы попасть на бота через DCC, тебе нужно добавить себе маску, которая у тебя на IRC. Для этого пишем: .+host yournick nickname!ident@host (можно просто *!*ident@*часть хоста при динамическом ip / DNS). После этого можно юзать DCC через mIRC в более удобном интерфейсе.
Вообще, через partyline можно полноценно и с лёгкостью управлять ботом. Рассмотрим, что можно делать через DCC.
Добавление пользователя:
Добавить пользователя в юзерлист можно одной командой: .+user nickname nickname!identname@host И проставить ему соответствующие права, например, глобальный автооп и мастер на #channel
.chattr nickname +afo .chattr nickname +m #channel
4.Флаги. Немного расскажу о флагах на юзера и их значении:
a автооп, бот без идентификации, при правильном хосте даёт юзеру оператора. d деоп. Юзер не сможет получить опа на канале. f друг. Бот не будет мстить юзеру, если он его кикнул или деопнул. g автовойс. k авто кик (+бан). При заходе на канал юзера бот банит его. m мастер (может добавлять пользователей и менять флаги на них до статуса мастера). o просто оп. p доступ на partyline (DCC-chat). q авто девойс. С таким флагом, юзер не сможет получить голос на канале. t доступ на telnet v просто войс.
Флаги ставятся как глобально, так и на определённый канал: .chattr +dk nickname глобал флаг .chattr +afo #channel флаг на канал #channel
Чтобы просмотреть текущее состояние пользователя, используется команда match nickname, либо match +flag (где flag любой флаг пользователя). Для просмотра определённого числа записей в юзерлисте используется такой формат: match -число записей (0 для просмотра всех записей).
Вот и все, ничего сложного