ExecutableItems: свои предметы с активаторами

ExecutableItems делает из обычного предмета «исполняемый»: на клик, удар, поедание или другое действие игрока он запускает команды, эффекты и условия. Всё собирается в игровом редакторе или в yml, без кода. Бесплатной версии хватает на простые предметы, Premium снимает лимиты.

Что делает плагин и как установить

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

  1. Скачайте ExecutableItems и SCore (на 1.8–1.12.2 ещё NBTAPI) и положите все jar в plugins.
  2. Перезапустите сервер.
  3. Создайте предмет: /ei create power_sword, затем донастройте его в меню /ei editor или в файле.

Предметы лежат в plugins/ExecutableItems/items/. Туда можно добавлять подпапки для порядка, после переноса файлов нужен /ei reload.

Пример предмета с активатором

Меч, который по правому клику даёт силу на 5 секунд с кулдауном 30 секунд. Один активатор, поэтому работает и в бесплатной версии.

material: DIAMOND_SWORD
name: '&cМеч силы'
lore:
- '&7ПКМ: сила на 5 секунд'
usage: -1
keepDefaultAttributes: true
activators:
  activator0:
    name: '&eСила'
    option: PLAYER_RIGHT_CLICK
    cancelEvent: false
    playerCommands:
    - effect give %player% strength 5 1
    silenceOutput: true
    cooldownFeatures:
      cooldown: 30
      isCooldownInTicks: false
      cooldownMsg: '&cПодождите &e%time_S%&c сек.'
      displayCooldownMessage: true
  • option: тип активатора. PLAYER_RIGHT_CLICK срабатывает, только когда предмет в руке. Название пишется точно как в официальном списке активаторов, премиумные активаторы в бесплатной версии не работают.
  • playerCommands: команды от имени игрока, %player% подставляет ник.
  • silenceOutput: true прячет вывод ванильных команд из консоли.
  • usage: -1: у предмета нет счётчика использований, он не исчезает.
  • keepDefaultAttributes: true на 1.21+ сохраняет урон меча. Без него предмет без своих атрибутов теряет ванильные и бьёт как кулак.
  • cancelEvent: true отменило бы само событие: например, с PLAYER_BLOCK_BREAK блок перестал бы ломаться.

Права: почему игроки не могут использовать предметы

Без права игрок получает сообщение об отказе. Для каждого предмета есть узел ei.item.{id}, для всех сразу ei.item.*. Документация советует выдать его группе через LuckPerms:

/lp group default permission set ei.item.* true
  • ei.nocd.{id} или ei.nocd.*: обход кулдаунов.
  • ei.cmds: все команды плагина, ei.*: вообще всё.
  • Запретить конкретный предмет правом -ei.item.{id} можно только в Premium.

Бесплатная версия или Premium

FreePremium
Предметовдо 500без лимита
Активаторов на предмет1без лимита
Типов активаторовоколо 1490+
Подпись в лореестьнет

В Premium также открываются usageModification (активатор тратит или добавляет использования) и требования к активатору: деньги, уровень, опыт, другие предметы. Premium продаётся на SpigotMC за €19.99.

Как добавить текстуру предмету (1.21.4+)

Текстуру даёт ресурспак, а предмет ссылается на неё через custom model data. Пример из документации: булава, которая выглядит как бита. Имена файлов и папок только строчными латинскими буквами и подчёркиваниями.

  1. pack.mcmeta с "pack_format": 46 (1.21.4+).
  2. assets/minecraft/items/mace.json: модель типа select по свойству custom_model_data, где кейс "when": "bat" ведёт на модель item/bat, а fallback на обычную item/mace.
  3. assets/minecraft/models/item/bat.json с "parent": "item/generated" и "layer0": "item/bat".
  4. Картинка assets/minecraft/textures/item/bat.png.

В предмете:

material: MACE
customModelData:
  type: STRING
  value: bat

Пак можно раздавать самим плагином: selfHostPack: true в config.yml, либо своей ссылкой в texturesPackUrl. После изменений текстур /ei refresh-pack перезагрузит пак у онлайн-игроков. Учтите: в гайде по своей еде документация пишет, что перетекстуривание требует Premium.

Частые ошибки

  • После обновления на 1.21 мечи бьют как рука. Включите keepDefaultAttributes сразу всем предметам: /ei util-set-keepdefaultattributes-all-ei true.
  • Активатор не срабатывает. Проверьте консоль, написание option и то, в каком слоте предмет. PLAYER_BLOCK_BREAK и многие другие активаторы есть только в Premium.
  • Игрок пишет, что предмет не работает. Нет права ei.item.* или игрок на кулдауне.
  • Старые копии предмета у игроков не обновились. /ei refresh подтянет последнюю версию конфига.

Команды и права ExecutableItems

КомандаЧто делаетПраво
/ei create {id}создать новый предметei.cmd.create
/ei editorменю редактора предметов (или /ei show)ei.cmd.editor
/ei reload [id]перезагрузить плагин или один предметei.cmd.reload
/ei give {игрок} {id} {кол-во}выдать предмет игрокуei.cmd.give
/ei giveall {id} {кол-во} [мир]выдать предмет всемei.cmd.giveall
/ei take {игрок} {id} {кол-во}забрать предмет из инвентаряei.cmd.take
/ei drop {id} {кол-во} [мир x y z]выбросить предмет на координатахei.cmd.drop
/ei edit {id}открыть редактор конкретного предметаei.cmd.edit
/ei delete {id}удалить предметei.cmd.create
/ei inspectосмотреть предмет в рукеei.cmd.inspect
/ei refresh {игрок} {id} {resetUsage} {resetDurability}обновить предметы игрока до текущего конфигаei.cmd.refresh
/ei clear {игрок}сбросить кулдауны и отложенные командыei.cmd.clear
/ei trigger {игрок} {id} {активатор}запустить активатор командойei.cmd.trigger
/ei default_itemsзаново создать стандартные предметыei.cmd.default_items
/ei refresh-packперезагрузить ресурспак у онлайн-игроковei.cmd.refresh-pack
/ei download-default-packскачать и распаковать стандартный пакei.cmd.download-default-pack

Частые вопросы про ExecutableItems

Что делает плагин ExecutableItems?
Он превращает предметы в инструменты с действиями: по клику, удару или другому событию предмет выполняет команды, накладывает эффекты, проверяет условия и уходит на кулдаун. Настраивается в меню /ei editor или в yml.
Как создать предмет в ExecutableItems?
Введите /ei create и id, затем настройте материал, имя и активатор в /ei editor. Файл предмета появится в plugins/ExecutableItems/items, его можно править вручную и применять через /ei reload.
Почему игроки не могут использовать предметы ExecutableItems?
Не выдано право ei.item.* или ei.item.id конкретного предмета. Проще всего выдать группе: /lp group default permission set ei.item.* true.
Как добавить текстуру в ExecutableItems?
Сделайте ресурспак, где модель выбирается по custom_model_data, а в предмете укажите customModelData со значением из пака. Пак раздаётся через selfHostPack или ссылку texturesPackUrl в config.yml.
Чем ExecutableItems Premium отличается от бесплатной версии?
Бесплатная версия ограничена 500 предметами, одним активатором на предмет и примерно 14 типами активаторов, а в лор добавляется подпись. Premium снимает лимиты и даёт 90+ активаторов.
Работает ли ExecutableItems на 1.21?
Да, плагин поддерживает версии от 1.8 до 26.x. После перехода на 1.21 проверьте keepDefaultAttributes, иначе оружие без своих атрибутов потеряет урон.

Не хочется настраивать самому

ExecutableItems уже стоит и настроен в готовых сборках Cloud Delight: права, меню, защита и донат собраны в одно целое. Скачали, запустили, играете.