Skip to content

ru_Module Overview

Akito Iwakura edited this page Jan 4, 2017 · 5 revisions

Модули m0ssion

Вкратце, модуль m0ssion — это код на JavaScript, встраиваемый в Galaxy при каждом открытии страницы. Сложность модуля зависит от его назначения и фантазии разработчика. Модули можно писать как во встроенном в расширение редакторе, так и в своём собственном, после чего нужно просто вставить код в редактор, задать модулю имя и сохранить его. Существующие модули тоже можно редактировать.

Принцип работы

Код модулей, за исключением привязанных событий, исполняется сразу при загрузке страницы Galaxy. Модули выполняются последовательно, в том порядке, в котором они следуют в панели управления. Привязанные события также выполняются последовательно в том же порядке. Строка команды в модуле передаётся от обработчика к обработчику и может быть ими изменена, подробнее в ru_Events.

API

API у m0ssion не просто прост, а суперпрост. Модулям доступен объект m0s, у которого есть два метода — log и add_event. Рассмотрим их поподробнее.

Метод log

Синтаксис: m0s.log(message, level, module)

Метод позволяет делать записи в журнале работы m0ssion (вкладка Log в настройках). Используется в основном для отладки.

Метод add_event

Синтаксис: m0s.add_event(event, function (command))

Добавляет обработчик события. О событиях есть отдельная статья: ru_Events.

Метод sendToServer

Синтаксис: m0s.sendToServer(command)

Отправляет команду серверу Galaxy в обход всех обработчиков.

Метод sendToClient

Синтаксис: m0s.sendToClient(command)

Отправляет команду клиенту (имитирует команду от сервера).

Доступ к методам Galaxy

Модули имеют прямой доступ к объектам самого чата: SYSTEM, COMMON, CONNECT, CHARACTER и другим. Эти модули позволяют взаимодействовать с чатом напрямую через его же функции. О том, какие объекты доступны пользователю и какие методы они предоставляют, смотрите в ru_GalaxyAPI.

Пример модуля

Этот код, например, блокирует отображение погоды на всех планетах.

function no_weather (command)
{
    if (command.indexOf('WEATHER') > -1)
        return false;
    else
        return command;
}

m0s.add_event ('receive', no_weather);

Clone this wiki locally