Все чаще мне задают вопросы как поставить, настроить своего бота, и сейчас я расскажу во всех подробностях как это делается. Мы будем расматривать бота eggdrop из-за его гибкости и мультиплатформности.
FreeBSD
Тут нам потребуется сам бот, но тут есть выбор тут можно использовать уже собраного бота либо чисто исходники. Так же чтобы бот работал должен быть установлен tcl его можете поставить из портов заходим в
/usr/ports/lang/tcl84 и пишем
make install clean все должно пройти удачно и поставится без проблем(если у вас есть дистфайлы или вы подключены к интернету). После того как у нас все готово приступим, заходим под рутом, сначала ставим бота из исходников, на момент когда я ставил были исходники
eggdrop1.6.17.tar.bz2 разархивируем их командой
Код:
tar -zxf eggdrop1.6.17.tar.bz2
далее заходим в папку которая создалась после распаковки бота и пишем
./configure когда закончится выполнение команды, вы должны увидеть примерно следущее:
Код:
Operating System: FreeBSD 5.4-RELEASE
If you experiance any problems compiling Eggdrop, please read the
compile guide, found in doc/COMPILE-GUIDE.
Type 'make config' to configure the modules, or type 'make iconfig'
to interactively choose which modules to compile.
далее пишем
make config, также можно написать
make iconfig можно будет выбрать модули которые постаятся для начала советую написать
make config, после завершения команды пишем
make а потом
make install после того как завершается выполнение команды бот поставлен, дальше пишем конфиг по примеру ниже конфиги, в windows и freebsd не че не отличаются, но если будет ошибка с кодировкой просто допишите encoding system iso8859-1 в конфиг до скриптов. Далее чтобы запустился бот нужно создать папку tmp сделаем так:
Код:
mkdir /root/eggdrop/tmp
chmod 0777 /root/eggdrop/tmp
все можно запускать, но запускать нужно от обычного пользователя под root'ом бот не запустится в целях безопасности
Код:
cd /root/eggdrop && ./eggdrop -m /root/eggdrop/eggdrop.conf
Теперь соберем бота теперь из портов, вся разница только в путях tmp'a, бот в портах лежит в /usr/ports/irc/eggdrop после установки пути будут такие:
Код:
Конфиг -- /usr/local/etc/eggdrop.conf
Папка со скриптами и т.д. -- /usr/local/share/eggdrop/
Создаем папку tmp и все:
Код:
mkdir /usr/local/share/eggdrop/tmp
chmod 0777 /usr/local/share/eggdrop/tmp
После установки нам нужно написать конфиг боту eggdrop.conf открываем его с помощью vim or ee и удаляемся оттуда полностью все, писать его будем самостоятельно не маленькие уже. Вид файла eggdrop.conf ниже будет пояснена каждая строчка:
Код:
set mod-path "modules/"
set help-path "help/"
set text-path "text/"
loadmodule channels
loadmodule server
loadmodule irc
loadmodule dns
loadmodule ctcp
loadmodule blowfish
set nick "CensoR"
set altnick "CensoR?"
set username "CensoR"
set realname "CensoR"
set servers {
10.0.0.3:6667
Hostel4.hvn
Hostel3.hvn
Hostel2.hvn
}
channel add #test
set net-type 0
listen 7510 all
set owner "Твой_ник"
set admin "MicRO <email: micro@antichat.ru>"
set userfile "eggdrop.users"
set chanfile "eggdrop.channels"
set temp-path "tmp/"
set console "mkcobxs"
set init-server {putquick "PRIVMSG NickServ :IDENTIFY пароль_на_ник_бота"}
source scripts/peak.tcl
#source scripts/egglib_pub.tcl
set ctcp-version "MicRO(heavennet) VerSioN 0.1beta"
set ctcp-userinfo "MicRO(heavennet) BoT"
####МОДУЛИ####
# Директория в которой находятся модули
Код:
set mod-path "modules/"
# Путь, где находятся файлы помощи.
Код:
set help-path "help/"
# Путь, где находятся текстовые файлы (используются разными dump-командами).
Код:
set text-path "text/"
####CHANNELS МОДУЛЬ####
# Модуль предоставляет поддержку каналов для бота.Без него бот сможет сидеть на IRC-сервере, но не будет входить на каналы.
####SERVER МОДУЛЬ####
# Модуль предоставляет серверную поддержку.
####IRC МОДУЛЬ####
# Модуль предоствляет доступ к стандартным IRC-операциям.
####DNS МОДУЛЬ####
# Модуль предоставляет асинхронную поддержку dns-запросов.Это предотвратит длительные ожидания ответов на запросы (и соответсвенно "провисы" бота), если по каким либо причинам хост не может быть определен.
####CTCP МОДУЛЬ####
# Модуль предоставляет поддержку CTCP ответов.
####BLOWFISH МОДУЛЬ####
# Метод шифрования, на данный момент доступен только: blowfish
####Настройки####
# Ник бота, который будет использоваться на IRC (и в ботнет, если не установлен botnet-nick).
# Альтернативный ник, если основной ник будет недоступен. Cимвол "?" в нике будет автоматически заменяться на цифру.
Код:
set altnick "CensoR?"
####ОСНОВНОЕ####
# Имя, которым бот идентифицирует себя как пользователя, при подключении к серверу. Не работает, если на машине есть ident-сервер!
Код:
set username "CensoR"
# Что выводится в поле realname
Код:
set realname "CensoR"
# Список серверов.
Код:
set servers {
10.0.0.3:6667
Hostel4.hvn
Hostel3.hvn
Hostel2.hvn
}
# Каналы на которые бот присоеденится при подключении к серверу
# [0/1/2/3/4/5] тип IRC-сети
= Efnet (non +e/+I hybrid)
= IRCnet
= Undernet
= Dalnet
= Efnet +e/+I hybrid
= Прочие
# Какие порты должен "слушать" бот Внимание: если вы запускаете на одной машине больше одного бота, то их порты НЕ ДОЛЖНЫ пересекаться! Вы можете разделить доступ сделав отдельный порт для пользователей и отдельный для ботов. но на практике это не имеет особого значения.
Код:
listen 3333 bots
listen 4444 users
listen 7510 all
# Какие пользователи будут ВСЕГДА иметь флаг "+n"
Код:
set owner "MicRO, n1ck0"
# Имя и email владельца бота. Выводится в .status и /msg <botnick> help
Код:
set admin "MicRO <email: micro@antichat.ru >"
####ФАЙЛЫ И ДИРЕКТОРИИ####
# Файл пользователей: где будут храниться данные о пользователях.
Код:
set userfile "eggdrop.users"
# Файл, для хранения данных о каналах.
Код:
set chanfile "eggdrop.channels"
# Место для хранения временных файлов (рекомендуется: /tmp)
Код:
set temp-path "/tmp"
####CONSOLE####
# Консольные флаги по умолчанию, затем каждый мастер/владелец смогут поставить все необходимые флаги для себя с помощью команды .console
Код:
set console "mkcobxs"
# Скрипт, который выполнится во время подключения к серверу.Максимум 120 символов.
Код:
set init-server { putserv "PRIVMSG NickServ :IDENTIFY пароль_на_ник_бота" }
####СКРИПТЫ####
# Это обычное подключение скриптов.
Код:
source scripts/peak.tcl
# Строка начинающаяся с # это коментарий это значит что в бот её не как не использует, следущая строка не подключит скрипт egglib_pub.tcl так как это коментарий. Внимание: TCL не позволяет устанавливать комментарии внутри { }
Код:
#source scripts/egglib_pub.tcl
####CTCP-запросы####
# Ответ на запрос версии
Код:
set ctcp-version "MicRO(heavennet) VerSioN 0.1beta"
# Ответ на запрос информации о боте
Код:
set ctcp-userinfo "MicRO(heavennet) BoT"
Ну вроде закончили с конфигом, и мы почти готовы к запуску, чтобы у нас сразу все заработало мы должны в папку
/usr/local/share/eggdrop/scripts положить скрипт peak.tcl так как мы его прописали в конфиге, если файла не будет бот просто не запустится(добавили для примера если не хотите просто закоментируйте строку source scripts/peak.tcl). Да и чуть незабыл нам нужно перенести модули из /usr/local/lib/eggdrop/ в /usr/local/share/eggdrop/modules если нету modules создаем
/usr/local/share/eggdrop/modules и пропишем права на папку чтобы в неё могли записывать, например чтобы скрипты могли изменять свои значения:
Код:
chmod 777 /usr/local/share/eggdrop
Теперь запускаем бота:
Код:
eggdrop -m /usr/local/etc/eggdrop.conf
и видим следущее:
Код:
$ eggdrop -m /usr/local/etc/eggdrop.conf
Eggdrop v1.6.18 (C) 1997 Robey Pointer (C) 2006 Eggheads
[02:12] --- Loading eggdrop v1.6.18 (Mon Dec 11 2006)
[02:12] Module loaded: channels
[02:12] Module loaded: server
[02:12] Module loaded: irc
[02:12] Module loaded: dns
[02:12] Module loaded: ctcp
[02:12] Module loaded: blowfish
[02:12] Listening at telnet port 7510 (all).
[02:12] egglib_pub.tcl v1.52 by Shrike <shrike@eggdrop.org.ru>, mrBuG <mrbug@eggdrop.org.ru> loaded
[02:12] Creating channel file
[02:12] Couldn't create channel file: eggdrop.channels. Dropping
STARTING BOT IN USERFILE CREATION MODE.
Telnet to the bot and enter 'NEW' as your nickname.
OR go to IRC and type: /msg CensoR hello
This will make the bot recognize you as the master.
[02:12] === CensoR: 1 channels, 0 users.
Launched into the background (pid: 26103)
После того как ты видишь что бот пришел на канал в нашем случае это #test пишем /msg ИмяВота hello в нашем случае ник бота CensoR то пишем "/msg CensoR hello" и видим приерный ответ бота:
Код:
[03:10] => *CensoR* hello =========================================
[03:10] -CensoR- Hi MicRO! I'm CensoR, an eggdrop bot.
[03:10] -CensoR- I'll recognize you by hostmask '*!*@micro.hvn' from now on.
[03:10] -CensoR- YOU ARE THE OWNER ON THIS BOT NOW
[03:10] -CensoR- As master you really need to set a password: with. /MSG CensoR pass [your-chosen-password].
[03:10] -CensoR- All major commands are used from DCC chat. From now on,
. you don't need to use the -m option when starting the bot. Enjoy !!!
Дальше нужно задать пароль(но не меньше 6 символов) "/msg ИмяБота pass ЛюбойПароль" ну например:
Код:
[03:11] -> *CensoR* pass 123456
[03:11] -CensoR- Password set to: '123456'.
Теперь бот полностью подчиняется тебе, спросишь как, да элементарно пишешь "/dcc chat Ник_бота" он спросит ваш пароль - введите его и нажмите Enter. Вы увидете чтото похожее на:
Код:
[02:19:15] <CensoR> Enter your password.
[02:19:21] <MicRO> 123456
[02:19:21] <CensoR>
[02:19:21] <CensoR> Connected to CensoR, running eggdrop v1.6.18
[02:19:21] <CensoR> ____ __
[02:19:21] <CensoR> / __/___ _ ___ _ ___/ /____ ___ ___
[02:19:21] <CensoR> / _/ / _ `// _ `// _ // __// _ \ / _ \
[02:19:21] <CensoR> /___/ \_, / \_, / \_,_//_/ \___// .__/
[02:19:21] <CensoR> /___/ /___/ /_/
[02:19:21] <CensoR>
[02:19:21] <CensoR> Hey MicRO! My name is CensoR and I am running eggdrop v1.6.18, on FreeBSD 6.0-STABLE.
[02:19:21] <CensoR>
[02:19:21] <CensoR> Local time is now 02:19
[02:19:21] <CensoR> You are an owner of this bot. Only +n users can see this! For more info,
[02:19:21] <CensoR> see .help set motd. Please edit the motd file in your bot's 'text'
[02:19:21] <CensoR> directory.
[02:19:21] <CensoR> Use .help for basic help.
[02:19:21] <CensoR> Use .help <command> for help on a specific command.
[02:19:21] <CensoR> Use .help all to get a full command list.
[02:19:21] <CensoR> Use .help *somestring* to list any help texts containing "somestring".
[02:19:21] <CensoR>
[02:19:21] <CensoR> Have fun.
[02:19:21] <CensoR>
[02:19:21] <CensoR> Commands start with '.' (like '.quit' or '.help')
[02:19:21] <CensoR> Everything else goes out to the party line.
[02:19:21] <CensoR>
[02:19:21] <CensoR> *** MicRO joined the party line.
Ну а тут уже полная свобода действий(ты находишься на так называемом partyline) над ботом, приведу немножко команд(да все команды начинаются с .):
.die -- убить бота.
.rehash -- Бот перезагрузит свой config файл.
.jump [server[port]] -- Приводит к тому что бот переходитна другой сервер.Смена сервера ВСЕГДА приводитк потере bot-oм cтатуса оператора.
.+host <nickname> <hostmask> -- Добавить hostmask в запись пользователя.Благодаря hostmasks bot определяет (узнает) пользователя.
.+chan [channel] -- бот зайдет на канал
.-chan [channel] -- бот уйдет с канала
.op <nickname> [channel] -- Предоставляет статус оператора канала пользователю, которого Вы определяете, пока bot находится на этом канале сам имея статус оператора, и пока пользователь не будет явно лишен статуса оператора ботом.
Да чтобы убить бота можно например сделать:
И в следущий раз бота запускать просто eggdrop
Для начала хватит, если хочешь узнать другие команды смотрите в конце, там будут приведены все ссылки. Теперь рассмотрим некотрые скрипты и работу с ними. Например скрипт ircopscan.tcl после того как ты положил его в папку /usr/local/share/eggdrop/scripts и прописал в конфиге он всеравно неначал работать тут дело вот в чем, бот проверяет есть ли флаг +ircopscan на канале если нет то там скрипт не работает чтобы добавить мы просто в partyline пишем .chanset <#канал> +ircopscan. Ну вроде все, теперь ты можешь сам настроить себе бота и заставить работать его как ты хочешь. Всё теперь если ты внимательно читал сам можешь настроить бота вида eggdrop. Всем удачи в своих опытах с этой занимательной штучкой.
Ну и ссылочки:
http://windrop.sourceforge.net -- Офицальный сайт бота
http://www.eggheads.org -- Исходники бота
http://eggdrop.org.ru -- много хорошой инфы по этой теме включая скрипты, книжки, примеры.