RandomBox — коробки удачи в Minecraft! теперь с GUI

RandomBox — коробки удачи в Minecraft! теперь с GUI

Плагин RandomBox позволяет вам использовать так называемые «коробки удачи» — контейнеры, из которых вам могут выпасть несколько случайных вещей, указанных в настройках плагина. Идея полностью взята, как можно догадаться уже по краткому описанию, из игры Warface.

Плагин выдаёт коробку удачи (далее «коробку«) командой /givebox <игрок> <id коробки>. После этого, игрок может эту коробку открыть командой /openbox, держа её в руках: коробка удалится, и в инвентаре появятся вещи, выпавшие из неё. В чат выведется сообщение: «Вам выпало то-то, то-то и то-то.«, или сообщение об ошибке и краткое описание (например, если в инвентаре нет места).

Коробка — это обычный предмет, отличающийся от других только описанием (lore), тем, что на него наложено зачарование Защита 3 (просто для красоты, чтоб светился, можно отключить). В lore закодирован id коробки (с помощью не влияющих на отображение цветовых кодов) и написаны названия всех предметов, выпадающих из коробки и их количество. Пример на скриншоте.

Все коробки настраиваются в plugins/RandomBox/config.yml.

Формат описания коробки

Код (Text):
  1. # Идентификатор коробки (указывается в команде /givebox <игрок> <id>)
  2. # Должен быть целым положительным числом,
  3. # желательно, в формате 990<номер по порядку> во избежание пересечения под-id с обычными предметами.
  4. 9901:
  5.   # Вещь, которой является коробка, желательно, нестакающаяся.
  6.   # Лучше всего подходит вагонетка с сундуком (STORAGE_MINECART).
  7.   # Если эту вещь можно использовать (вагонетку, например, поставить на рельсы),
  8.   # то это нельзя будет сделать, если эта вещь — коробка
  9.   # Формат указания: цифровой id (например, «57» — алмазный блок)
  10.   # или строковый (для предыдущего — «DIAMOND_BLOCK»).
  11.   boxItem: STORAGE_MINECART
  12.   # Название коробки
  13.   boxName: ‘Коробка удачи’
  14.   # Сколько вещей выпадает из коробки (если меньше общего кол-ва вещей, то коробка не будет открываться)
  15.   itemsToSelectCount: 3
  16.   # Проверять наличие у открывающего разрешения randombox.open.<id коробки>
  17.   checkPermission: true
  18.   # Открывать коробку при клике правой кнопки мыши во время держания её в руках
  19.   openWhenClicked: true
  20.   # Зачаровывать коробку на Защиту III?
  21.   enchant: true
  22.   # Делает коробки нестакающимися (если это стакающиеся предметы или блоки)
  23.   unstackable: true
  24.   items:
  25.   # Вещи, выпадающие из коробки

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

id предметов рекомендуется указывать числами (здесь все id), можно строками типа «DIAMOND_BLOCK», но не нужно, потому что они часто не соответствуют нормальным названиям блоков и предметов (например, «DIODE» — это повторитель).

Формат описания вещи

Код (Text):
  1. # Любое уникальное название, не влияет ни на что
  2. item1:
  3.   # Если добавлена эта секция, то вместе
  4.   # с выдачей предмета будет выполнены
  5.   # команды из этого списка с заданными
  6.   # аргументами
  7.   #
  8.   # В данном примере игрок получит
  9.   # 10 уровней опыта
  10.   # Чтобы выполнить только команды, поставьте
  11.   # id предмета 0 или AIR
  12.   commands:
  13.     # Любое название, не влияет ни на что
  14.     command1:
  15.       # Название команды без / вместе
  16.       # с аргументами.
  17.       line: ‘xp give %player% 10L’
  18.       # Выполнять команду от имени
  19.       # консоли (true) или игрока (false)
  20.       fromConsole: true
  21.   # id предмета
  22.   item: DIAMOND_SWORD
  23.   # Data value предмета (то, которое через двоеточие)
  24.   data: 0
  25.   # Количество предметов в стаке
  26.   amount: 1
  27.   # Название предмета (может быть цветным)
  28.   # Обязательный параметр! Иначе не будет имени предмета
  29.   # в описании к коробке.
  30.   name: ‘&cАлмазный меч’
  31.   # Описание предмета (может быть цветным)
  32.   # Каждая строчка — отдельный пункт
  33.   # — ‘текст строки’
  34.   lore:
  35.   — ‘&7Этот меч выпал’
  36.   — ‘&7из коробки удачи.’
  37.   # Зачарования любого уровня и типа
  38.   # Формат: <Зачарование>:<уровень>
  39.   enchants:
  40.     sharpness: 8
  41.     unbreaking: 5
  42.     fire: 4
  43.     knockback: 2
  44.   # Сообщение, которое будет показано всем игрокам,
  45.   # Rкогда эта вещь выпадет. Чтобы это отключить, удалите
  46.   # этот параметр или оставьте пустым.
  47.   broadcastMessage: ‘&6%player% вытянул охрененный меч из коробки!’
  48.   # Шанс выпадения вещи
  49.   chance: 15

Шанс — целое число больше нуля. Чем больше доля данного шанса в сумме шансов всех вещей, тем чаще он будет выпадать. Чтобы каждая вещь выпадала с равной вероятностью, поставьте у всех вещей одинаковые шансы.

Команды

  • /givebox <игрок> <id коробки>: выдать коробку игроку.
  • /openbox: открыть коробку, которая находится у вас в руках.
  • /randombox, /rb: информация о плагине: версия, автор и краткое описание.
  • /randombox reload: перезагрузить настройки с диска.
  • /randombox list: отобразить список коробок в конфиге

Permissions

  • randombox.*: Разрешает выполнять все команды.
  • randombox.main: Разрешает выполнять команду /randombox без аргументов.
  • randombox.main.reload: Разрешает перезагружать плагин.
  • randombox.openbox: Разрешает открывать коробки.
  • randombox.givebox: Разрешает выдавать коробки игрокам.
  • randombox.infinitebox: При открытии коробка не исчезает.
  • randombox.open.<id коробки>: разрешает открывать коробку id. Проверяется, только если в настройках коробки checkPermission установлено в true.
  • randombox.open.*: разрешает открывать все коробки. Проверяется, только если в настройках коробкиcheckPermission установлено в true.

Дополнительно

В конфиге есть булев параметр debug — включает вывод некоторой информации в консоль, типа рассчитанных вероятностей.

Есть раздел strings — в нём хранятся все строки, выводимые в чат на двух языках (русском и чуть ломанном английском, за переключение отвечает параметр locale), а также префикс сообщений и строка «Выпадающие предметы:» из описания коробки.

Скачать