- Поддерживаемые версии
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Ядра и Прокси
- Spigot
- Paper
- Минимальная версия Java
- 16
Привет! Надоело, что для каждого нового зачарования нужно либо лезть в Java-код, либо мириться с тем, что плагины конфликтуют друг с другом?
SingleCreateEnchants решает эту проблему. Здесь каждое зачарование - это просто отдельный текстовый .yml файлик в папке enchants. Закинул файл, настроил пару строчек под себя - и зачарование уже работает на сервере.
Когда срабатывает:
SingleCreateEnchants решает эту проблему. Здесь каждое зачарование - это просто отдельный текстовый .yml файлик в папке enchants. Закинул файл, настроил пару строчек под себя - и зачарование уже работает на сервере.
Почему это удобно?
- Один файл - одно зачарование: Хотите добавить «Вампиризм»? Создаёте vampirism.yml. Надоело зачарование? Просто удалили файл. Никакой путаницы в одном огромном конфиге.
- Чары больше не ломают друг друга: Если на одной кирке висит и Бур 3х3, и Автоплавка, и Магнетизм - они сработают одновременно. Блоки выкопаются областью, сразу переплавятся в слитки и упадут прямо в инвентарь игрока.
- Формулы вместо рутины: Не нужно прописывать настройки под каждый из 10 уровней. Можно просто написать формулу вроде %level% * 2 или %distance% * 0.5 (урон зависит от дальности выстрела).
- Гибкие условия: Зачарование может срабатывать только на Shift, только в грозу, только в Незере или иметь свой кулдаун, чтобы игроки не спамили способностями.
- Защита приватов: Интеграция с WorldGuard из коробки. Бур или взрывная стрела не разнесут чужой дом или спавн.
- Своё точило и наковальня: Поддержка объединения кастомных книг на наковальне и удобное GUI-точило, где лишние чары можно снять и получить за них опыт.
Что умеет плагин?
Вы комбинируете триггер (когда срабатывать) и действие (что должно произойти):Когда срабатывает:
- Ломание блока или сбор спелого урожая
- Удар по мобу/игроку или получение урона (для брони)
- Убийство существа или удачная подсечка на рыбалке
- Выстрел/попадание из лука или трезубца
- Обычный шаг (для ботинок)
- Нажатие Shift или клик ПКМ предметом
- Вскопать область 3х3 (Бур) или срубить всё дерево под корень (Лесоруб)
- Сделать безопасный взрыв или ударить молнией
- Наложить любой эффект зелья на себя или жертву
- Восстановить здоровье или сытость
- Поджечь, сломать броню врагу, выдать опыт или проиграть звук с партиклами
Пример: как выглядит настройка взрывного лука
Создаём файл enchants/explosion_bow.yml:
YAML:
enable: true
display-name: "&cКнига Разрывных Стрел"
max-level: 3
can-combine: true
can-enchant: true
# Срабатывает при попадании стрелы
trigger: ARROW_HIT
# Нельзя совмещать со снайперским луком
conflicts:
- sniper
# Кулдаун 2 секунды, чтобы не спамили
conditions:
cooldown: 2
applicable-items:
- BOW
- CROSSBOW
# Шанс: 50% на 1 ур, 75% на 2 ур, 100% на 3 ур
chance-per-level:
1: 0.50
2: 0.75
3: 1.00
description:
1:
- "&cРазрывные стрелы I &8(Взрыв при попадании)"
2:
- "&cРазрывные стрелы II &8(Взрыв при попадании)"
3:
- "&cРазрывные стрелы III &8(Взрыв при попадании)"
actions:
# Делаем взрыв, который дамажит, но не ломает блоки
boom:
type: EXPLOSION
formula: "%level% * 1.0 + 0.5"
break_blocks: false
set_fire: false
# Красивые частицы и звук взрыва
fx:
type: PARTICLE
particle: EXPLOSION_LARGE
count: 3
speed: 0.1
sound:
type: PLAY_SOUND
sound: ENTITY_GENERIC_EXPLODE
Доступные триггеры (trigger)
| Триггер | Описание события | Подходящие предметы |
| MINE_BLOCK | Ломание обычных блоков | Кирки, лопаты, топоры |
| BREAK_CROP | Сбор созревшего урожая с грядки | Мотыги |
| ATTACK_ENTITY | Нанесение удара по игроку или мобу | Мечи, топоры |
| DEFEND_DAMAGE | Получение урона владельцем предмета | Шлемы, нагрудники, поножи, ботинки |
| KILL_MOB | Убийство существа | Мечи, топоры, луки |
| BOW_SHOOT | Выстрел стрелой из лука или арбалета | Луки, арбалеты |
| ARROW_HIT | Попадание выпущенной стрелы в цель или блок | Луки, арбалеты |
| SHOOT_TRIDENT | Запуск трезубца броском | Трезубцы |
| HIT_TRIDENT | Попадание трезубца в существо или блок | Трезубцы |
| WALK | Передвижение игрока по блокам | Ботинки |
| SNEAK_TOGGLE | Нажатие или отпускание клавиши Shift | Любая броня, предметы в руке |
| RIGHT_CLICK_ITEM | Нажатие ПКМ с предметом в руке | Оружие, инструменты, палочки |
| FISH_CATCH | Успешная подсечка рыбы или сокровища | Удочки |
Доступные типы действий (type в actions)
| Действие | Описание функционала | Основные параметры / Настройки |
| BREAK_AREA | Копание области (механика бура) | radius, values / formula (глубина), drop_to_inventory, auto_smelt |
| BREAK_TREE | Спил дерева целиком (механика лесоруба) | search_radius, values / formula (лимит блоков), drop_to_inventory |
| AUTO_SMELT | Автоматическая переплавка добычи в слитки/стекло | Включается как флаг в конвейере разрушения блоков |
| TELEPORT_DROPS | Сбор выпавших предметов прямо в инвентарь | Не требует параметров |
| EXP_MULTIPLIER | Множитель получаемого опыта за руду или мобов | formula / values (коэффициент) |
| ORE_MULTIPLIER | Множитель выпадения руды и ресурсов | formula / values (коэффициент) |
| DAMAGE_MULTIPLIER | Умножение входящего или исходящего урона | formula / values (множитель) |
| DAMAGE_ARMOR | Снятие дополнительной прочности с брони врага | formula / values (единицы урона по броне) |
| EXPLOSION | Создание взрыва в точке события | formula (сила), break_blocks: false, set_fire: false |
| LIGHTNING | Призыв разряда молнии | damage: true/false (наносить ли реальный урон) |
| POTION_SELF | Наложение эффекта зелья на владельца чар | effect, amplifier, values / formula (длительность) |
| POTION_TARGET | Наложение эффекта зелья на цель атаки | effect, amplifier, values / formula (длительность) |
| HEAL | Мгновенное восстановление единиц здоровья | formula / values (количество HP) |
| FEED | Восстановление шкалы сытости | formula / values (единицы еды) |
| GIVE_EXP | Начисление очков опыта игроку | formula / values (количество опыта) |
| REPLACE_BLOCK | Замена целевого блока на другой материал | to: MATERIAL_NAME (целевой материал) |
| PARTICLE | Создание визуальных эффектов частиц | particle, count, speed |
| PLAY_SOUND | Воспроизведение звука Bukkit | sound: SOUND_NAME |
| ACTIONBAR_MESSAGE | Вывод цветного сообщения над полосой хотбара | message: "&текст" |
| CANCEL_EVENT | Полная отмена базового игрового события | Не требует параметров |
Условия срабатывания (conditions)
| Параметр условия | Тип значения | Пример использования | Описание |
| require-sneaking | Boolean | require-sneaking: true | Срабатывает исключительно при зажатом Shift |
| require-not-sneaking | Boolean | require-not-sneaking: true | Срабатывает только если игрок стоит прямо |
| cooldown | Integer | cooldown: 5 | Перезарядка в секундах между срабатываниями |
| weather | List<String> | weather: [THUNDER, RAIN] | Работает только при выбранной погоде (CLEAR, RAIN, THUNDER) |
| worlds | List<String> | worlds: [world_nether] | Ограничение работы по конкретным мирам |
| biomes | List<String> | biomes: [DESERT, PLAINS] | Ограничение работы по биомам |
Динамические переменные формул (formula)
| Переменная | Контекст использования | Описание значения |
| %level% | Доступна везде | Текущий уровень зачарования на предмете |
| %distance% | Стрельба, трезубцы, атака | Расстояние в блоках от стрелка до цели / точки падения |
| %health% | Атака, получение урона, защита | Текущее количество единиц здоровья игрока |
| %max_health% | Атака, получение урона, защита | Максимальный запас здоровья игрока |
| %durability% | Любое действие с инструментом/оружием | Оставшаяся прочность используемого предмета |
- Зависимости
- WorldGuard, WorldEdit
- Команды и права
Команды
- /ce give <ник> <id_зачарования> <уровень> - выдать книгу игроку (право: ce.give)
- /ce reload - перезагрузить все файлы зачарований без перезапуска сервера (право: ce.reload)
- /grindstone - открыть меню точила для снятия чар