Настройка плагина 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 helpchestcommands.command.helpСписок команд.
/cc reloadchestcommands.command.reloadПерезагрузка плагина.
/cc open <file>chestcommands.command.openОткрывает любое меню напрямую.
Вам также нужны разрешения для открытия меню.
/cc open <file> [ник]chestcommands.command.open.othersОткрывает меню для указного игрока. 
Разрешения при открытии игнорируются.
/cc listchestcommands.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 сервер. Все ссылки можно найти на сайте.

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

Топ 10 плагинов для создателей серверов Майнкрафт

Топ 10 плагинов для создателей серверов Майнкрафт Всем добро пожаловать на статью «Топ 10 нужных …

Добавить комментарий