Enchantment Creator
Présentation
Enchantment Creator ajoute de vrais enchantements à votre serveur, définis entièrement depuis le panneau web de TypeWriter. Ils sont enregistrés dans le registre d'enchantements de Minecraft sous le namespace typewriter, de sorte qu'ils apparaissent sur les objets, dans les enclumes et dans la table d'enchantement comme les enchantements vanilla, sans resource pack ni plugin supplémentaire.
Vous décrivez l'enchantement dans une entrée de définition (nom, couleur, objets compatibles, niveau maximum, coûts, emplacements actifs), puis vous lui donnez un comportement. Il y a deux façons de procéder : une définition standard exécute des triggers TypeWriter tant que l'objet enchanté est porté ou tenu en main, et une définition personnalisée liste des mécaniques, chacune réagissant à un événement de jeu (attaque, casse de bloc, tir à l'arc, dégâts de chute…) et exécutant des actions. L'extension fournit plus de 70 entrées d'action prêtes à l'emploi (vol de vie, minage de filon, flèches à tête chercheuse, armure gelée…) que vous branchez sur les mécaniques.
Fonctionnalités
- De vrais enchantements — enregistrés dans le registre d'enchantements du serveur, avec un nom coloré, un niveau maximum, un coût d'enclume, un poids et des coûts de table d'enchantement.
- Deux types de définitions — basées sur des triggers (
enchantment_definition) ou sur des mécaniques (custom_enchantment_definition). - 16 événements de jeu — attaque, défense, casse de bloc, tir à l'arc, impact de projectile, dégâts de chute, dégâts d'objet, équipement d'armure, déplacement, furtivité, sprint et plus encore.
- Plus de 70 effets prêts à l'emploi — actions d'armure, d'arc, de combat, d'outil et spéciales, chacune avec ses propres champs.
- Livres enchantés — donnez des livres depuis une action ou une commande, avec un nom et un lore personnalisés.
- Intégration au monde — les livres apparaissent dans les coffres de butin générés (
treasureChance) et dans les échanges des bibliothécaires (tradeChance). - Table d'enchantement et enclume — les enchantements personnalisés peuvent être proposés par la table d'enchantement, limités aux objets compatibles et rendus mutuellement exclusifs dans l'enclume.
- Liste noire vanilla — retirez certains enchantements vanilla de la table d'enchantement.
- Chance et niveau par mécanique — exécutez une mécanique seulement un certain pourcentage du temps, ou seulement à un niveau d'enchantement donné.
- Particules côté client — une action de particules visible uniquement par le joueur.
Installation
- Utilisez un serveur Paper 1.21 ou ultérieur, avec Java 21. L'extension construit les enchantements via le registre du serveur ; elle ne fonctionne donc pas sur les versions plus anciennes.
- Vérifiez que l'extension Basic de TypeWriter est installée (voir la documentation de TypeWriter).
- Placez le JAR d'Enchantment Creator dans
plugins/Typewriter/extensions/et redémarrez le serveur.
Aucun autre plugin n'est requis.
Premiers pas
Créez un enchantement d'épée « Vampiric Strike » qui soigne le porteur à chaque coup :
- Dans le panneau web de TypeWriter, ouvrez une page manifest et ajoutez une Custom Enchantment Definition.
- Définissez
namesurVampiric Strike,displayNamesurVampiric Strike,nameColorsurdark_red,maxLevelsur3, et ajoutez les matériaux d'épée àsupportedItems. - Ajoutez une entrée d'action Lifesteal sur une page de séquence, et définissez
healPercentagesur0.2. - De retour dans la définition, ajoutez une mécanique dans
mechanics. DéfinissezeventsurPLAYER_ATTACK, et sélectionnez l'entrée Lifesteal dansactions. - Ajoutez une action Give Enchantment Book, sélectionnez votre définition dans
customEnchantment, et définissezlevel. Publiez. - Déclenchez l'action pour obtenir le livre, ou exécutez
/enchantcreator give <player> Vampiric_Strike 2après avoir ajouté un Enchantment Command Manifest. Combinez le livre avec une épée dans une enclume, puis frappez un mob.
L'effet ne progresse pas tout seul avec le niveau de l'enchantement. Pour que le niveau 3 soit plus puissant, ajoutez plusieurs mécaniques avec runOnLevel défini sur 1, 2 et 3, chacune exécutant une action avec des valeurs différentes. runOnLevel à 0 signifie tous les niveaux.
Fonctionnement
L'extension vérifie chaque joueur en ligne tous les 5 ticks (un quart de seconde) pour savoir lesquels de vos enchantements il utilise. Seuls comptent la main principale, la seconde main et l'armure, et uniquement les objets dont le matériau figure dans supportedItems. Le niveau le plus élevé trouvé est celui utilisé. Un court délai peut donc s'écouler entre l'équipement d'un objet et le début de ses effets.
Les deux types de définitions fonctionnent différemment :
- Une définition standard (
enchantment_definition) exécute lesactiveTriggerscorrespondant au niveau actuel. AveccooldownEnabledactivé, ils s'exécutent à nouveau à chaquecooldowntant que l'enchantement est actif ; désactivé, ils s'exécutent une seule fois lorsqu'il devient actif. LesinactiveTriggerss'exécutent lorsqu'il s'arrête. Lescriteriadoivent être satisfaits. - Une définition personnalisée (
custom_enchantment_definition) exécute ses mécaniques lorsque l'événement de jeu correspondant se produit.
Les entrées d'action lisent l'événement de jeu qui les a déclenchées. Une action n'a d'effet que lorsqu'elle est utilisée dans une mécanique avec l'événement pour lequel elle a été écrite (par exemple, Vein Miner ne fonctionne que sur BLOCK_BREAK).
Événements d'enchantement
L'event d'une mécanique est l'un des suivants :
| Événement | Se déclenche lorsque |
|---|---|
PLAYER_ATTACK | Le joueur frappe directement une entité. |
PLAYER_DEFEND | Le joueur est blessé par une entité. |
SHIELD_BLOCK | Le joueur est touché alors qu'il bloque avec un bouclier. |
BLOCK_BREAK | Le joueur casse un bloc. |
BOW_SHOOT | Le joueur tire à l'arc ou à l'arbalète. |
PROJECTILE_HIT | Un projectile tiré par le joueur touche quelque chose. |
ITEM_CONSUME | Le joueur mange ou boit. |
PLAYER_DEATH | Le joueur meurt. |
PLAYER_INTERACT | Le joueur fait un clic droit ou gauche. |
ARMOR_EQUIP | Le joueur équipe ou retire une armure. |
ITEM_DAMAGE | Un objet perd de la durabilité. |
FALL_DAMAGE | Le joueur subit des dégâts de chute. |
ENVIRONMENTAL_DAMAGE | Le joueur subit des dégâts non causés par une entité (se déclenche aussi pour les dégâts de chute). |
PLAYER_MOVE | Le joueur se déplace vers un autre bloc (vérifié un tick sur quatre). |
SNEAK | Le joueur commence à se baisser (furtivité). |
SPRINT | Le joueur commence à sprinter. |
PLAYER_ATTACK se déclenche lorsque le joueur est l'auteur direct des dégâts, c'est-à-dire pour les coups au corps à corps. Les dégâts d'une flèche sont infligés par la flèche, ils ne déclenchent donc pas PLAYER_ATTACK dans la version actuelle. Les actions de flèche qui lisent un événement de dégâts (signalées ci-dessous) n'agissent donc que sur les coups directs.
Actions prêtes à l'emploi
Toutes les entrées d'action s'utilisent dans une mécanique (actions), ou depuis n'importe quelle séquence. Chacune possède les champs standard criteria, modifiers et triggers, ainsi que ses propres champs : voir les pages des entrées. La colonne Événement indique l'event de la mécanique dont l'action a besoin.
| Groupe | Actions | Événement |
|---|---|---|
| Combat | Armor Pierce, Beheading, Bleed, Blindness Strike, Cleave, Disarm, Executioner, Freeze Strike, Lifesteal, Lightning Strike, Poison Strike, Silence, Vampiric Aura, Wither Strike | PLAYER_ATTACK |
| Armure, lorsqu'on est touché | Deflect, Enlightened Armor, Evasion, Frozen Armor, Molten Armor, Regeneration Aura, Resistance Aura, Thorns Advanced, Toxic Aura, Voodoo Armor, Gearing | PLAYER_DEFEND |
| Armure, dégâts | Angel Wings | FALL_DAMAGE |
| Armure, dégâts | Implosion Armor, Curse of Vulnerability | tout événement de dégâts (PLAYER_DEFEND, FALL_DAMAGE, ENVIRONMENTAL_DAMAGE) |
| Armure, équipement | Anti Knockback, Health Boost | ARMOR_EQUIP |
| Armure, durabilité | Hardened Armor | ITEM_DAMAGE |
| Arc, tir | Homing Arrow, Volley Arrow | BOW_SHOOT |
| Arc, impact | Explosive Arrow, Teleport Arrow | PROJECTILE_HIT |
| Arc, dégâts | Ender Arrow, Healing Arrow, Lightning Arrow, Piercing Shot, Pull Arrow, Push Arrow, Sniper Arrow, Venom Arrow, Web Arrow, Wither Arrow | PLAYER_ATTACK (coups directs uniquement, voir la note) |
| Outils | Area Miner, Auto Smelt, Experience Boost, Haste, Indestructible, Magnet, Oxygenate, Spawners Silk Touch, Telepathy, Timber, Treasure Hunter, Vein Miner | BLOCK_BREAK |
| Outils | Bedrock Breaker, Green Thumb, Night Vision | PLAYER_INTERACT |
| Outils | Agricultural Harvest | BLOCK_BREAK ; récolte les cultures mûres autour du bloc cassé (jusqu'à radius 8) |
| Spéciales | Aquatic Speed, Feeder, Lava Walker | PLAYER_MOVE |
| Spéciales | Elytra Boost, Launch | PLAYER_INTERACT |
| Spéciales | Curse of Sluggishness | PLAYER_ATTACK |
| Spéciales | Elytra Shield | ENVIRONMENTAL_DAMAGE |
| Spéciales | Soulbound | PLAYER_DEATH |
| Utilitaires | Client Particle Effect, Give Enchantment Book | n'importe lequel |
Commandes
La commande est une entrée Enchantment Command Manifest que vous créez. Son nom, sa permission et ses messages sont des champs de l'entrée ; les valeurs par défaut sont indiquées.
| Commande | Description |
|---|---|
/enchantcreator give <player> <enchant> [level] | Donne un livre enchanté à un joueur en ligne. <enchant> est le name ou le displayName de l'entrée, avec des tirets bas à la place des espaces. Le niveau vaut 1 par défaut. |
Permissions
| Permission | Autorise |
|---|---|
enchantcreator.admin | /enchantcreator give (le champ adminPermission de l'entrée). |
Entrées
75 entrées, générées depuis la source de l'extension.
Actions71
- 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
Commandes1
- Enchantment Command ManifestAdmin command for giving custom enchantment books
Manifestes3
- Custom Enchantment DefinitionDefines a custom enchantment with modular mechanics
- Enchantment DefinitionDefines a custom enchantment
- Vanilla Enchantment Blacklist DefinitionBlacklist vanilla enchantments from the enchanting table
Dépannage
L'effet ne fait rien. L'action doit correspondre à l'event de la mécanique (voir le tableau ci-dessus) : une action qui lit un événement de casse de bloc ne fait rien sur PLAYER_ATTACK. L'objet doit figurer dans supportedItems, être tenu en main ou porté comme armure, et les criteria, chance et runOnLevel de la mécanique doivent être satisfaits. Une mécanique avec runOnLevel à 2 ne s'exécute que lorsque le niveau le plus élevé est exactement 2.
L'enchantement est absent en jeu. Les définitions sont enregistrées au démarrage de l'extension, lorsqu'un joueur se connecte et lorsqu'un livre est donné. Vérifiez la console à la recherche de Failed to reflectively register ou Failed to register enchantments during pre-login, et assurez-vous que le serveur est sous Paper 1.21 ou ultérieur.
Le livre ne peut pas être appliqué à mon objet. Dans l'enclume, un livre ne peut être appliqué qu'aux objets listés dans supportedItems. Deux enchantements listés dans le exclusiveWith l'un de l'autre ne peuvent pas être combinés : le résultat de l'enclume est supprimé. Cette exclusivité n'est appliquée que dans l'enclume.
Les joueurs ne voient jamais mon enchantement dans la table d'enchantement. Dans la table, weight est utilisé comme un pourcentage : 1 correspond à environ 1 % de chance par tirage. Augmentez-le, ou définissez treasureChance et tradeChance pour distribuer des livres via le butin et les bibliothécaires. Un weight de 0 désactive la proposition par la table.
/enchantcreator give indique que l'enchantement est inconnu. Le nom est comparé au name ou au displayName de l'entrée, en minuscules et avec les espaces remplacés par des tirets bas. Utilisez le nom exact de l'entrée, et publiez d'abord la page.
Un enchantement vanilla apparaît toujours. La liste noire ne retire que les propositions de la table d'enchantement ; les enclumes, le butin et les échanges ne sont pas concernés. La console signale Unable to resolve vanilla enchantments for blacklist si un nom est invalide.