Enchantment Creator
Обзор
Enchantment Creator добавляет на ваш сервер настоящие зачарования, которые полностью определяются в веб-панели TypeWriter. Они регистрируются в собственном реестре зачарований Minecraft в пространстве имён typewriter, поэтому отображаются на предметах, в наковальнях и в столе зачарований так же, как ванильные, без ресурспака и дополнительных плагинов.
Вы описываете зачарование в записи-определении (название, цвет, поддерживаемые предметы, максимальный уровень, стоимость, активные слоты), а затем задаёте ему поведение. Для этого есть два способа: стандартное определение запускает триггеры TypeWriter, пока зачарованный предмет надет или находится в руке, а пользовательское определение перечисляет механики, каждая из которых реагирует на игровое событие (атака, разрушение блока, выстрел из лука, урон от падения...) и выполняет действия. В комплекте с расширением идёт более 70 готовых записей-действий (кража жизни, жилковый шахтёр, самонаводящиеся стрелы, замороженная броня...), которые вы подключаете к механикам.
Возможности
- Настоящие зачарования — регистрируются в реестре зачарований сервера, с цветным названием, максимальным уровнем, стоимостью в наковальне, весом и стоимостью в столе зачарований.
- Два типа определений — на основе триггеров (
enchantment_definition) или на основе механик (custom_enchantment_definition). - 16 игровых событий — атака, защита, разрушение блока, выстрел из лука, попадание снаряда, урон от падения, повреждение предмета, надевание брони, перемещение, приседание, бег и другие.
- Более 70 готовых эффектов — действия для брони, лука, боя, инструментов и особые, у каждого свои поля.
- Зачарованные книги — выдавайте книги из действия или командой, с пользовательским названием и описанием (lore).
- Интеграция с миром — книги появляются в сгенерированных сундуках с добычей (
treasureChance) и в обмене с библиотекарями (tradeChance). - Стол зачарований и наковальня — пользовательские зачарования могут предлагаться столом зачарований, ограничиваться поддерживаемыми предметами и быть взаимоисключающими в наковальне.
- Чёрный список ванильных — уберите выбранные ванильные зачарования из стола зачарований.
- Шанс и уровень для каждой механики — запускайте механику только в части случаев или только на одном уровне зачарования.
- Клиентские частицы — действие с частицами, которое видит только игрок.
Установка
- Используйте сервер Paper 1.21 или новее с Java 21. Расширение создаёт зачарования через реестр сервера, поэтому на старых версиях оно не работает.
- Убедитесь, что установлено расширение Basic для TypeWriter (см. документацию TypeWriter).
- Поместите JAR-файл Enchantment Creator в
plugins/Typewriter/extensions/и перезапустите сервер.
Других плагинов не требуется.
Начало работы
Создайте зачарование для меча «Vampiric Strike», которое лечит владельца при каждом ударе:
- В веб-панели TypeWriter откройте страницу manifest и добавьте Custom Enchantment Definition.
- Задайте
nameравнымVampiric Strike,displayNameравнымVampiric Strike,nameColorравнымdark_red,maxLevelравным3и добавьте материалы мечей вsupportedItems. - Добавьте запись-действие Lifesteal на страницу sequence и задайте
healPercentageравным0.2. - Вернитесь к определению и добавьте механику в
mechanics. ЗадайтеeventравнымPLAYER_ATTACKи выберите запись Lifesteal вactions. - Добавьте действие Give Enchantment Book, выберите своё определение в
customEnchantmentи задайтеlevel. Опубликуйте. - Запустите действие, чтобы получить книгу, либо выполните
/enchantcreator give <player> Vampiric_Strike 2после добавления Enchantment Command Manifest. Объедините книгу с мечом в наковальне и ударьте моба.
Эффект сам по себе не масштабируется с уровнем зачарования. Чтобы сделать уровень 3 сильнее, добавьте несколько механик с runOnLevel, равным 1, 2 и 3, каждая из которых выполняет действие с разными значениями. runOnLevel равный 0 означает любой уровень.
Как это работает
Расширение проверяет каждого игрока в сети каждые 5 тиков (четверть секунды), чтобы узнать, какие из ваших зачарований он использует. Учитываются только основная рука, вторая рука и броня, и только предметы, материал которых указан в supportedItems. Используется наивысший найденный уровень. Поэтому между надеванием предмета и началом действия его эффектов может пройти небольшая задержка.
Два типа определений работают по-разному:
- Стандартное определение (
enchantment_definition) запускаетactiveTriggersдля текущего уровня. Если включёнcooldownEnabled, они запускаются снова каждыеcooldown, пока зачарование активно; если выключен — запускаются один раз, когда оно становится активным.inactiveTriggersзапускаются, когда оно перестаёт действовать.criteriaдолжны выполняться. - Пользовательское определение (
custom_enchantment_definition) запускает свои механики, когда происходит соответствующее игровое событие.
Записи-действия считывают игровое событие, которое их запустило. Действие что-то делает только тогда, когда используется в механике с тем событием, для которого оно написано (например, Vein Miner работает только на BLOCK_BREAK).
События зачарований
event механики — одно из следующих:
| Событие | Срабатывает, когда |
|---|---|
PLAYER_ATTACK | Игрок напрямую бьёт сущность. |
PLAYER_DEFEND | Игроку наносит урон сущность. |
SHIELD_BLOCK | Игрока бьют, пока он блокирует щитом. |
BLOCK_BREAK | Игрок разрушает блок. |
BOW_SHOOT | Игрок стреляет из лука или арбалета. |
PROJECTILE_HIT | Снаряд, выпущенный игроком, во что-то попадает. |
ITEM_CONSUME | Игрок ест или пьёт. |
PLAYER_DEATH | Игрок умирает. |
PLAYER_INTERACT | Игрок кликает правой или левой кнопкой. |
ARMOR_EQUIP | Игрок надевает или снимает броню. |
ITEM_DAMAGE | Предмет теряет прочность. |
FALL_DAMAGE | Игрок получает урон от падения. |
ENVIRONMENTAL_DAMAGE | Игрок получает урон, не вызванный сущностью (срабатывает и при уроне от падения). |
PLAYER_MOVE | Игрок перемещается на другой блок (проверяется каждый четвёртый тик). |
SNEAK | Игрок начинает приседать. |
SPRINT | Игрок начинает бежать. |
PLAYER_ATTACK срабатывает, когда игрок является непосредственным источником урона, то есть при ударах в ближнем бою. Урон от стрелы наносит сама стрела, поэтому в текущей версии он не вызывает PLAYER_ATTACK. Поэтому действия со стрелами, считывающие событие урона (отмечены ниже), действуют только при прямых попаданиях.
Готовые действия
Все записи-действия используются внутри механики (actions) или из любой последовательности. У каждой есть стандартные поля criteria, modifiers и triggers, а также собственные поля: см. страницы записей. Столбец «Событие» показывает, какое event механики нужно действию.
| Группа | Действия | Событие |
|---|---|---|
| Бой | Armor Pierce, Beheading, Bleed, Blindness Strike, Cleave, Disarm, Executioner, Freeze Strike, Lifesteal, Lightning Strike, Poison Strike, Silence, Vampiric Aura, Wither Strike | PLAYER_ATTACK |
| Броня, при получении удара | Deflect, Enlightened Armor, Evasion, Frozen Armor, Molten Armor, Regeneration Aura, Resistance Aura, Thorns Advanced, Toxic Aura, Voodoo Armor, Gearing | PLAYER_DEFEND |
| Броня, урон | Angel Wings | FALL_DAMAGE |
| Броня, урон | Implosion Armor, Curse of Vulnerability | любое событие урона (PLAYER_DEFEND, FALL_DAMAGE, ENVIRONMENTAL_DAMAGE) |
| Броня, надевание | Anti Knockback, Health Boost | ARMOR_EQUIP |
| Броня, прочность | Hardened Armor | ITEM_DAMAGE |
| Лук, выстрел | Homing Arrow, Volley Arrow | BOW_SHOOT |
| Лук, попадание | Explosive Arrow, Teleport Arrow | PROJECTILE_HIT |
| Лук, урон | Ender Arrow, Healing Arrow, Lightning Arrow, Piercing Shot, Pull Arrow, Push Arrow, Sniper Arrow, Venom Arrow, Web Arrow, Wither Arrow | PLAYER_ATTACK (только прямые попадания, см. примечание) |
| Инструменты | Area Miner, Auto Smelt, Experience Boost, Haste, Indestructible, Magnet, Oxygenate, Spawners Silk Touch, Telepathy, Timber, Treasure Hunter, Vein Miner | BLOCK_BREAK |
| Инструменты | Bedrock Breaker, Green Thumb, Night Vision | PLAYER_INTERACT |
| Инструменты | Agricultural Harvest | BLOCK_BREAK; собирает созревший урожай вокруг сломанного блока (до radius 8) |
| Особые | Aquatic Speed, Feeder, Lava Walker | PLAYER_MOVE |
| Особые | Elytra Boost, Launch | PLAYER_INTERACT |
| Особые | Curse of Sluggishness | PLAYER_ATTACK |
| Особые | Elytra Shield | ENVIRONMENTAL_DAMAGE |
| Особые | Soulbound | PLAYER_DEATH |
| Служебные | Client Particle Effect, Give Enchantment Book | любое |
Команды
Команда задаётся записью Enchantment Command Manifest, которую вы создаёте. Её название, право и сообщения — это поля записи; показаны значения по умолчанию.
| Команда | Описание |
|---|---|
/enchantcreator give <player> <enchant> [level] | Выдать зачарованную книгу игроку в сети. <enchant> — это name или displayName записи, с подчёркиваниями вместо пробелов. Уровень по умолчанию — 1. |
Права
| Право | Что даёт |
|---|---|
enchantcreator.admin | /enchantcreator give (поле adminPermission записи). |
Записи
Записей: 75, сгенерированы из исходного кода расширения.
Действия71
- Agricultural Harvest ActionOptimized action for harvesting crops in an AOE, replanting immediately, and merging drops.
- Angel Wings ActionReduces or completely negates fall damage
- Anti Knockback ActionProvides knockback resistance when equipped
- Aquatic Speed ActionDrastically increases movement speed underwater (Dolphin's Grace)
- Area Miner ActionMines blocks in a 3x3 area based on the block broken
- Armor Pierce ActionIgnores armor calculations during melee combat
- Auto Smelt ActionAutomatically smelts mined blocks and yields slightly more experience
- Bedrock Breaker ActionExtremely rare chance to successfully mine Bedrock when left-clicking it
- Beheading ActionHas a chance to drop the victim's head on kill
- Bleed ActionApplies a bleeding effect over time to the target
- Blindness Strike ActionBlinds the target struck
- Cleave ActionDeals area-of-effect (AoE) damage to enemies around the target
- Client Particle EffectRender a Typewriter-aware client particle effect
- Curse of Sluggishness ActionCurse: Applies Slowness and Weakness to the user when attacking
- Curse of Vulnerability ActionCurse: Multiplies all damage taken by the player
- Deflect ActionChance to deflect incoming projectiles back at the attacker
- Disarm ActionForces the attacked player to drop the item in their main hand
- Elytra Boost ActionGives a periodic boost while gliding with Elytra when right-clicking
- Elytra Shield ActionReduces kinetic damage taken from flying into walls
- Ender Arrow ActionDeals massive bonus true damage to End mobs (Enderman, Shulker, Dragon, Endermite)
- Enlightened Armor ActionHas a chance to heal you when attacked
- Evasion ActionGives a chance to completely dodge and cancel incoming damage
- Executioner ActionHas a chance to instantly kill targets below a certain health threshold
- Experience Boost ActionMined blocks drop extra experience
- Explosive Arrow ActionCauses a projectile to explode on impact without breaking blocks
- Feeder ActionPassively restores food while walking
- Freeze Strike ActionSlows and freezes the target
- Frozen Armor ActionSlows and freezes the attacker when they strike you
- Gearing ActionGrants brief speed when hit
- Give Enchantment BookGive a book with a custom enchantment
- Green Thumb ActionPassively bone-meals nearby crops when right-clicking
- Hardened Armor ActionHas a chance to ignore durability loss
- Haste ActionPassively grants Haste while breaking blocks
- Healing Arrow ActionHeals the target instead of damaging them
- Health Boost ActionGrants extra maximum health when equipped
- Homing Arrow ActionModifies a shot arrow to magnetically track the nearest enemy
- Implosion Armor ActionTriggers a massive shockwave when your health drops critically low
- Indestructible ActionHas a chance to repair the tool instead of taking damage when mining
- Launch ActionLaunches the player forward when right clicking with the item
- Lava Walker ActionFreezes lava under your feet into basalt temporarily
- Lifesteal ActionHeals the player based on the damage dealt
- Lightning Arrow ActionStrikes lightning where the arrow hits
- Lightning Strike ActionStrikes lightning on the hit target
- Magnet ActionSucks nearby items towards the player when mining
- Molten Armor ActionSets the attacker on fire when they strike you
- Night Vision ActionApplies Night Vision when interacting with the tool
- Oxygenate ActionRestores breath while breaking blocks underwater
- Piercing Shot ActionCauses the arrow to act as true damage, ignoring armor
- Poison Strike ActionPoisons the target struck
- Pull Arrow ActionPulls the struck target towards the shooter
- Push Arrow ActionInflicts massive knockback to the struck target
- Regeneration Aura ActionGrants passive regeneration when attacked
- Resistance Aura ActionGrants a defensive buff (resistance) when attacked in combat
- Silence ActionSilences the target, applying severe mining fatigue and weakness to prevent them from fighting back effectively
- Sniper Arrow ActionIncreases damage based on the distance the arrow traveled
- Soulbound ActionKeeps the enchanted item in your inventory upon death
- Spawners Silktouch ActionAllows the player to mine and collect Mob Spawners
- Telepathy ActionPlaces mined blocks and items directly into your inventory
- Teleport Arrow ActionTeleports the shooter to the arrow's impact location
- Thorns Advanced ActionReflects a percentage of incoming melee damage back to the attacker
- Timber ActionChops down an entire tree by breaking its bottom log
- Toxic Aura ActionEmits a toxic cloud, poisoning nearby enemies when you take heavy damage
- Treasure Hunter ActionMining simple blocks like Dirt or Stone has a chance to drop Emeralds
- Vampiric Aura ActionHeals all nearby allies when an enemy is killed
- Vein Miner ActionMines a vein of connected identical ores
- Venom Arrow ActionPoisons the target struck by the arrow
- Volley Arrow ActionShoots additional arrows in a cone shape
- Voodoo Armor ActionHas a chance to apply Weakness to the attacker
- Web Arrow ActionEncases the target in a temporary cobweb
- Wither Arrow ActionApplies wither effect to the target struck by the arrow
- Wither Strike ActionApplies wither effect to the target struck
Команды1
- Enchantment Command ManifestAdmin command for giving custom enchantment books
Манифесты3
- Custom Enchantment DefinitionDefines a custom enchantment with modular mechanics
- Enchantment DefinitionDefines a custom enchantment
- Vanilla Enchantment Blacklist DefinitionBlacklist vanilla enchantments from the enchanting table
Устранение неполадок
Эффект ничего не делает. Действие должно соответствовать event механики (см. таблицу выше): действие, считывающее событие разрушения блока, ничего не делает на PLAYER_ATTACK. Предмет должен быть в supportedItems, находиться в руке или быть надетым как броня, а criteria, chance и runOnLevel механики должны выполняться. Механика с runOnLevel 2 запускается только тогда, когда наивысший уровень равен ровно 2.
Зачарования нет в игре. Определения регистрируются при запуске расширения, при входе игрока и при выдаче книги. Проверьте консоль на наличие Failed to reflectively register или Failed to register enchantments during pre-login и убедитесь, что сервер — Paper 1.21 или новее.
Книгу нельзя применить к моему предмету. В наковальне книгу можно применить только к предметам, перечисленным в supportedItems. Два зачарования, указанные в exclusiveWith друг у друга, нельзя совмещать: результат в наковальне убирается. Это взаимоисключение действует только в наковальне.
Игроки никогда не видят моё зачарование в столе зачарований. В столе weight используется как процент: 1 означает около 1% шанса за бросок. Увеличьте его или задайте treasureChance и tradeChance, чтобы раздавать книги через добычу и библиотекарей. weight равный 0 отключает предложение в столе.
/enchantcreator give сообщает, что зачарование неизвестно. Имя сопоставляется с name или displayName записи, приведённым к нижнему регистру, с пробелами, замёнными на подчёркивания. Используйте точное название из записи и сначала опубликуйте страницу.
Ванильное зачарование всё равно появляется. Чёрный список убирает предложения только из стола зачарований; наковальни, добыча и обмен не затрагиваются. Консоль сообщает Unable to resolve vanilla enchantments for blacklist, если имя указано неверно.