Quelques trucs à dire sur ton code :
Tu testes deux fois si le bloc est une enclume ce qui représente un problème d'optimisation, je pense que tu seras d'accord :
on right click on anvil:
if clicked block is an anvil:
Aussi il y a moyen de garder la direction de l'enclume. Elle se pose toujours face sud avec ta méthode. En fait, faut se pencher sur la différence entre enclume en bon état et enclume endommagée. L'enclume en bon état face sud a la métadonnée 0, ouest = 1, nord = 2, est = 3. Les enclumes en bon état ont donc les métadonnée 0 à 3 en fonction de leur direction. Sur le même principe, les enclumes un peu endommagées ont les métadonnées de 4 à 7 et très endommagé, c'est 8 à 11. Pour réparer ton enclume, tu peux donc regarder si l'enclume est endommagée un peu ou beaucoup, et retirer 4 à la métadonnée pour garder la même direction puisque par exemple, avec 5 (enclume un peu endommagée orientée ouest), tu obtiens 1 (enclume en bon état orientée ouest) :
if data value of targeted block is more than 3:
remove 4 from data value of event-block
Ensuite, on peut toujours casser l'enclume si on fait tout ce qu'on a à faire d'une traite genre sans sortir de l'enclume, c'est pas impossible sur un serveur public. Tu peux palier à ça en changeant régulièrement la métadonnée au lieu de le faire seulement quand tu cliques dessus, tant que le joueur la regarde :
while targeted block is anvil:
if data value of targeted block is more than 3:
remove 4 from data value of event-block
wait 15 seconds
Et donc à la fin, tu as ça qui fonctionne mieux :
on right click on anvil:
if player's world is "pvp":
while targeted block is anvil:
if data value of targeted block is more than 3:
remove 4 from data value of event-block
wait 15 seconds