The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Ресурс "irc" предоставляет вам echobot ("эхо-бот"), который выводит информацию по типу сообщения из чата в irc-канал.
Информацию по "irc" или "Internet Relay Chat" вы можете получить на Wikipedia.
Установка
Чтобы этот ресурс заработал на вашем Linux или Windows сервера, выполните следующие шаги:
- Установите модуль sockets
- Скачайте модуль: Вы можете скачать модуль на проекте mta-modules. Скачайте файл ml_sockets.dll для Windows или файл ml_sockets.so для Linux
- Положите подуль в папку MTA: Чтобы MTA подгрузила модуль, он должен лежать в папке mods/deathmatch/modules, если таковой нет, то создайте ее.
- Добавьте модуль в файл mtaserver.conf: Чтобы MTA подгрузила модуль при старте сервера, добавьте строку <module src="ml_sockets.dll"/> в ваш файл настроек для Windows или <module src="ml_sockets.so"/> в ваш файл настроек для Linux.
- Установите ресурс IRC
- Скачайте ресурс: Ресурс IRC можно найти на сайте сообщества, поместите его в папку resources.
- Измените файл settings.xml: Откройте данный файл и следуйте инструкциям внутри, чтобы настроить IRC бота.
- Измените файл meta.xml: В этом файле несколько настроек отвечают за запись в лог (log), рекламные уведомления (notice), gui, ничего больше не меняйте! Вы также можете изменить данные настройки в admin-панели, если она включена на сервере.
- Acl права Ресурсу нужна пара acl-прав для того, чтобы правильно функционировать, в их число входят addBan, kickPlayer & callRemote. Если хоть одно из них отсутствует, ресурс не загрузится и сообщит об этом в консоли.
Теперь вы можете запустить ресурс, а если во время процесса установки сервер уже работал, вам понадобится прописать команды /loadmodule ml_sockets.dll (или /loadmodule ml_sockets.so) и /refreshall перед /start irc
Файл acl.xml
Файл acl.xml внутри ресурса irc отвечает за acl-права для irc-команд.
Синтаксис
<command name="!kick" level="2" echoChannelOnly="true" />
- name - команда с восклицательным знаком перед ее именем
- level - минимальный уровень, который нужен irc пользователю, чтобы иметь возможность использовать команду
- echoChannelOnly - может ли команда быть использована вне echo канала
Элементы
Все пользователи, каналы и сервера узнаются ресурсом irc и представлены элементами.
- Тип элементов, которыми представлены сервера: 'irc-server'
- Тип элементов, которыми представлены каналы: 'irc-channel'
- Тип элементов, которыми представлены пользователи: 'irc-user'
Система уровней
Ресурс irc не пользуется системой режимов irc для своего acl, вместо этого режимы заменили номерами.
- Owner (~) - уровень 5
- Super Operator (&) - уровень 4
- Operator (@) - уровень 3
- Helper (%) - уровень 2
- Voice (+) - уровень 1
Все остальные пользователи, которым не установлен режим, имеют уровень 0
События
Во время работы процесса irc срабатывают некоторые события с целью облегчить вам написание расширений к ресурсу irc.
Чтобы их задействовать, используйте addEvent("eventName").
onIRCConnecting
|
server theIRCServer
|
|
onIRCConnect
|
server theIRCServer
|
|
onIRCFailConnect
|
server theIRCServer
|
string reason
|
onIRCUserJoin
|
user theIRCUser
|
channel theIRCChannel, string vhost
|
onIRCUserNickChange
|
user theIRCUser
|
string oldNick, string newNick
|
onIRCUserPart
|
user theIRCUser
|
channel theIRCChannel, string theReason
|
Заметка: 'theReason' может оказаться nil, если 'theUser' вышел без указанной причины.
onIRCUserKick
|
user theIRCUser
|
channel theIRCChannel, string theReason, user theKicker
|
Заметка: 'theKicker' может оказаться false, если 'theUser' был кикнут сервисом по типу NickServ.
onIRCPrivateMessage
|
user theIRCUser
|
string theMessage
|
onIRCMessage
|
user theIRCUser
|
channel theIRCChannel, string theMessage
|
onIRCPrivateNotice
|
user theIRCUser
|
string theMessage
|
onIRCNotice
|
user theIRCUser
|
channel theIRCChannel, string theMessage
|
onIRCUserMode
|
user theIRCUser
|
channel theIRCChannel, boolean positive, string theMode, user theSetter
|
Заметка: 'theSetter' может оказаться false, если режим 'theUser' был изменен сервисом по типу NickServ.
onIRCChannelMode
|
channel theIRCChannel
|
boolean positive, string theMode, user theSetter
|
Заметка: 'theSetter' может оказаться false, если режим был установлен сервисом по типу NickServ.
onIRCLevelChange
|
user theIRCUser
|
channel theIRCChannel, number oldlevel, number newlevel
|
onIRCUserQuit
|
user theIRCUser
|
string theReason
|
Экспортированные функции
Эти функции могут быть вызваны из другого ресурса, чтобы помочь вам в написании расширения для ресурса irc.
Используйте таблицу exports или call для их вызова
Образец 1:
[Lua]
exports.irc:ircConnect("irc.gtanet.com","bot",6667)
Образец 2:
[Lua]
call(getResourceFromName("irc"),"ircConnect","irc.gtanet.com","bot",6667)
returns
|
имя функции
|
параметры
|
boolean
|
ircHop
|
server theIRCServer, (string theReason)
|
boolean
|
ircSay
|
channel theIRCChannel/user theIRCUser, string theMessage
|
boolean
|
ircRaw
|
server theIRCServer, string theRaw
|
boolean
|
ircPart
|
channel theIRCChannel, (string theReason)
|
boolean
|
ircJoin
|
server theIRCServer, string theChannelName, (string theChannelPassword)
|
boolean
|
ircAction
|
channel theIRCChannel/user theIRCUser, string theMessage
|
boolean
|
ircNotice
|
channel theIRCChannel/user theUserChannel, string theMessage
|
boolean
|
outputIRC
|
string theMessage
|
boolean
|
ircConnect
|
string serverHost/IP, string nickname, (number serverPort), (string serverPassword), (boolean secure)
|
Заметка: Безопасные соединения пока что недоступны, так как модуль еще не поддерживает SSL.
boolean
|
ircIdentify
|
server theIRCServer, string thePassword
|
boolean
|
ircReconnect
|
server theIRCServer
|
boolean
|
ircDisconnect
|
server theIRCServer, string theReason
|
boolean
|
ircChangeNick
|
server theIRCServer, string newNick
|
string
|
ircGetServerName
|
server theIRCServer
|
string
|
ircGetServerHost
|
server theIRCServer
|
number
|
ircGetServerPort
|
server theIRCServer
|
string
|
ircGetServerPass
|
server theIRCServer
|
string
|
ircGetServerNick
|
server theIRCServer
|
boolean
|
ircIsServerSecure
|
server theIRCServer
|
table
|
ircGetServerChannels
|
server theIRCServer
|
userdata
|
ircGetChannelServer
|
channel theIRCChannel
|
table
|
ircGetChannels
|
(server theIRCServer)
|
boolean
|
ircSetChannelMode
|
channel theIRCChannel, string theMode
|
string
|
ircGetChannelName
|
channel theIRCChannel
|
string
|
ircGetChannelMode
|
channel theIRCChannel
|
table
|
ircGetChannelUsers
|
channel theIRCChannel
|
string
|
ircGetChannelTopic
|
channel theIRCChannel
|
userdata
|
ircGetChannelFromName
|
string theChannelName
|
bool
|
ircIsEchoChannel
|
channel theIRCChannel
|
boolean
|
ircSetUserMode
|
user theIRCUser, string theMode
|
string
|
ircGetUserMode
|
user theIRCUser
|
string
|
ircGetUserNick
|
user theIRCUser
|
number
|
ircGetUserLevel
|
user theIRCUser
|
table
|
ircGetUsers
|
(server theIRCServer)
|
userdata
|
ircGetUserServer
|
user theIRCUser
|
number
|
ircGetUserLevel
|
user theIRCUser, channel theIRCChannel
|
string
|
ircGetUserVhost
|
user theIRCUser
|
userdata
|
ircGetUserFromNick
|
string theNickname
|
bool
|
addIRCCommandHandler
|
string theCommandName, function theFunctionToCall/string functionName, (number minimumLevel), (boolean echoChannelOnly)
|
Заметка: Используйте строковое значение с именем функции в качестве второго аргумента, если вы вызываете эту функцию из другого ресурса, также убедитесь, что функция эксопртирована.
number
|
ircGetCommandLevel
|
string theCommand
|
boolean
|
ircIsCommandEchoChannelOnly
|
string theCommand
|
Заметка: Все параметры, указанные между скобок - опциональны, см. опциональные аргументы
Изменение
Пожалуйста, не изменяйте ресурс, вы можете его сломать, а это повлечет неисправность или спам ошибками.
Если все же на это решитесь, поддержки в этом вы не получите.
Вместо этого пишите расширения.
Контакты
С автором (MCvarial) можно связаться по IRC (#mta,#mta.dutch)
Или по email ([email protected])