Aller au contenu principal

Enchantment Creator

Enchantements personnalisés avec plus de 70 effets prêts à l'emploi, livres, butin et échanges. Aucun plugin supplémentaire requis.

Gratuitesv0.11RPG et progression
NécessiteTypeWriter0.9Paper1.21+Basic extension

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​

  1. 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.
  2. Vérifiez que l'extension Basic de TypeWriter est installée (voir la documentation de TypeWriter).
  3. 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 :

  1. Dans le panneau web de TypeWriter, ouvrez une page manifest et ajoutez une Custom Enchantment Definition.
  2. Définissez name sur Vampiric Strike, displayName sur Vampiric Strike, nameColor sur dark_red, maxLevel sur 3, et ajoutez les matériaux d'épée à supportedItems.
  3. Ajoutez une entrée d'action Lifesteal sur une page de séquence, et définissez healPercentage sur 0.2.
  4. De retour dans la définition, ajoutez une mécanique dans mechanics. Définissez event sur PLAYER_ATTACK, et sélectionnez l'entrée Lifesteal dans actions.
  5. Ajoutez une action Give Enchantment Book, sélectionnez votre définition dans customEnchantment, et définissez level. Publiez.
  6. Déclenchez l'action pour obtenir le livre, ou exécutez /enchantcreator give <player> Vampiric_Strike 2 après avoir ajouté un Enchantment Command Manifest. Combinez le livre avec une épée dans une enclume, puis frappez un mob.
astuce

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 les activeTriggers correspondant au niveau actuel. Avec cooldownEnabled activé, ils s'exécutent à nouveau à chaque cooldown tant que l'enchantement est actif ; désactivé, ils s'exécutent une seule fois lorsqu'il devient actif. Les inactiveTriggers s'exécutent lorsqu'il s'arrête. Les criteria doivent ê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énementSe déclenche lorsque
PLAYER_ATTACKLe joueur frappe directement une entité.
PLAYER_DEFENDLe joueur est blessé par une entité.
SHIELD_BLOCKLe joueur est touché alors qu'il bloque avec un bouclier.
BLOCK_BREAKLe joueur casse un bloc.
BOW_SHOOTLe joueur tire à l'arc ou à l'arbalète.
PROJECTILE_HITUn projectile tiré par le joueur touche quelque chose.
ITEM_CONSUMELe joueur mange ou boit.
PLAYER_DEATHLe joueur meurt.
PLAYER_INTERACTLe joueur fait un clic droit ou gauche.
ARMOR_EQUIPLe joueur équipe ou retire une armure.
ITEM_DAMAGEUn objet perd de la durabilité.
FALL_DAMAGELe joueur subit des dégâts de chute.
ENVIRONMENTAL_DAMAGELe joueur subit des dégâts non causés par une entité (se déclenche aussi pour les dégâts de chute).
PLAYER_MOVELe joueur se déplace vers un autre bloc (vérifié un tick sur quatre).
SNEAKLe joueur commence à se baisser (furtivité).
SPRINTLe joueur commence à sprinter.
remarque

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.

GroupeActionsÉvénement
CombatArmor Pierce, Beheading, Bleed, Blindness Strike, Cleave, Disarm, Executioner, Freeze Strike, Lifesteal, Lightning Strike, Poison Strike, Silence, Vampiric Aura, Wither StrikePLAYER_ATTACK
Armure, lorsqu'on est touchéDeflect, Enlightened Armor, Evasion, Frozen Armor, Molten Armor, Regeneration Aura, Resistance Aura, Thorns Advanced, Toxic Aura, Voodoo Armor, GearingPLAYER_DEFEND
Armure, dégâtsAngel WingsFALL_DAMAGE
Armure, dégâtsImplosion Armor, Curse of Vulnerabilitytout événement de dégâts (PLAYER_DEFEND, FALL_DAMAGE, ENVIRONMENTAL_DAMAGE)
Armure, équipementAnti Knockback, Health BoostARMOR_EQUIP
Armure, durabilitéHardened ArmorITEM_DAMAGE
Arc, tirHoming Arrow, Volley ArrowBOW_SHOOT
Arc, impactExplosive Arrow, Teleport ArrowPROJECTILE_HIT
Arc, dégâtsEnder Arrow, Healing Arrow, Lightning Arrow, Piercing Shot, Pull Arrow, Push Arrow, Sniper Arrow, Venom Arrow, Web Arrow, Wither ArrowPLAYER_ATTACK (coups directs uniquement, voir la note)
OutilsArea Miner, Auto Smelt, Experience Boost, Haste, Indestructible, Magnet, Oxygenate, Spawners Silk Touch, Telepathy, Timber, Treasure Hunter, Vein MinerBLOCK_BREAK
OutilsBedrock Breaker, Green Thumb, Night VisionPLAYER_INTERACT
OutilsAgricultural HarvestBLOCK_BREAK ; récolte les cultures mûres autour du bloc cassé (jusqu'à radius 8)
SpécialesAquatic Speed, Feeder, Lava WalkerPLAYER_MOVE
SpécialesElytra Boost, LaunchPLAYER_INTERACT
SpécialesCurse of SluggishnessPLAYER_ATTACK
SpécialesElytra ShieldENVIRONMENTAL_DAMAGE
SpécialesSoulboundPLAYER_DEATH
UtilitairesClient Particle Effect, Give Enchantment Bookn'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.

CommandeDescription
/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​

PermissionAutorise
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
Commandes1
Manifestes3

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.