Поддержка MySQL - GlowingInk/ReActions GitHub Wiki
В ReActions предусмотрена возможность работы с БД MySQL. Этот функционал реализован для того чтобы осуществить интеграцию сервера с другими плагинами, веб-сервисами и приложениями.
Предположим, некий плагин хранит данные в таблице MySQL. Плагин Jail, к примеру, позволяет использовать хранение информации в базе данных. Теперь появляется использовать такую информацию, не ожидая пока в ReActions будет реализован функционал связывающий ReActions и этот плагин (действия, флаги и т.п.) — можно напрямую обращаться к базе и узнавать то, что нам нужно, например, проверять сидит ли игрок в тюрьме или нет. Для этого нужно просто составить SQL-запрос получающий необходимую информацию.
Существует несколько флагов (SQL_CHECK, SQL_RESULT) и действий (SQL_SELECT, SQL_UPDATE и SQL_INSERT).
Сравнивает результат выполнения SQL-запроса с указанными значениями.
Параметры:
-
query:{SELECT...}
— SQL-запрос -
value:<value>
— значения, которые будут сравниться с результатом выполнения запроса -
column:<column>
— номер колонки, откуда будет браться значение для колонки (1 по умолчанию)
BUTTON:
sqltest:
world: world
x: -59
y: 65
z: 413
flags:
- SQL_CHECK=value:Russia query:{SELECT Name FROM country WHERE Capital="Moscow"}
actions:
- MESSAGE=&6ok
reactions:
- MESSAGE=&4not ok
Проверят возвращает ли SQL-запрос хоть какой-то результат. Если результат пуст, флаг вернет false.
Параметры:
-
query:{SELECT...}
— SQL-запрос
BUTTON:
sqltest:
world: world
x: -59
y: 65
z: 413
flags:
- SQL_RESULT=query:{SELECT Name FROM country WHERE Capital="Manchester"}
actions:
- MESSAGE=&6I know Moscow is a capital of... of... a country
reactions:
- MESSAGE=&4There is no countries with capital named Manchester
ВыполнитьSQL-запрос и сохранит поле в первой строке (и указанной колонки) в переменную. Если параметр "player" не указан, то используется глобальная переменная, если указан - то соответствующая персональная.
Параметры:
query:{SELECT... }
-
variable:<ИмяПеременной>
— сюда будет сохранён результат SQL-запроса player:<ВладелецПеременной>
column:<Колонка>
BUTTON:
sqlselect:
world: world
x: -58
y: 65
z: 412
flags: []
actions:
- sql_select=variable:sqltest query:{SELECT Capital FROM country WHERE Name="Germany"}
- message=Selected value: %var:sqltest%
reactions: []
Обновить значение поля в таблице базы MySQL
Параметр:
query:{UPDATE... }
BUTTON:
sqlupdate:
world: world
x: -60
y: 65
z: 412
flags: []
actions:
- sql_update=UPDATE country set Name="USA" where Code="Washington"
reactions: []
Добавить строку в таблицу базы MySQL
Параметр:
query:{INSERT... }
BUTTON:
sqlinsert:
world: world
x: -59
y: 65
z: 411
flags: []
actions:
- sql_insert=INSERT INTO country (Name, Capital) set ("United States of Uryupinsk", "Uryupinsk")
reactions: []
Чтобы настроить плагин для работы с сервером-MySQL нужно внести нужные изменения в фалй config.yml:
MySQL:
server: localhost # Адрес сервера MySQL
port: '3306' # Порт сервера
database: world # Внутренняя база данных
username: root # имя пользователя
password: root # пароль