Я недавно выложил IRC-либу, которую я делал, чтобы собирать IRC-мост. Теперь я собрал и мост.
Установка
Соберите компьютер с интернет-платой, кучей памяти (на всякий случай), админ-чатбоксом из OpenTechnology и дебаг-картой (через неё онлайн получает прога).
Поставьте на него OpenOS.
Пропишите следующие команды:
mkdir -p /home/bin
wget https://gist.githubusercontent.com/Fingercomp/df483bc2cefa13e0422d656ae82495ac/raw/c8617e01b7baa0e47936300fd9e783afa36601cb/irc-bridge.lua /home/bin/irc-bridge.lua
Скачайте и установите IRC-либу. Например, так:
mkdir -p /home/lib/irc /home/lib/irc/client /home/lib/irc/event /home/lib/irc/protocol
cd /home/lib/irc
set ADDR=https://gitlab.com/cc-ru/irc-oc/-/raw/v1.1.0/irc
wget $ADDR/init.lua init.lua
wget $ADDR/enum.lua enum.lua
wget $ADDR/state.lua state.lua
wget $ADDR/throttlingScheduler.lua throttlingScheduler.lua
wget $ADDR/client/init.lua client/init.lua
wget $ADDR/client/handlers.lua client/handlers.lua
wget $ADDR/event/init.lua event/init.lua
wget $ADDR/event/bus.lua event/bus.lua
wget $ADDR/protocol/init.lua protocol/init.lua
wget $ADDR/protocol/isupport.lua protocol/isupport.lua
wget $ADDR/protocol/capabilities.lua protocol/capabilities.lua
wget $ADDR/protocol/splitter.lua protocol/splitter.lua
Запустите мост, чтобы он создал конфиг-файл:
irc-bridge
Откройте файл /etc/conversationalist.cfg. Там будет сериализованная Lua-таблица (не самый лучший формат конфига, согласен). Найдите и поменяйте следующие настройки:
channel — канал, к которому подключаться
nickname — ник бота в ирке
account — имя аккаунта бота в ирке (можно в nil поставить, если нет)
accountPassword — пароль от акка (также в nil поставить, если нет)
gameAdmins или ircAdmins — в таблицу впишите себя, чтобы можно было конфигать
Всё. Мост поставлен.
Команды
Мост воспринимает команды. Чтобы выполнить команду, например pm on:
Пропишите в игре: #IRC: pm on
Пропишите в ирке: /notice @<имя канала> pm on (например, /notice @#cc.ru-server1 pm on).
Список команд:
online — показать онлайн на другом конце моста.
pm on — разрешить с другого конца моста слать вам ЛС.
pm off — запретить слать вам ЛС.
pm — показать, могут ли вам послать ЛС (в ирке включено по умолчанию, а в игре выключено и надо включать самому).
msg <имя> <сообщение>: отправить ЛС юзеру на другом конце моста.
pm ignore list — показать список игнорируемых юзеров.
pm ignore add <имя> — добавить кого-то в этот список.
pm ignore del <имя> — вытащить кого-то из него.
Админы могут выполнять ещё такие команды:
irc admin list — показать список админов в ирке.
irc admin add <имя> — добавить кого-то в этот список.
irc admin del <имя> — убрать кого-то из него.
mc admin list, mc admin add <имя> и mc admin del <имя> — аналогично, но работает со списком админов в игре.
irc whitelist list — показать список юзеров, которые могут слать сообщения в игру.
irc whiltelist add <имя> — добавить кого-то в список.
irc whiltelist del <имя> — убрать кого-то из него.
mc blacklist list, mc blacklist add <имя>, mc blacklist del <имя> — аналогично, но работает со списоком тех, чьи сообщения не будут слаться в ирку.
irc alias set <имя> <алиас> — установить алиас юзеру. Когда он будет писать сообщения в игру, его имя будет заменено на алиас.
irc alias get <имя> — показать алиас для юзера.
debug on — включить режим дебага. Мост будет писать весь трафик с IRC на экран. Полезно, чтобы узнать, почему тупит мост. Пароли будут показаны плейнтекстом, поэтому лучше оставить выключенным, хотя бы во время подключения.
debug off — выключить этот режим.
debug — показать, включён ли дебаг.
Как это выглядит
На мониторе будет рисоваться вот такое:
Как можно догадаться, чтобы мост остановить, нужно нажать Ctrl-C.
Ссылки
Код на гисте: https://gist.github.com/Fingercomp/df483bc2cefa13e0422d656ae82495ac/