Non mais sérieux, c'est cool, c'est intéressant de comparer comment chacun a procédé!
Sinon, je ne sais pas si tu as testé tes livres obtenus par désenchantement, peut-être que ça marche, mais il y a un truc : Si j'ai bien compris, tu modifies l'objet enchanté de façon à le transformer en livre enchanté sans toucher à ses autres caractéristiques, notamment ses enchantements avec cette commande :
Code (cpp):
data merge entity @s {Item:{id:"minecraft:enchanted_book",Motion:[0.0,0.0,0.0],Age:0}}
Comme les enchantements d'objets sont stockés dans le tag "Enchantments", ça veut dire que le livre obtenu aura toujours les enchantements dans le même tag...
Or, les enchantements normalement stockés sur des livres enchantés sont répertoriés dans le tag "StoredEnchantments".
La différence entre les tags "StoredEnchantments" et "Enchantments", c'est que, contrairement aux enchantements stockés dans "Enchantments", ceux qui se trouvent dans "StoredEnchantments" n'ont pas d'effet tant qu'ils ne sont pas transférés sur un objet.
En gros, les enchantements des livres désenchantés obtenus via ton pack seront toujours actifs, donc le joueur pourrait facilement en abuser, comme en mettant toucher de soie sur le livre et avoir un "silk touch incassable", ou encore fortune pour ramasser plus de plantations...
Pour régler ça, tu devrais invoquer un livre d'enchantement à l'emplacement de l'item à désenchanter et copier les enchantements de l'item sur le tag StoredEnchantments du livre, genre :
Code (cpp):
/data modify entity @s<Le livre> Item.tag.StoredEnchantments merge from entity @e<L'item à désenchanter> Item.tag.Enchantments
(En fait, j'ai utilisé le /data modify uniquement pour mon Enchantment Infinity alors ça se pourrait que ça ne soit pas la bonne syntaxe...)
Et après, tu clear les enchantements de l'item avec :
Code (cpp):
/data remove entity @e<L'item à désenchanter> Item.tag.Enchantments
En plus, ça serait pas mal vu que j'imagine que ton système actuel fait disparaître l'objet désenchanté...
Cliquez pour agrandir...