Eggdrop... Как много в этом звуке... Как? Ты спрашиваешь, что такое Eggdrop? Тогда эта статья для тебя.
Бросающий яйца 😉 Очень неплохое название для ламабота. Вообще Eggdrop - это специальная программа, её функция - запуск бота на IRC сервер, для поддержания порядка на канале. Для её установки тебе необходим хороший Shell-account с поддержкой tcl, Inet-соединений и места на нём порядка 2-3 Мб и прямые руки (знание Os
*nix).
Ну, во-первых, качаем сырцы бота с ftp.eggheads.org используя консольную ftp-утилиту (ты же не хочешь тянуть бота с диал-апа, а потом лить на шелл?). Качаем таким образом:
ftp ftp.eggheads.org
Connected to ftp.eggheads.org
Username: anonymous
Guest login ok. Enter your e-mail address as password: your@email.ru
..................................
cd pub/eggdrop
ls
get eggdrop1-6x.tar.gz (x -более свежая версия)
bye
Затем распаковываем бота
gunzip eggdrop1-6x.tar.gz
tar -xf eggdrop1-6x.tar
cd eggdrop1-6x
и компилим
make install
make config
make
chmod +x eggdrop
Если всё прошло без ошибок, то время для 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 и пробуем запустить бота. Для первого запуска необходим параметр -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
Немного расскажу о флагах на юзера и их значении
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 - для просмотра всех записей).
chcomment / chinfo username comment / info - изменение
комментария к юзеру либо инфо на него.
Удаляется юзер с помощью команды ".-user nickname"
Настройка канала:
На канал также можно ставить какие либо режимы и свойства:
Устанавливается свойство командой .chanset #channel +/- свойство
Наиболее распространённые свойства:
chanmode - флаги канала. Пример .chanset #channel chanmode +nts-plikm
enforcebans - автокик юзера, при установке бана на него
userbans - позволение пользователям ставить баны на канал, а не только через partyline
autoop - давать опа всем прописанным на оп юзерам
bitch - разрешение опа только тем, кто имеет флаг +o
greet - сказать инфо на юзера, при его заходе на канал
protectops - дать опа тому, кто потерял его на канале (сам себя деопнул или был деопнут кем то)
dontkickops - никогда не кикать юзеров с флагом +o
cycle - перезаходить на канал, при потере опа
revenge - мстить тем, кто когда либо кикнул / деопнул / забанил мастера (овнера) с канала.
revengebot - тоже самое, но с ботом.
shared - возможность обмениваться юзерлистом этого канала с др. ботами.
autovoice - тоже, что и autoop, но с голосом.
Создать новый канал можно командой ".+chan #channel" удалить соответственно ".-chan #channel"
Работа с банами:
Установить бан можно командой: .+ban nick!ident@host [#channel] причина бана
Закрепить этот бан, можно командой .stick №бана. Номер посматривается командой .bans [all / #channel]. Убрать бан соответственно .-ban [номер бана либо маска]
Ботнет:
В случае, если у тебя не один, а несколько ботов, следует сделать ботнет (слинковать ботов с возможностью пересылки user-листа). Делается это так:
Сначала добавим ботов в список (убедитесь, чтобы на всех каналах было свойство +shared):
Первому боту (к которому будем линковать) -->
.+bot botname1 hostname:port
.botattr botname +gs
Второму -->
.+bot botname hostname:port
.botattr botname2 +gph
.link botname 1
В случае успеха, боты обменяются юзерфайлом и будут работать вместе и никогда не воевать друг с другом 😉
Немного о флагах на ботов ".botattr"
s - приём от этого бота юзерлиста
p - передача боту юзерлиста
g - глобальная передача юзерлиста
h - хаб-бот (бот будет всегда авто-линковаться к нему)
a - альт-хаб-бот (либо к нему, в случаее неудачной линковки к хаб-боту)
l - бот не сможет прилинковаться к другим ботам
r - запрещение линковки с ботом
Сменить хост бота можно командой .chaddr botname newhost:port. Отлинковать бота можно командой unlink botname.
Другие команды:
rehash - перечитывание конфиг-файла
restart - рестарт бота (реконнект)
save - сохранение юзер и channel листов
reload - перезагрузка юзерлиста
backup - резервная копия юзерлиста
die - "убить" бота
boot nickname - сбросить с partyline/telnet юзера
chat [on | off ] - возможность общение на партилайне (при выключенном режиме, можно опускать точку в командах)
dccstat - просмотр статуса бота
chaninfo [#channel] - просмотр установок канала
channel [#channel] - просмотр юзеров и флагов на канале
bots - просмотр состояния ботнета.
who - кто в данный момент находится на боте.
Вот и вся инфа о боте. Это конечно далеко не все возможности бота. Для более полной инфы идите на
www.egghelp.org (правда на англ. языке) либо пишите на
forb@pisem.net - постараюсь помочь.