Настройка плагина Chest Commands

Источник — ссылка

В этой статье я расскажу как настроить плагин под названием ChestCommands. Ниже вы ведите разделы, которые вам помогут в настройке. Настоятельно рекомендую ознакомится с каждым из них.

 1.Базовая настройка (введение)

В этом разделе вы узнаете, как структурировано меню и как его изменить. В данном разделе вы узнаете о структуре меню и как правильно его изменять. Пожалуйста, внимательно прочитайте это, прежде чем приступать к дальнейшей настройке!

  • Изменение существующего меню

 Все меню находятся в папке plugin/ChestCommands/menu/название_меню. Для редактирование откройте файл меню в редакторе (рекомендуется Notepad ++).

  • Создание нового меню

 Самый простой способ: скопировать и вставить существующее меню, изменить настройки, а также добавить / удалить  или отредактировать элементы. В названиях файлов меню не рекомендуется использовать CAPS, большие буквы и т.п, нужно писать маленькими английскими буквами, пример правильного названия — test.yml. 

  • Настройки меню

Вы можете найти эти настройки в верхней части меню YML-файла, в разделе конфигурации «menu-settings».

name: ‘&1Menu’ (обязательно)
 Это имя, которое будет отображаться при открытии меню в качестве названия пользовательского инвентаря. Оно не может быть длиннее 30 символов (включая цвета). В данном параметре вы можете использовать форматирование и менять цвета текста, например, &1Menu — будет выглядеть так — Menu.

rows: 6 (обязательно)
 Данный параметр устанавливает количество строк, из которых будет состоять инвентарь меню с элементами. Значение должно быть от 1 до 6 (двойной сундук). Если значение будет выше 6, клиенты игроков не будут отображать строки правильно (скорее всего меню просто будет недоступно). 

command: ‘menu’ (необязательно)
 Это команда, которая вызывает меню. Используется для открытие меню введя команду в чат, в нашем случае для открытие меню понадобится ввести — /menu. Вы можете использовать несколько команд, разделяя их точкой с запятой, например: ‘menu; m; mainmenu’.

auto-refresh: 5 (необязательно)
 Как часто меню будет обновлять свое содержание. Обратите внимание, что деньги автоматически обновляются после каждой транзакции.

open-with-item: (необязательно)
    id: ‘wool: 1’ — используется для открытия меню с помощью указного предмета. Может потребоваться data (в нашем случае data — 1).
    right-click: true  — true, если меню нужно открыть, щелкнув правой кнопкой мыши на предмет.
    left-click: false — true, если меню нужно открыть, щелкнув левой кнопкой мыши элемент.

  • Предметы меню (элементы)

 Не используйте прописные буквы, цветовые коды или символы во внутреннем имени (см. ниже) и помните, что оно не должно совпадать с именем другого элемента в том же меню. Каждый элемент состоит из внутреннего имени (никак не видимого для игроков) и параметров, которые могут назначать команды, название, описание предметов и многое другое. Пример параметров одного предмета (элемента меню):

spawn-item: (уникальное название, которое не будет видно для игрока)
    ID: bed (ID предмета, можно указывать как буквами так и цифрами)
    COMMAND: ‘spawn’ (команда, которая будет выполнятся при нажатии)
    NAME: ‘&aReturn to spawn’ (название, которое будет видно игроку, можно указывать цвета и использовать форматирование)
    LORE: (описание предмета)
       — ‘This is the lore of the item.’
       — ‘These lines appear below the name.’
    POSITION-X: 1
    POSITION-Y: 1
       ➥ положение предмета (элемента) в меню

NAME, COMMAND, ID, … называются «параметрами». Каждый элемент может иметь различные параметры. Узнайте больше о каждом возможном параметре можно в разделе №2. 

Каждый предмет (элемент) в меню должен иметь как минимум ID, POSITION-X и POSITION-Y.

 2. Параметры предметов (элементов меню)

Эта страница содержит список возможных которые, которые можно использовать для каждого предмета (элемента).

Для каждого элемента строго необходимы три параметра: ID, POSITION-X, POSITION-Y.

ID
 Идентификатор элемента меню. Вы можете использовать как числовые, так и буквенные идентификаторы, но я рекомендую использовать буквенный для лучшей читаемости. Список идентификаторов: здесь (без учета регистра и нижнего подчеркивания).

Пример:

 ID: stone

 При желании вы можете использовать data, но тогда всё нужно будет поместить в кавычки.

Пример (10x черная шерсть):

 ID: 'wool:15, 10'

POSITION-X и POSITION-Y
 Это два из трёх обязательных параметров элементов меню. Они устанавливают положение элемента в меню. 

Пример:

 POSITION-X: 5
 POSITION-Y: 1

NAME
 Этот параметр устанавливает отображаемое имя элемента (в первой строке, когда вы наводите на него курсор). Вы можете использовать цветовые коды и символы.

Пример:

 NAME: '&6This is a colored name!'

LORE
 Данный параметр устанавливает строки, которые появляются под именем. Вы можете использовать цветовые коды и символы.

Пример:

LORE:
- 'Description of the item'
- 'Some other details'
- '&cImportant note'

ENCHANTMENT
 Этот параметр устанавливает чары, которые будут появляться на предмете, в основном используются только для эффекта свечения.

Пример:

ENCHANTMENT: 'fire aspect, 1'

Уровень не является обязательным. Вы можете использовать несколько чар, разделяя их точкой с запятой:

Пример:

ENCHANTMENT: 'sharpness, 5; durability, 10; silk touch'

COLOR
 Этот параметр устанавливает цвет кожаной брони, не более того. Формат цвета: ‘<red>, <green>, <blue>’. Каждый цвет должен быть между 0 и 255.

Пример:

COLOR: '255, 0, 0'

SKULL-OWNER
 Данный параметр устанавливает владельца головы, только если это голова игрока (skull:3). Для отображения различных текстур / текстов головы.

Пример:

SKULL-OWNER: 'Mr_dsa1'

COMMAND
 Этот параметр устанавливает команду. Он поддерживает различные команды, которые не будут перечислены здесь. Обычная команда (без префиксов) выполняется от игрока, который щелкнул по значку. С помощью команд можно делать разные магазины и т.п, подробнее смотреть тут.

Пример:

COMMAND: 'spawn'

PRICE
 Данный параметр устанавливает цену на предмет (выполнение команды). Команды не будут выполнены, если у игрока, который нажал, недостаточно денег на счету. Пожалуйста, посмотрите здесь, как настроить экономику.

Пример:

PRICE: 100.0

LEVELS
 Этот параметр устанавливает цену в уровнях опыта для предметов. Команды не будут выполнены, если у игрока, который нажал, недостаточно уровней. При выполнение уровни игрока будут удалены (как при чаре предмета).

Пример:

LEVELS: 5

REQUIRED-ITEM
 Данный параметр устанавливает обязательный предмет, без него команды не будут выполняться. Формат такой же, как у ID. При выполнении команду у игрока будет удаляться указанный предмет из инвентаря.

Пример (30x оранжевое стекло):

REQUIRED-ITEM: 'stained glass:1, 30'

KEEP-OPEN
 Этот параметр устанавливает, должно ли меню закрываться после нажатия на элемент (по умолчанию false). Значение может быть как true, так и false.

Пример:

KEEP-OPEN: true

PERMISSION
 Данный параметр устанавливает, требуется ли определенное разрешение для щелчка по элементу и выполнения команд. Разрешение может быть выбрано произвольно. Вы можете отрицать это, поставить минус (-) перед разрешением, чтобы потребовать от пользователя не иметь этого разрешения (например: ‘-my.custom.permission’)

Пример:

PERMISSION: 'my.custom.permission'

VIEW-PERMISSION
 Точно такое же, как параметр выше, но пользователь без этого разрешения просто не сможет увидеть элемент. Можно отрицать (игроку нужно не иметь разрешения my.custom.permission): ‘-my.custom.permission’.

Пример:

VIEW-PERMISSION: 'my.custom.permission'

PERMISSION-MESSAGE
Данный параметр связан также с разрешением, он изменяет сообщение, когда пользователь нажимает на элемент не имея соответствующего разрешения (стандартное сообщение «no permission» настраивается в config.yml).

Пример:

PERMISSION-MESSAGE: '&cYou must be VIP to use this item!'

 3. Действия при нажатии

В данном разделе будут описаны возможные действия при нажатии на элемент меню. Ничего более.

Открытие других меню
Если команда открывает другое меню (меню из из другого плагина), установите KEEP-OPEN: true. 

Переменные
Переменные могут использоваться в COMMAND, LORE и NAME.

{player} (будет заменен именем игрока, который нажал на элемент).
{world} (название мира, в котором находится игрок).
{online} (онлайн на сервере).
{max_players} (количество слотов сервера).
{money} (сумма денег, должен быть установлен Vault).

Обычные команды
 Команды не должны быть написаны с «/» перед ними, кроме некоторых команд WorldEdit (например //wand). Пример выполнения команды /spawn игроком при нажатии на элемент меню. 

Пример:

COMMAND: 'spawn'

Выполнение команд через консоль
 Будьте осторожны с этим, так как команда будет выполнятся через консоль сервера. Чтобы выполнить команду из консоли сервера, используйте ‘console:’ перед командой.

Пример:

COMMAND: 'console: say Hello world!'

Выполнение команд как OP
 Будьте осторожны с этой командой. Чтобы выполнить команду как OP, поставьте перед командой ‘op:’.

Пример:

COMMAND: 'op: say Hello world!'

Выполнение нескольких команд
 Разделите несколько команд точкой с запятой «;». Пример заставляет игрока выполнять команды в следующем порядке: / spawn, затем / me.

Пример:

COMMAND: 'spawn; me I have been teleported to the spawn!'

Вывести сообщение игроку
 Как и в предыдущих примерах, поместите ‘tell:’ перед строкой, чтобы отправить ее игроку. Вы можете использовать цветовые коды и символы.
В примере сообщение будет красным.

Пример:

COMMAND: 'tell: &cHello man!'

Сделать объявление
 Работает также как и ‘tell:’, только сообщение увидят все игроки. 

Пример:

COMMAND: 'broadcast: {player} is awesome!'

Воспроизведение звуков
 Звук состоит из трех параметров (обязательный только первый), разделенных запятыми. Формат выглядит так: ‘<soundName>, [pitch], [volume]’
Список звуков: тут.

Пример:

COMMAND: 'sound: ghast scream, 2.0, 0.5'

Выдача предметов
 Базовая команда для выдачи предметов. Вы можете изменить только значение данных и количество предметов, для более сложных вещей используйте команду vanilla. В приведенном ниже примере игроку дается 10 черных шерсти (значение data — 15).

Пример:

COMMAND: 'give: wool:15, 10'

Выдача денег
COMMAND: ‘give-money: 100.0’
 Данная команда выдаст деньги игроку (100$), который нажал на элемент. Для работы нужен плагин Vault (подробнее об экономике в разделе №4).

Пример:

COMMAND: 'give-money: 100.0'

Открытие других меню
 Для открытие другого меню из ChestCommands используйте — ‘open: <filename>’, где <filename> — это имя файла меню. Меню будет открыто, если оно существует и правильно настроено, в противном случае отобразится сообщение об ошибке. Игрокам нужно правильное разрешение, чтобы открыть это меню (подробнее об разрешениях в разделе №6).

Пример:

COMMAND: 'open: example.yml'

Команды BungeeCord
Вы можете использовать ‘server: <target>’. Пр нажатии пользователь попытается подключиться к указному серверу. Если вы не знаете, что такое BungeeCord, игнорируйте этот тип команды.

Пример:

COMMAND: 'server: hub'

Сообщение Dragon Bar (с помощью плагина BarAPI)
Чтобы отправить сообщение для панели вверху (также называемая boss bar), у вас должен быть установлен плагин BarAPI. Формат ‘dragon-bar: <время-в-секундах> | <сообщение>’. В приведенном ниже примере панель будет отображаться в течение 10 секунд для игрока, который щелкнет по элементу, отображая его ник.

Пример:

COMMAND: 'dragon-bar: 10 | &aHello, {player}!'

 4. Настройка экономики (игровой валюты)

Требования

Vault (необходимо обновить до последней версии!)
Совместимый плагин на экономику (iConomy, BOSEconomy и т.п.)

Настройка

Поместите Vault и совместимый плагин для экономики в папку ваших плагинов (если они еще не установлены).
Теперь вы можете начать пользоваться параметром PRICE и действием give-money:.

 5. Таблички с меню

 Создание таблички с меню

  1. Разместите табличку.
  2. В первой строке напишите [Menu] (вам нужно разрешение «chestcommands.sign»)
  3. Во второй строке напишите имя файла меню (можно писать без «.yml»).

 Проверка

Если меню с табличкой правильно создано, первая строка табличке станет СИНЕЙ.
В случае ошибки первая строка станет КРАСНОЙ, а в чате появится сообщение об ошибке.

 5. Специальные символы

Список символов, которые можно использовать по умолчанию, например в командах «tell», в имени и в описании элемента:

<3 = ❤
[*] = ★
[**] = ✹
[p] = ●
[v] = ✔
[+] = ♦
[++] = ✦
[x] = █
[/] = ▌
[cross] = ✠
[arrow_right] = →
[arrow_left] = ←
[arrow_up] = ↑
[arrow_down] = ↓

 Чтобы добавить новые символы, откройте файл placeholder.yml и добавьте новую строку в следующем формате: textToReplace: replaceString

Пример:

[special]: \u2726 Special Item \u2726

Строка выше будет выглядеть так — ✹ Special Item ✹. Вы можете использовать любой символ Unicode.

 6. Разрешения (permissions)

Список разрешений
Команда Разрешение (permission) Описание
/chestcommands или /cc  Основная команда. Информация о версии, разработчике и помощи.
/cc help chestcommands.command.help Список команд.
/cc reload chestcommands.command.reload Перезагрузка плагина.
/cc open <file> chestcommands.command.open Открывает любое меню напрямую.
Вам также нужны разрешения для открытия меню.
/cc open <file> [ник] chestcommands.command.open.others Открывает меню для указного игрока. 
Разрешения при открытии игнорируются.
/cc list chestcommands.command.list Список правильно загруженных меню.
chestcommands.update Получать уведомления об обновлениях при подключении.
chestcommands.open.filename.yml Разрешение на открытие меню (filename.yml — название меню)
chestcommands.economy.bypass Игнорировать установленную цену.
chestcommands.sign Требуется для создания табличек с меню.

 7. Покупка / продажа (создание мини-магазина)

Обязательно прочитайте 3 и 4 пункты!

 Выдать деньги игроку — ‘COMMAND: ‘givemoney: <number>’.
 Забрать деньги у игрока — ‘PRICE: <number>’.

 Выдать предмет — ‘COMMAND: ‘give: <id>[:data],[amount]’
 Забрать предмет —  ‘REQUIRED-ITEM: <id>[:data],[amount]’.

Всё это нужно добавлять в параметры элемента меню.

Примеры:

Покупка предмета

 С помощью примера ниже игрок сможет купить 1 алмаз за 100$.
      COMMAND: ‘give: 264’
      PRICE: 100
      NAME: ‘Buy a diamond’
      ID: 264
      POSITION-X: 1
      POSITION-Y: 1

Продажа предмета

 С помощью примера ниже продать 64 блоков земли и получить за это 10$.

      COMMAND: ‘givemoney: 10’
      REQUIRED-ITEM: 3, 64
      NAME: ‘Sell dirt’
      ID: 3
      POSITION-X: 1
      POSITION-Y: 1

Мой видео-обзор YouTube

Также можете посмотреть мое видео

 

 Ну вот и всё. На этом статья заканчивается. Если у вас будут какие либо вопросы можете писать в группу ВК.

Про Mr_dsa1

☕ Занимаюсь созданием и настройкой Майнкрафт серверов и плагинов. Иногда создаю гайды по модам или механизмам. Делюсь всем этим с читателями. ✉ Есть свой канал, ВК группа и Discord сервер. Все ссылки можно найти на сайте.

Смотрите также

Топ 15 нужных и полезных плагинов для создателей сервера Майнкрафт

 Всем добро пожаловать на статью «Топ 15 плагинов для Майнкрафт». Я знаю что на моем сайте …