RU/Resource:Irc: Difference between revisions
(осталось чуть-чуть) |
mNo edit summary |
||
Line 2: | Line 2: | ||
__NOTOC__ | __NOTOC__ | ||
Ресурс "irc" предоставляет вам echobot ("эхо-бот"), который выводит информацию по типу сообщения из чата в irc-канал. | Ресурс "irc" предоставляет вам echobot ("эхо-бот"), который выводит информацию по типу сообщения из чата в irc-канал. | ||
Информацию по "irc" или "Internet Relay Chat" вы можете получить на [http:// | Информацию по "irc" или "Internet Relay Chat" вы можете получить на [http://ru.wikipedia.org/wiki/Irc Wikipedia.] | ||
==Установка== | ==Установка== | ||
Line 143: | Line 143: | ||
|} | |} | ||
'''Заметка:''' 'theSetter' может оказаться false, если 'theUser' | '''Заметка:''' 'theSetter' может оказаться false, если режим 'theUser' был изменен сервисом по типу NickServ. | ||
{| class="wikitable" border="0" | {| class="wikitable" border="0" | ||
Line 152: | Line 152: | ||
|} | |} | ||
''' | '''Заметка:''' 'theSetter' может оказаться false, если режим был установлен сервисом по типу NickServ. | ||
{| class="wikitable" border="0" | {| class="wikitable" border="0" | ||
Line 260: | Line 260: | ||
|<syntaxhighlight lang="lua">string serverHost/IP, string nickname, (number serverPort), (string serverPassword), (boolean secure)</syntaxhighlight> | |<syntaxhighlight lang="lua">string serverHost/IP, string nickname, (number serverPort), (string serverPassword), (boolean secure)</syntaxhighlight> | ||
|- | |- | ||
|} ''' | |} '''Заметка:''' Безопасные соединения пока что недоступны, так как модуль еще не поддерживает SSL. | ||
{| class="wikitable" border="0" | {| class="wikitable" border="0" | ||
Line 508: | Line 508: | ||
|<syntaxhighlight lang="lua">string theCommandName, function theFunctionToCall/string functionName, (number minimumLevel), (boolean echoChannelOnly)</syntaxhighlight> | |<syntaxhighlight lang="lua">string theCommandName, function theFunctionToCall/string functionName, (number minimumLevel), (boolean echoChannelOnly)</syntaxhighlight> | ||
|- | |- | ||
|} ''' | |} '''Заметка:''' Используйте строковое значение с именем функции в качестве второго аргумента, если вы вызываете эту функцию из другого ресурса, также убедитесь, что функция эксопртирована. | ||
{| class="wikitable" border="0" | {| class="wikitable" border="0" | ||
Line 534: | Line 534: | ||
|} | |} | ||
''' | '''Заметка:''' Все параметры, указанные между скобок - опциональны, см. [[optional arguments|опциональные аргументы]] | ||
== | ==Изменение== | ||
Пожалуйста, не изменяйте ресурс, вы можете его сломать, а это повлечет неисправность или спам ошибками. | |||
Если все же на это решитесь, поддержки в этом вы не получите. | |||
Вместо этого пишите расширения. | |||
== | ==Контакты== | ||
С автором (MCvarial) можно связаться по IRC (#mta,#mta.dutch) | |||
Или по email ([email protected]) | |||
[[en:Resource:irc]] | |||
[[nl:Resource:Irc]] | [[nl:Resource:Irc]] |
Revision as of 18:11, 22 May 2012
Ресурс "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").
Имя | Source | Параметры |
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 |
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) |
Заметка: Безопасные соединения пока что недоступны, так как модуль еще не поддерживает SSL.
boolean |
ircIdentify | server theIRCServer, string thePassword |
boolean |
ircReconnect | server theIRCServer |
boolean |
ircDisconnect | server theIRCServer, string theReason |
boolean |
ircChangeNick | server theIRCServer, string newNick |
table |
ircGetServers |
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) |
Заметка: Используйте строковое значение с именем функции в качестве второго аргумента, если вы вызываете эту функцию из другого ресурса, также убедитесь, что функция эксопртирована.
table |
ircGetCommands |
number |
ircGetCommandLevel | string theCommand |
boolean |
ircIsCommandEchoChannelOnly | string theCommand |
Заметка: Все параметры, указанные между скобок - опциональны, см. опциональные аргументы
Изменение
Пожалуйста, не изменяйте ресурс, вы можете его сломать, а это повлечет неисправность или спам ошибками. Если все же на это решитесь, поддержки в этом вы не получите. Вместо этого пишите расширения.
Контакты
С автором (MCvarial) можно связаться по IRC (#mta,#mta.dutch) Или по email ([email protected])