Vous pouvez vous abonner à notre compte Twitter sur lequel sont postés les actualités autour de Minecraft et des liens rapides vers le Wiki 

Fonction

De Minecraft Wiki
Aller à : navigation, rechercher
Version Java.png

Version Java uniquement

Les fonctions permettent aux joueurs d'exécuter des listes de commandes en utilisant des fichiers texte avec pour extension .mcfunction.

Utilisation[modifier | modifier le wikicode]

Les fonctions sont des fichiers texte créés par des joueurs contenant des commandes. Pour utiliser les fonctions sur votre monde, vous devez placer vos fichiers dans le dossier data/functions de votre monde. Il existe actuellement trois façons d'exécuter des fonctions. Pour chacune d'entre elles, la fonction à exécuter doit être spécifiée en utilisant namespace:chemin/vers/la/fonction. Par exemple custom:example/test fait référence à la fonction située dans data/functions/custom/example/test.mcfunction.

Une fonction doit obligatoirement être placée dans un sous-dossier, par exemple, si le chemin est data/functions/test.mcfunction, elle ne sera pas chargée par le jeu, en revanche data/functions/custom/test.mcfunction. Il faut aussi que les fichiers de fonctions utilisent l'extension .mcfunction.

Utiliser les fonctions présente de nombreux avantages.

  • Vous pouvez réduire la taille de vos systèmes de blocs de commande en créant des fonctions contenant un tas de commandes dépendantes les unes des autres et potentiellement utilisables dans plusieurs systèmes.
  • Simplifier la création de vos systèmes, vous pouvez déplacer, supprimer, ajouter et même commenter (avec # commentaire) des commandes au milieu de votre système sans devoir faire la même chose avec les blocs de commande, ce qui peut vite devenir un véritable casse-tête.
  • Pour un même système fait avec des blocs de commande ou une fonction, l’exécution de la fonction sera plus optimisée et générera moins de lags que les blocs de commande.
  • Les fonctions peuvent vous permettre de créer des commandes personnalisables à l'aide de la commande /function.
  • L'utilisation de récursivité (invoquer des fonctions en boucle) est possible et ne génère normalement ni crash ni lag.
  • Vous pouvez dorénavant colorer vos commandes (exemple: noms personnalisés, nom de scoreboard, etc...) en utilisant le système de codes de mise en forme du jeu directement dans les fichiers .mcfunction. Avant, il n'y avait pas d'autre choix que d'utiliser des programmes externes comme MCEdit et autres.

En revanche, les fonctions manquent d'une fonctionnalité pouvant être importante pour certains systèmes, le principe de bloc de commande conditionnel. Il peut néanmoins être reproduit à l'aide de tableau de score et de la commande /stats mais cela devient plus complexe à mettre en place et à utiliser.

/function[modifier | modifier le wikicode]

La commande /function permet au joueur d’exécuter la fonction une seule fois. Les commandes dans la fonction sont exécutées en tant qu'entité ou bloc de commande qui a exécuté la commande /function.

/function <namespace:chemin/vers/la/fonction>

/gamerule gameLoopFunction [avant 1.13][modifier | modifier le wikicode]

La règle de jeu /gamerule gameLoopFunction exécute la fonction à chaque tick. Les commandes de la fonction sont exécutées par le serveur lui-même, de la même façon que les commandes que vous exécutez dans la console de votre serveur.

/gamerule gameLoopFunction <namespace:chemin/vers/la/fonction>

Récompenses des progrès[modifier | modifier le wikicode]

Les progrès peuvent exécuter une fonction en tant que récompense lorsque les conditions sont respectées. Les commandes de la fonction sont exécutées par le joueur ayant complété le progrès.

{
    "rewards": {
        "function": "namespace:chemin/vers/la/fonction"
    }
}

Tags [à venir 1.13][modifier | modifier le wikicode]

C'est un fichier regroupant plusieurs fonctions pouvant s’exécuter dans un ordre précis. Il existe 2 noms de tags de fonctions spécifique pouvant être utilisés::

  • minecraft:tick: S’exécute à chaque ticks de jeu (comme l'ancienne /gamerule gameLoopFunction).
  • minecraft:load: S’exécute à chaque chargement d'une partie ou après chaque /reload.

Notes diverses[modifier | modifier le wikicode]

  • Dans votre fichier de fonction, chaque commande doit être écrite sur une ligne (une ligne vierge ou ne contenant qu'un commentaire sera ignorée) et ne doit pas être précédée par un "/" (slash).

Historique[modifier | modifier le wikicode]

Version officielle
1.12 1.12-pre1 Ajout des fonctions.
1.12-pre3 Les fichiers utilisent désormais l'extension .mcfunction. Les commandes ne doivent pas commencer par un / (slash).
Les commentaires ne peuvent plus commencer par //.
L'usage de récursivité est possible.
À venir (version Java)
1.13 17w43a Les fonctions personnalisées ont été déplacées dans les packs de données.
17w45a Les fonctions sont maintenant complètement analysées et mises en cache lors du chargement.
17w49b Une fonction peut désormais être étiquetée.
Les fonctions étiquetées dans minecraft:tick sont exécutées chaque tick au début du tick.
Promotional Content