LastItems - Универсальный плагин для работы с предметами

Плагин LastItems - Универсальный плагин для работы с предметами 0.2.5-BETA

Создайте и подтвердите аккаунт для скачивания
ChangeLog 0.2.4 -> 0.2.5-BETA

Прошу ознакомиться!
Данная версия это лишь бета-версия перед релизом. Прошу вас сообщать об ошибках/багах/дюпах и так далее в You must be logged in to see this link. разработчика! Данные функции пока что в тестировании и не дописаны до релиза!

Обновления

Проверки в эффектах
В плагине встроена система проверок (Conditions), которая позволяет выполнять определенные действия только при соблюдении определенных условий.

Новый эффект [condition]
YAML:
- type: condition
  if: "%player_health% < 10.0"
  do:
    - "[potion] [player] give REGENERATION 10s 2"
    - "[message] [player] &aЗдоровье восстановлено!"
  else:
    - "[message] [player] &cУ вас и так достаточно здоровья."

Примеры:
YAML:
- if: '200 == 200'
- if: 'has super.permission' # если у игрока есть пермишен
- if: '!has super.permission' # если у игрока нет пермишена
- if: 'string has str' # строка содержит
- if: 'string !has str' # строка не содержит
- if: 'string HAS str' # строка содержит без учёта регистра
- if: 'string !HAS str' # строка не содержит без учёта регистра
- if: 'string == string' # строка равна
- if: 'string != string' # строка не равна
- if: 'nearby world 10 10 10 100' # условие что игрок находится в радиусе 100 блоков от координат 10 10 10 в мире world

- if: '{COOLDOWN_STATUS} == true'
  do:
    - eco: 'player take 1000'
  else:
    - '&fДействует задержка! Подождите <red>{time:detail}</red>!'

Новые эффекты:
BossBar
Создание/обновление/удаление боссбара по уникальному id

Виды:
YAML:
- [bossbar] [target] [create] <id bar> <color> <style> <progress> <title>
- bossbar: '[target] [update] <id bar> <color> <style> <progress> <title>'
- bossbar: '[remove] <id bar>'

- type: bossbar
  target: player
  actions: "create" # create/update/remove
  id: my_bossbar
  color: RED # PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
  style: SOLID # SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20
  progress: 100 # В процентах или от 0.0 до 1.0
  title: "<red>Внимание!</red>"

Burn
Поджог target entity

Виды:
YAML:
- [burn] [target] give <time> [наносить ли урон (true/false)]
- [burn] clear <time> [наносить ли урон (true/false)]

- type: burn
  target: player
  action: "give/clear"
  time: 5s
  damage: false

Eco
Управление экономикой плагина

Виды:
YAML:
- '[eco] [target] [give] <value>'
- eco: '[take] <value>'
- eco: 'reset'

- type: eco
  target: player
  action: 'give' # give/take/reset/set
  amount: 1000

Delay
Управление экономикой плагина

Виды:
YAML:
- '[delay] [time] ["<cmd1>", "<cmd2>", "<cmd3>", "...", "<cmdN>"]'
- delay: 
    time: 5s
    effects:
      - 'console msg Эффект сработал!'
- delay: '2s ["[console] [msg] Эффект сработал!"]'

- type: delay
  target: player
  time: 5s
  effects:
    - '<...>'

Новый вид эффекта [potion]
В эффект [potion] была добавлена возможность выдачи сразу нескольких эффектов (каждому можно настроить свой шанс выпадения в процентах)

Примеры:
YAML:
- potion: 'give {<effect id>: <chance>; <effect id>: <chance>} <time> <level> [fall (true/false)]'
- potion: 'give {SPEED: 100; JUMP_BOOST: 50} 200 1' # Выдать игроку либо SPEED с шансом 100%, либо JUMP_BOOST с шансом 50% на 10 секунд (200 тиков)

- type: potion
  target: player
  mode: "give"
  effects:
    SPEED: 100.0 # Эффект: шанс выдачи (100%)
    JUMP_BOOST: 50.0 # Эффект: шанс выдачи (50%)
  level: "1"
  duration: 10s
  fall: false # выдавать ли эффект медленного падения после окончания?

API и Аддоны
В плагин добавлена огромное API для разработчиков LastItemsAPI. Теперь не обязательно ждать новых обновлений плагина, чтобы получить новый эффект или триггер!

При помощи команды /lastitems addon <load/unload/reload/list> вы можете подгружать аддоны.

Разработчики теперь могут:
  • Создавать свои эффекты: Регистрировать кастомные действия в конфигурации через API EffectRegistry.register(...). Например, вы можете сделать эффект [spawn_mob], и игроки смогут использовать его в конфиге.
  • Создавать своих target entity: Добавлять новые виды таргетов (например [nearby_players], [damager]) через API TargetRegistry.register(...).
  • Создавать кастомные триггеры: Регистрировать триггеры, которые будут реагировать на кастомные ивенты (через TriggerRegistry.register(...)). В конфигурации триггеры тоже будут читаться динамически.

Новые триггеры
В плагин добавлено 3 новых триггера.

  • on_item_slot:[time] - Триггер, который позволяет выполнять эффекты циклично (каждые N время), пока предмет находится в руке или надет как броня. Если не написано [time] аргумент, то будет каждые 20 тиков (1 секунду) вызывать эффекты по умолчанию.
  • on_shift_right_click - Срабатывает, когда игрок зажимает SHIFT и кликает ПКМ.
  • on_shift_left_click - Срабатывает, когда игрок зажимает SHIFT и кликает ЛКМ.

Новые локальные плейсхолдеры
В плагин добавлены несколько новых плейсхолдеров, которые работают внутри плагина.

  • {COOLDOWN_STATUS} - Выводит true/false, если у предмета действует задержка
  • {COOLDOWN_TIME} - Выводит время задержки в секундах
  • {COOLDOWN} - то же самое про {COOLDOWN_TIME}
  • {COOLDOWN_TIME:<format time>} - Выводит время задержки в указанной формате времени

Интеграция экономики плагинов
Теперь вы можете при помощи эффектов управлять экономикой плагина, который написан в config.yml
YAML:
economy:
  enable: true
  provider: Vault # Vault, VaultUnlocked, PlayerPoints

Фиксы

  • Исправлен баг, когда при клике ПКМ мечом или инструментами эффекты не срабатывали или срабатывали криво.
  • Исправлена ошибка, когда плагин писал "Предмет в задержке", хотя задержки на самом деле не было.
  • Удаление ненужных debug сообщений по типу '[Debug] Action conditions not met...'
ChangeLog 0.2.3.1-FIX -> 0.2.4:
  • Существенная оптимизация всех основных классов (You must be logged in to see this link., You must be logged in to see this link.), полностью устраняющая утечки памяти и нагрузку на GC при работе с данными NBT/PDC
  • Полная поддержка и оптимизация совместимости API для версий Bukkit/Spigot/Paper/Purpur/Leaf 1.16.5 - 26.1.2
  • Добавлена система отложенного сканирования в 3 волны (1, 5, 10 тиков) для эффекта магнита, чтобы гарантировать 100% сбор предметов, минуя очереди отложенного выпадения в Paper/Spigot
  • Значительное повышение производительности: замена ArrayList на EnumSet для проверки блоков с сложностью O(1) и добавление ConcurrentHashMap для потокобезопасной обработки бесконечного количества предметов



Фиксы
  • Исправление основных ошибок в эффектах [blocks] [magnet] и [blocks] [break] (исправлены вычисления радиуса, логика центрального блока и совместимость со всеми триггерами)
  • Исправлены несколько критических ошибок дублирования, ошибки с «призрачными» предметами и бесконечное дублирование стеков в эффекте [magnet]
  • Исправлено спам-сообщение в консоли (IllegalArgumentException) на серверах 1.16.5, связанное с атрибутом MAX_HEALTH


Также сайт вики переехало на новый домен -> You must be logged in to see this link.
ChangeLog 0.2.3 -> 0.2.3.1-FIX

Фикс атрибутов на 1.21.3+ версиях
ChangeLog 0.2.2 -> 0.2.3
Новая подкоманда [magnet/magnit]
В этой версии добавлена только одна новая подкоманда для эффекта блоков:

Если цель не указана, по умолчанию в качестве цели используется игрок
YAML:
-[blocks] [target] [magnet/magnit] <radius (placeholders, math)> <blocks>“
Собирает предмет, который был последним разбит из грязи, камня и брусчатки. Совместимо с подкомандой [break] , то есть если игрок разбивает предмет, он сразу попадает в инвентарь игрока, как если бы был применен магнетизм
YAML:
- „[blocks] [player] [magnet] -1 dirt;stone;cobblestone“
Это будет собирать предметы, КРОМЕ грязи и брусчатки (поскольку префикс ! указывает на исключение), но только камень
может быть разбит в радиусе 2x2x2 блоков, при условии, что используется подкоманда [break]
YAML:
- ‘[blocks] [magnet] 2;2;2 !dirt;stone;!cobblestone’
Здесь будут собраны все предметы, кроме грязи, камня и брусчатки
YAML:
- ‘[blocks] [magnet] 5’

Кроме того, такая модификация карты:
YAML:
- type: blocks
  target: player
  action: magnet
  radius: ‘3;3;3’
  drop_items: true # только для [break]
  materials:
    - STONE # разрешено
    - ‘dirt’ # разрешено (не чувствительно к регистру)
    - ‘!cobblestone’ # запрещено (восклицательный знак)
## ChangeLog 0.2.1 -> 0.2.2
### Новый вид эффектов:

Теперь поддерживаются два формата написания эффектов (внутри секции effects):
1. Короткий (в одну строку, например: [message] Привет)
2. Полный (через YAML Map/словари)

Также секция cast удалена и теперь есть только effects.

[+] Поддержка математических операций:
Во всех числовых значениях теперь поддерживаются математические операции!
Например: [potion] [give] random 15/2s (Округлит до 8 секунд)
Например: [disable_items] [victim] ender_pearl 10*2/1ms

[+] Модуль FOLDER:
Выдача всех предметов из определённой папки (даже с подпапками).
Команда: /lastitems folder <папка> [игрок]

[+] Новая подкоманда TAKEALL:
Команда: /lastitems takeall <player>
Полностью удаляет все кастомные предметы плагина из инвентаря игрока.

[+] Новые триггеры:
Добавлены: ON_CONSUME, ON_FISH, ON_SNEAK, ON_SPRINT, ON_JUMP, ON_DROP,
ON_PICKUP, ON_EQUIP, ON_WORLD_CHANGE, ON_JOIN, ON_QUIT, ON_DEATH,
ON_RESPAWN, ON_BOW_SHOOT, ON_TELEPORT, ON_EXP_CHANGE, ON_LEVEL_CHANGE,
ON_BED_ENTER, ON_BED_LEAVE, ON_SHEAR, ON_BUCKET_FILL/EMPTY, ON_ITEM_BREAK/MEND.

[+] Модуль TIME FORMAT:
Время теперь можно задавать с суффиксами: ms/t (тики) и s (секунды).
Настройка стилей (clock, detail) теперь вынесена в modules/time-format.yml и можно полностью настроить все стили формата времени через данный файл

[+] Модуль COMMANDS:
Теперь можно изменять нужные аргументы, отключать их и работать с Tab Completer плагина

[+] Глобальная оптимизация плагина + высокая производительность в 2 раза

Также теперь вики плагина полностью обновлено и работает быстро и качественно!
  • Мне нравится (+1)
Реакции: karlova
Релиз данного плагина

После многочисленных бета версий плагина, я добился того чего именно хотелось

ChangeLog 0.1.3 BETA -> 0.2:
  • Добавление триггеров You must be logged in to see this link., You must be logged in to see this link. и You must be logged in to see this link.
  • Полная поддержка 1.16.5 - 1.21.11 версий
  • Добавление You must be logged in to see this link. для триггеров - теперь можно будет выбирать определённый тип для триггеров, чтобы например он работал только если взаимодействует с блоком или воздухом и так далее.
  • Триггеры можно будет писать без on_ префикса, т.е. просто right_click и так далее
  • Новая работа с плейсхолдера: теперь плейсхолдеры можно объединять в одно целое. Например: %player_%player_name%% и так далее
  • Оптимизация всего плагина, а также добавление FallBack'ов для debug сообщений

Спасибо всем тем, кто пользуется данным плагином 💝
Назад
Сверху Снизу