Ресурс "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' was opped сервисом по типу NickServ.
onIRCChannelMode
|
channel theIRCChannel
|
boolean positive, string theMode, user theSetter
|
NOTE: 'theSetter' can be false if the mode was set by a service like the 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
|
function name
|
Parameters
|
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)
|
NOTE: Secure connections are not available yet due to the module not suporting SSL yet.
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)
|
NOTE: Use a string with the function name for the second argument if your are calling this function from another resource, also make sure the function is exported.
number
|
ircGetCommandLevel
|
string theCommand
|
boolean
|
ircIsCommandEchoChannelOnly
|
string theCommand
|
NOTE: All parameters that are between brackets are optional, see optional arguments
Modding
Please don't mod the resource, you might break it and cause it to malfunction or to spam errors.
If this happens you will not get any support.
Write extensions instead.
Contact
The author (MCvarial) can be contacted using IRC (#mta,#mta.dutch)
Or by email ([email protected])