<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.gunivers.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vincent+Foriel</id>
	<title>Gunivers Wiki - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gunivers.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vincent+Foriel"/>
	<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php/Sp%C3%A9cial:Contributions/Vincent_Foriel"/>
	<updated>2026-04-30T16:29:13Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=15</id>
		<title>Guide Mapmaking : Blocs &amp; Entités</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=15"/>
		<updated>2023-06-01T08:24:03Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maintenant que nous avons vu les différents supports de commandes, nous allons commencer à rentrer dans le vif du sujet en parlant des différents objets que vous allez manipuler.&lt;br /&gt;
&lt;br /&gt;
Si vous avez une vague connaissance à propos du fonctionnement d’un jeu vidéo, vous devriez être au courant qu’il existe plusieurs types d’objets (pour ceux qui s’y connaissent vraiment dans le domaine, il s’agit là d’une liste non exhaustive évidemment).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;L’environnement&#039;&#039;&#039; constitué ici de blocs, qui sont des formes géométriques de base. Ces derniers sont persistants, c’est-à-dire que chaque modification apportée à ces blocs restera telle quelle jusqu’à ce qu’une autre modification vienne changer leur état.&lt;br /&gt;
* &#039;&#039;&#039;Les entités&#039;&#039;&#039; constituent toute la partie “active” d’un jeu et sont à l’origine de la plupart des actions de ce dernier. Dans Minecraft, il s’agit de créatures, qu’elles soient gentilles, neutres, méchantes ou encore des joueurs !&lt;br /&gt;
* &#039;&#039;&#039;Les particules&#039;&#039;&#039; permettent de faire des effets visuels et de dynamiser le jeu (en plus des animations appliquées à ces 3 types d’objets).&lt;br /&gt;
&lt;br /&gt;
Ce qui va nous intéresser aujourd’hui, c’est est de voir comment sont construits ces objets et comment on peut les manipuler. Vu que la manipulation est pour chaque objet dissemblable, nous allons séparer ces explications en deux parties.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;À savoir :&#039;&#039;&#039; Une particule, à la différence des blocs et entités, ne peut être ni modifiée ni même être détecté une fois créée. Elle ne possède donc pas de sélecteur et ne peut, dans Minecraft, pas être « gérée » après sa création. Nous ne parlerons donc pas des particules car leur utilisation ne se résume qu’à une seule commande (leur création via /particle).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blocs ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Construire ces objets sera une tâche relativement facile, car chacun possède une commande prévue à cet effet. Ainsi, pour les blocs, cette commande est la suivante :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;[blockState][NBT] [replace|destroy|keep]&lt;br /&gt;
Grâce à elle, vous pouvez poser un bloc à la position donnée. Le “type” correspond au bloc Minecraft que vous souhaitez placer ou, si vous préférez, à son matériau (pierre, terre, bois, etc). Vous remarquerez que seuls les deux premiers paramètres sont obligatoires. Dans la plupart des cas (les cas les plus simples), vous n’aurez donc qu’a vous souvenir de cette syntaxe :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Vous pouvez afficher les identifiants de chacun des blocs grâce au raccourci “F3”, puis en visant le bloc, ou bien par le raccourci “F3 + H”. Son identifiant sera alors affiché sous le nom de l’item pointé par votre souris.&amp;lt;/blockquote&amp;gt;Le dernier paramètre permet de modifier le comportement de la commande. Trois sous-paramètres différents sont disponibles :&lt;br /&gt;
&lt;br /&gt;
* “replace” (paramètre par défaut) : permet de placer le bloc peu importe le bloc d’origine.&lt;br /&gt;
* “destroy” : pose le bloc en détruisant le bloc précédent, générant ainsi des particules et lâchant l’item correspondant à ce dernier.&lt;br /&gt;
* “keep” : permet de ne placer le bloc que si de l’air se trouvait à la position précisée.&lt;br /&gt;
&lt;br /&gt;
Enfin, “blockState” et “NBT” correspondent aux propriétés du bloc. Le “blockState” définit la forme du bloc si celui-ci en possède plusieurs (orientation, âge de la plante, forme de l’escalier, etc.) tandis que “NBT” est une structure de données définissant les informations stockées par le bloc. Les quelques blocs possédant cette structure sont appelés “Block Entity”, catégorie où l’on peut retrouver entre autres les coffres, les panneaux, les têtes, les jukeboxes, ou les lits. Nous reviendrons sur les NBTs un peu plus tard dans ce guide.&lt;br /&gt;
&lt;br /&gt;
On peut différencier ces deux structures par la façon dont elles sont délimitées. Ainsi le “blockState” se trouvera entre deux crochets “[]” et le “NBT” entre deux accolades “{}”.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple afin de mieux comprendre la syntaxe :&lt;br /&gt;
 /setblock 10 11 12 furnace[lit=true]{Items:[{id:slime_ball,Slot:0,Count:1}]} keep&lt;br /&gt;
Placera un four à l’apparence allumée et possédant une Slime Ball dans le slot de cuisson aux coordonnées x=10, y=11 et z=12 seulement si le bloc d’origine était de l’air.&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
[[Fichier:Menu F3.png|vignette|536x536px|Informations pouvant être affiché en jeu en appuyant sur &#039;F3&#039;]]&lt;br /&gt;
Afin de manipuler les blocs, vous aurez à disposition une panoplie de commandes telles que :&lt;br /&gt;
&lt;br /&gt;
* /setblock   …&lt;br /&gt;
* /fill    …&lt;br /&gt;
* /data merge block  …&lt;br /&gt;
* /clone    …&lt;br /&gt;
Vous trouverez l’explication officielle de chacune de ces commandes en cliquant dessus. Ce qui va nous intéresser ici, ce sont les paramètres “”. Tout à l’heure nous avons vu que si nous mettions “10 11 12” dans ce paramètre, notre bloc allait se situer à la position x=10, y=11 et z=12. Mais qu’est-ce que ça signifie exactement ?&lt;br /&gt;
&lt;br /&gt;
En appuyant sur “F3”, plein de données devraient apparaître comme sur l’image ci-dessus. Ces dernières permettent de s’y retrouver plus facilement afin de créer ou débugger un système (ou du moins, c’est de cette façon que nous allons les utiliser). Au centre, vous pouvez voir ce qu’on appelle un repère. Ce dernier contient 3 lignes orientées chacune vers le côté positif de l’axe qu’elle représente :&lt;br /&gt;
&lt;br /&gt;
* Axe rouge: correspond à l’axe X&lt;br /&gt;
* Axe vert: correspond à l’axe Y&lt;br /&gt;
* Axe bleu: correspond à l’axe Z&lt;br /&gt;
&lt;br /&gt;
Une position sera définie grâce à une valeur sur chacun des axes. Vous pouvez voir en haut à gauche de l’image votre position actuelle (“XYZ: …”) ainsi que la position du bloc dans lequel vous vous trouvez (“Block: …”). Enfin, sur les côtés de l’image, vous pouvez connaître la position et le type de bloc que vous visez, vous permettant de les éditer facilement avec une commande.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Lorsque vous écrivez une commande avec un paramètre permettant de désigner la position d’un bloc, Minecraft vous suggérera toujours le bloc que vous visez. Si vous n’en visez aucun, il vous suggérera votre position actuelle. En appuyant sur ‘tab’, vous pourrez utiliser l’auto-complétion des commandes qui prendra la valeur suggérée.&amp;lt;/blockquote&amp;gt;[[Fichier:Directions locales.png|vignette|Directions locales (vert -&amp;gt; X, rouge -&amp;gt; Y, bleu -&amp;gt; Z)]]Bon, connaître la position des blocs c’est bien, mais ça reste assez limité. Si par exemple vous souhaitez placer un bloc à côté d’un joueur, vous allez être embêtés car vous ne connaissez pas la position où vous devez placer le bloc. C’est pour cette raison qu’il existe 3 types de coordonnées :&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées absolues&#039;&#039;&#039; (ex: 1 2 3) : celle que vous apercevez dans le menu ‘F3’. Si tous les joueurs font un /setblock avec une même coordonnée absolue, chacun d’eux changera le même bloc.&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées relatives&#039;&#039;&#039; (ex: ~1 ~2 ~3) : ici, ces coordonnées ne dépendent plus de la map en elle-même (et son centre en 0 0 0) mais du joueur (ou entité ou bloc) qui exécute la commande. Ainsi, un “/setblock” avec les coordonnées ~1 ~2 ~3 placera un bloc à proximité de la position où la commande a été exécutée. Si votre position est 20 20 20, le bloc se placera en 21 22 23 (20+1, 20+2 et 20+3). Le nombre est préfixé d’un tilde ‘~’.&lt;br /&gt;
* &#039;&#039;&#039;Les coordonnées locales&#039;&#039;&#039; (ex: ^1 ^2 ^3) : ces dernières sont plus complexes car dépendant de l’orientation de l’entité ayant exécuté la commande. Ainsi, un “/setblock ^1 ^2 ^3 stone” placera un bloc de pierre 1 bloc à gauche du joueur, 2 blocs au-dessus de sa tête et 3 blocs devant lui.  &amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Avertissement :&#039;&#039;&#039; Si le joueur regarde le ciel, 2 blocs au-dessus de la tête du joueur correspondront à 2 blocs derrière son corps joueur car sa tête et son corps sont orientés différemment et nous parlons bien ici de l’orientation de sa tête. Le nombre est préfixé d’un accent circonflexe &#039;&#039;&#039;Note :&#039;&#039;&#039; Ce système de coordonnées ne fonctionne pas seulement pour placer un bloc ou sélectionner un bloc mais bien pour toutes autres commandes nécessitant une position pour paramètre. Note : Il est possible de mélanger les 2 premiers types de coordonnées dans un même paramètre (ex: 10 ~11 12).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[Fichier:Sélection de zone.png|vignette|258x258px|Dans Minecraft, seul deux points (blocs) suffisent à définir une zone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin, vous vous demandez sûrement pourquoi dans certaines commandes comme le “/fill”, il y a deux paramètres “position”. Il s’agit en fait d’un moyen  pour sélectionner une zone de blocs et non un seul bloc. Vous devrez donc sélectionner la position des deux extrémités de votre zone (qui prend la forme d’un parallélépipède rectangle), à savoir celle du bloc violet et celle du bloc jaune sur l’image ci-dessous.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Pour la commande “/clone”, un troisième paramètre “” est demandé. Ce dernier sert à définir la position à laquelle la zone sélectionnée par les deux premiers paramètres sera placée. La zone se placera alors de sorte à ce que son extrémité ayant les coordonnées les moins élevées correspond avec les coordonnées données dans ce troisième paramètre. Dans l’image ci-dessus, la zone se placera de façon à ce que le bloc violet soit placé aux coordonnées précisées dans le , comme nous le montre le repère placé sur la boîte délimitant la zone.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entités ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Maintenant que nous avons vu comment créer et modifier l’environnement, nous allons nos attaquer aux entités. Ces entités seront le cœur de vos maps car elles représenteront à la fois les pièces mobiles et les éléments actifs rendant votre map dynamique. Afin d’invoquer une entité, nous utiliserons la commande :&lt;br /&gt;
 /summon &amp;lt;type&amp;gt; &amp;lt;position&amp;gt; [NBT]&lt;br /&gt;
Comme pour les blocs, la position sert à définir où l’entité va être créée. Quant au type, il s’agit cette fois de la nature de l’entité que vous souhaitez invoquer (Creeper, Zombie, Loup etc.). Pour les NBT, un article entier leur sera consacré, nous verrons donc ça plus tard. &#039;&#039;Spoiler, ces propriétés serviront à customiser vos créatures (leur donner une armure, un effet de potion etc.).&#039;&#039;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Il est impossible d’invoquer un joueur. Leur intelligence est trop complexe pour être créés de cette façon :/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Pour préciser une entité, il faut utiliser ce qu’on appelle un “sélecteur”. Ce dernier existe sous plusieurs formes :&lt;br /&gt;
&lt;br /&gt;
* @e (entity) : permet de sélectionner toutes les entités (joueur ou non) ;&lt;br /&gt;
* @a (all) : permet de sélectionner tous les joueurs ;&lt;br /&gt;
* @p (proximity) : permet de sélectionner le (ou “les” si un nombre est spécifié entre crochets) joueurs les plus proches de l’endroit où est exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* @r (random) : permet de sélectionner un (ou plusieurs si un nombre est spécifié entre crochets) joueur aléatoire ;&lt;br /&gt;
* @s (self) : permet de sélectionner l’entité ayant exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* : Peut être utilisée comme raccourcit pour “@a[name=]” ou comme sélecteur de joueur virtuel (ou “fake player”, correspondant à un pseudo associé à aucun joueur ou à un joueur déconnecté) ;&lt;br /&gt;
** : Sélectionne toutes entités, vivantes ou mortes, connectées ou non, réelles ou virtuelles (là où le @e ne sélectionne “que” les entités réelles vivantes et connectées).&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Une bonne partie de ces sélecteurs sont vieux et vous vous rendrez compte que seul le @e, le @s et l’astérisque (*) conservent toujours un véritable intérêt en 1.13 et au-delà. Les autres ne servent désormais qu’à “alléger” les commandes en évitant de devoir écrire certaines conditions.&amp;lt;/blockquote&amp;gt;Ces différents sélecteurs (à l’exception de “” et de l’astérisque) sont souvent directement suivis de crochets permettant l’ajout de conditions. Par exemple, si vous souhaitez sélectionner jusqu’à 3 joueurs se trouvant entre 5 et 10 blocs de distance de vous, vous n’aurez qu’à utiliser ce sélecteur:&lt;br /&gt;
 @a[distance=5..10,limit=3]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Comme dit précédemment, seul le @e et @s ont un réel intérêt. Vous pouvez aussi bien utiliser le sélecteur “@e[type=player,distance=5…10,limit=3]”.&amp;lt;/blockquote&amp;gt;Depuis la version 1.13, les choses sont devenues relativement simples à comprendre. Ici, pas besoin d’expliquer “distance=5…10” pour comprendre que ça ne sélectionne que les entités qui sont entre 5 et 10 blocs de distance. La seule difficulté sera de se rappeler des conditions possibles à utiliser dans ces sélecteurs. Voici une liste des plus fréquemment utilisés :&lt;br /&gt;
&lt;br /&gt;
* x=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* y=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* z=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* distance:&amp;lt;INTERVALLE&amp;gt;&lt;br /&gt;
* dx=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dy=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dz=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* type=&amp;lt;TYPE&amp;gt;&lt;br /&gt;
* limit=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* sort=&amp;lt;nearest|random|furthest|arbitrary&amp;gt;&lt;br /&gt;
* tag=&amp;lt;TAG&amp;gt;&lt;br /&gt;
* scores={&amp;lt;SCORE1&amp;gt;=&amp;lt;INTERVALLE&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
Essayons de voir ce que chacun d’eux permet de faire :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;“x=…”, “y=…” et “z=…”&#039;&#039;&#039; permettent d’indiquer une coordonnée absolue (coordonnée qui servira notamment à la condition “distance=”).&lt;br /&gt;
* &#039;&#039;&#039;“distance=…”&#039;&#039;&#039; sert à définir une… distance. Pour que l’entité valide cette condition, elle doit se trouver dans l’intervalle de distance précisé en valeur (nous y reviendrons un peu plus en détail en dessous). L’intervalle peut être composé de nombre à virgule afin d’augmenter la précision.&lt;br /&gt;
* &#039;&#039;&#039;“dx=…”, “dy=…” et “dz=…”&#039;&#039;&#039; servent à désigner une distance sur chacun des axes (là où le “distance=” permet de définir une zone sphérique, “dx=”, “dy=” et “dz=” permettent de faire une zone rectangulaire orientée vers le positif).&lt;br /&gt;
* &#039;&#039;&#039;“type=…”&#039;&#039;&#039; permet de restreindre (ou exclure si vous mettez “type=!…”) à un type d’entité (ex: @e[type=creeper] ne sélectionnera que les creepers)&lt;br /&gt;
* &#039;&#039;&#039;“limit=…”&#039;&#039;&#039; permet de définir un nombre maximum d’entité à sélectionner.&lt;br /&gt;
* &#039;&#039;&#039;“sort=…”&#039;&#039;&#039; permet, dans le cas où le nombre d’entités est limité, de définir quelles entités vont être sélectionnés. Ainsi, “nearest” prendra les entités les plus proches, “furthest” prendra les entités les plus lointaines, “random” prendra les entités aléatoirement et “arbitrary” n’appliquera aucun tri rendant donc la commande plus optimisée.&lt;br /&gt;
* &#039;&#039;&#039;“tag=…”&#039;&#039;&#039; permet de conserver (ou exclure si vous mettez “tag=!…”) les entités portant un tag précis. Nous verrons en quoi consistent les tags dans un autre chapitre.&lt;br /&gt;
* &#039;&#039;&#039;“scores=…”&#039;&#039;&#039; permet de conserver les entités ayant des scores correspondant à ceux indiqués. Nous verrons en quoi consistent les scores dans un autre chapitre.&lt;br /&gt;
&lt;br /&gt;
La valeur INTERVALLE suit une syntaxe un peu particulière, elle permet de valider la condition si le nombre se trouve entre deux bornes (cas 1) ou s’il est exactement égal au nombre précisé (cas 2) :&lt;br /&gt;
&lt;br /&gt;
* [min]…[max] : Permet donc de valider si le nombre se trouve entre les deux bornes (incluses). Les paramètres sont optionnels car il est possible de ne pas spécifier l’une ou l’autre des bornes de façon à comprendre soit toutes les valeurs plus petites que max soit toutes les valeurs plus grandes que min.&lt;br /&gt;
* [valeur] : Permet de valider la condition si le nombre est strictement égal à celui précisé.&lt;br /&gt;
&lt;br /&gt;
Les valeurs bornant l’intervalle peuvent être, si le paramètre l’accepte, des nombres à virgule, mais attention : dans le cas numéro 2, 64 sera différent de 64.001 ! Attention, par convention, les décimales sont séparées des entiers par des points et non des virgules comme nous avons l’habitude en France.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Pour être sélectionnée, l’entité doit répondre à toutes les conditions du sélecteur, il s’agit donc, pour ceux qui ont quelques connaissances en algorithmique ou en électronique, d’un “et logique” entre chaque paramètre. Pour faire un “ou logique” vous devrez passer par un système de commande qui ajoute un tag (ou autres) si telle ou telle condition est validée. Vous exécuterez ensuite la commande si vous détectez la présence de ce tag.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Maintenant, vous maîtrisez les bases des objets manipulables dans Minecraft. Même si pour l’instant, cela peut vous paraître seulement à fin décorative pour votre map ou vos entités, vous vous rendrez assez vite compte que cela peut aussi être un moyen de parvenir à des résultats plus complexes, notamment avec le prochain article qui parlera de la commande 1.13 qui a radicalement changé nos façons de concevoir nos systèmes : la commande exécute.&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=14</id>
		<title>Guide Mapmaking : Blocs &amp; Entités</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=14"/>
		<updated>2023-06-01T08:23:54Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maintenant que nous avons vu les différents supports de commandes, nous allons commencer à rentrer dans le vif du sujet en parlant des différents objets que vous allez manipuler.&lt;br /&gt;
&lt;br /&gt;
Si vous avez une vague connaissance à propos du fonctionnement d’un jeu vidéo, vous devriez être au courant qu’il existe plusieurs types d’objets (pour ceux qui s’y connaissent vraiment dans le domaine, il s’agit là d’une liste non exhaustive évidemment).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;L’environnement&#039;&#039;&#039; constitué ici de blocs, qui sont des formes géométriques de base. Ces derniers sont persistants, c’est-à-dire que chaque modification apportée à ces blocs restera telle quelle jusqu’à ce qu’une autre modification vienne changer leur état.&lt;br /&gt;
* &#039;&#039;&#039;Les entités&#039;&#039;&#039; constituent toute la partie “active” d’un jeu et sont à l’origine de la plupart des actions de ce dernier. Dans Minecraft, il s’agit de créatures, qu’elles soient gentilles, neutres, méchantes ou encore des joueurs !&lt;br /&gt;
* &#039;&#039;&#039;Les particules&#039;&#039;&#039; permettent de faire des effets visuels et de dynamiser le jeu (en plus des animations appliquées à ces 3 types d’objets).&lt;br /&gt;
&lt;br /&gt;
Ce qui va nous intéresser aujourd’hui, c’est est de voir comment sont construits ces objets et comment on peut les manipuler. Vu que la manipulation est pour chaque objet dissemblable, nous allons séparer ces explications en deux parties.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;À savoir :&#039;&#039;&#039; Une particule, à la différence des blocs et entités, ne peut être ni modifiée ni même être détecté une fois créée. Elle ne possède donc pas de sélecteur et ne peut, dans Minecraft, pas être « gérée » après sa création. Nous ne parlerons donc pas des particules car leur utilisation ne se résume qu’à une seule commande (leur création via /particle).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blocs ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Construire ces objets sera une tâche relativement facile, car chacun possède une commande prévue à cet effet. Ainsi, pour les blocs, cette commande est la suivante :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;[blockState][NBT] [replace|destroy|keep]&lt;br /&gt;
Grâce à elle, vous pouvez poser un bloc à la position donnée. Le “type” correspond au bloc Minecraft que vous souhaitez placer ou, si vous préférez, à son matériau (pierre, terre, bois, etc). Vous remarquerez que seuls les deux premiers paramètres sont obligatoires. Dans la plupart des cas (les cas les plus simples), vous n’aurez donc qu’a vous souvenir de cette syntaxe :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Vous pouvez afficher les identifiants de chacun des blocs grâce au raccourci “F3”, puis en visant le bloc, ou bien par le raccourci “F3 + H”. Son identifiant sera alors affiché sous le nom de l’item pointé par votre souris.&amp;lt;/blockquote&amp;gt;Le dernier paramètre permet de modifier le comportement de la commande. Trois sous-paramètres différents sont disponibles :&lt;br /&gt;
&lt;br /&gt;
* “replace” (paramètre par défaut) : permet de placer le bloc peu importe le bloc d’origine.&lt;br /&gt;
* “destroy” : pose le bloc en détruisant le bloc précédent, générant ainsi des particules et lâchant l’item correspondant à ce dernier.&lt;br /&gt;
* “keep” : permet de ne placer le bloc que si de l’air se trouvait à la position précisée.&lt;br /&gt;
&lt;br /&gt;
Enfin, “blockState” et “NBT” correspondent aux propriétés du bloc. Le “blockState” définit la forme du bloc si celui-ci en possède plusieurs (orientation, âge de la plante, forme de l’escalier, etc.) tandis que “NBT” est une structure de données définissant les informations stockées par le bloc. Les quelques blocs possédant cette structure sont appelés “Block Entity”, catégorie où l’on peut retrouver entre autres les coffres, les panneaux, les têtes, les jukeboxes, ou les lits. Nous reviendrons sur les NBTs un peu plus tard dans ce guide.&lt;br /&gt;
&lt;br /&gt;
On peut différencier ces deux structures par la façon dont elles sont délimitées. Ainsi le “blockState” se trouvera entre deux crochets “[]” et le “NBT” entre deux accolades “{}”.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple afin de mieux comprendre la syntaxe :&lt;br /&gt;
 /setblock 10 11 12 furnace[lit=true]{Items:[{id:slime_ball,Slot:0,Count:1}]} keep&lt;br /&gt;
Placera un four à l’apparence allumée et possédant une Slime Ball dans le slot de cuisson aux coordonnées x=10, y=11 et z=12 seulement si le bloc d’origine était de l’air.&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
[[Fichier:Menu F3.png|vignette|536x536px|Informations pouvant être affiché en jeu en appuyant sur &#039;F3&#039;]]&lt;br /&gt;
Afin de manipuler les blocs, vous aurez à disposition une panoplie de commandes telles que :&lt;br /&gt;
&lt;br /&gt;
* /setblock   …&lt;br /&gt;
* /fill    …&lt;br /&gt;
* /data merge block  …&lt;br /&gt;
* /clone    …&lt;br /&gt;
Vous trouverez l’explication officielle de chacune de ces commandes en cliquant dessus. Ce qui va nous intéresser ici, ce sont les paramètres “”. Tout à l’heure nous avons vu que si nous mettions “10 11 12” dans ce paramètre, notre bloc allait se situer à la position x=10, y=11 et z=12. Mais qu’est-ce que ça signifie exactement ?&lt;br /&gt;
&lt;br /&gt;
En appuyant sur “F3”, plein de données devraient apparaître comme sur l’image ci-dessus. Ces dernières permettent de s’y retrouver plus facilement afin de créer ou débugger un système (ou du moins, c’est de cette façon que nous allons les utiliser). Au centre, vous pouvez voir ce qu’on appelle un repère. Ce dernier contient 3 lignes orientées chacune vers le côté positif de l’axe qu’elle représente :&lt;br /&gt;
&lt;br /&gt;
* Axe rouge: correspond à l’axe X&lt;br /&gt;
* Axe vert: correspond à l’axe Y&lt;br /&gt;
* Axe bleu: correspond à l’axe Z&lt;br /&gt;
&lt;br /&gt;
Une position sera définie grâce à une valeur sur chacun des axes. Vous pouvez voir en haut à gauche de l’image votre position actuelle (“XYZ: …”) ainsi que la position du bloc dans lequel vous vous trouvez (“Block: …”). Enfin, sur les côtés de l’image, vous pouvez connaître la position et le type de bloc que vous visez, vous permettant de les éditer facilement avec une commande.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Lorsque vous écrivez une commande avec un paramètre permettant de désigner la position d’un bloc, Minecraft vous suggérera toujours le bloc que vous visez. Si vous n’en visez aucun, il vous suggérera votre position actuelle. En appuyant sur ‘tab’, vous pourrez utiliser l’auto-complétion des commandes qui prendra la valeur suggérée.&amp;lt;/blockquote&amp;gt;[[Fichier:Directions locales.png|vignette|Directions locales (vert -&amp;gt; X, rouge -&amp;gt; Y, bleu -&amp;gt; Z)]]Bon, connaître la position des blocs c’est bien, mais ça reste assez limité. Si par exemple vous souhaitez placer un bloc à côté d’un joueur, vous allez être embêtés car vous ne connaissez pas la position où vous devez placer le bloc. C’est pour cette raison qu’il existe 3 types de coordonnées :&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées absolues&#039;&#039;&#039; (ex: 1 2 3) : celle que vous apercevez dans le menu ‘F3’. Si tous les joueurs font un /setblock avec une même coordonnée absolue, chacun d’eux changera le même bloc.&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées relatives&#039;&#039;&#039; (ex: ~1 ~2 ~3) : ici, ces coordonnées ne dépendent plus de la map en elle-même (et son centre en 0 0 0) mais du joueur (ou entité ou bloc) qui exécute la commande. Ainsi, un “/setblock” avec les coordonnées ~1 ~2 ~3 placera un bloc à proximité de la position où la commande a été exécutée. Si votre position est 20 20 20, le bloc se placera en 21 22 23 (20+1, 20+2 et 20+3). Le nombre est préfixé d’un tilde ‘~’.&lt;br /&gt;
* &#039;&#039;&#039;Les coordonnées locales&#039;&#039;&#039; (ex: ^1 ^2 ^3) : ces dernières sont plus complexes car dépendant de l’orientation de l’entité ayant exécuté la commande. Ainsi, un “/setblock ^1 ^2 ^3 stone” placera un bloc de pierre 1 bloc à gauche du joueur, 2 blocs au-dessus de sa tête et 3 blocs devant lui.  &amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Avertissement :&#039;&#039;&#039; Si le joueur regarde le ciel, 2 blocs au-dessus de la tête du joueur correspondront à 2 blocs derrière son corps joueur car sa tête et son corps sont orientés différemment et nous parlons bien ici de l’orientation de sa tête. Le nombre est préfixé d’un accent circonflexe &#039;&#039;&#039;Note :&#039;&#039;&#039; Ce système de coordonnées ne fonctionne pas seulement pour placer un bloc ou sélectionner un bloc mais bien pour toutes autres commandes nécessitant une position pour paramètre. Note : Il est possible de mélanger les 2 premiers types de coordonnées dans un même paramètre (ex: 10 ~11 12).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[Fichier:Sélection de zone.png|vignette|279x279px|Dans Minecraft, seul deux points (blocs) suffisent à définir une zone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin, vous vous demandez sûrement pourquoi dans certaines commandes comme le “/fill”, il y a deux paramètres “position”. Il s’agit en fait d’un moyen  pour sélectionner une zone de blocs et non un seul bloc. Vous devrez donc sélectionner la position des deux extrémités de votre zone (qui prend la forme d’un parallélépipède rectangle), à savoir celle du bloc violet et celle du bloc jaune sur l’image ci-dessous.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Pour la commande “/clone”, un troisième paramètre “” est demandé. Ce dernier sert à définir la position à laquelle la zone sélectionnée par les deux premiers paramètres sera placée. La zone se placera alors de sorte à ce que son extrémité ayant les coordonnées les moins élevées correspond avec les coordonnées données dans ce troisième paramètre. Dans l’image ci-dessus, la zone se placera de façon à ce que le bloc violet soit placé aux coordonnées précisées dans le , comme nous le montre le repère placé sur la boîte délimitant la zone.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entités ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Maintenant que nous avons vu comment créer et modifier l’environnement, nous allons nos attaquer aux entités. Ces entités seront le cœur de vos maps car elles représenteront à la fois les pièces mobiles et les éléments actifs rendant votre map dynamique. Afin d’invoquer une entité, nous utiliserons la commande :&lt;br /&gt;
 /summon &amp;lt;type&amp;gt; &amp;lt;position&amp;gt; [NBT]&lt;br /&gt;
Comme pour les blocs, la position sert à définir où l’entité va être créée. Quant au type, il s’agit cette fois de la nature de l’entité que vous souhaitez invoquer (Creeper, Zombie, Loup etc.). Pour les NBT, un article entier leur sera consacré, nous verrons donc ça plus tard. &#039;&#039;Spoiler, ces propriétés serviront à customiser vos créatures (leur donner une armure, un effet de potion etc.).&#039;&#039;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Il est impossible d’invoquer un joueur. Leur intelligence est trop complexe pour être créés de cette façon :/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Pour préciser une entité, il faut utiliser ce qu’on appelle un “sélecteur”. Ce dernier existe sous plusieurs formes :&lt;br /&gt;
&lt;br /&gt;
* @e (entity) : permet de sélectionner toutes les entités (joueur ou non) ;&lt;br /&gt;
* @a (all) : permet de sélectionner tous les joueurs ;&lt;br /&gt;
* @p (proximity) : permet de sélectionner le (ou “les” si un nombre est spécifié entre crochets) joueurs les plus proches de l’endroit où est exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* @r (random) : permet de sélectionner un (ou plusieurs si un nombre est spécifié entre crochets) joueur aléatoire ;&lt;br /&gt;
* @s (self) : permet de sélectionner l’entité ayant exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* : Peut être utilisée comme raccourcit pour “@a[name=]” ou comme sélecteur de joueur virtuel (ou “fake player”, correspondant à un pseudo associé à aucun joueur ou à un joueur déconnecté) ;&lt;br /&gt;
** : Sélectionne toutes entités, vivantes ou mortes, connectées ou non, réelles ou virtuelles (là où le @e ne sélectionne “que” les entités réelles vivantes et connectées).&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Une bonne partie de ces sélecteurs sont vieux et vous vous rendrez compte que seul le @e, le @s et l’astérisque (*) conservent toujours un véritable intérêt en 1.13 et au-delà. Les autres ne servent désormais qu’à “alléger” les commandes en évitant de devoir écrire certaines conditions.&amp;lt;/blockquote&amp;gt;Ces différents sélecteurs (à l’exception de “” et de l’astérisque) sont souvent directement suivis de crochets permettant l’ajout de conditions. Par exemple, si vous souhaitez sélectionner jusqu’à 3 joueurs se trouvant entre 5 et 10 blocs de distance de vous, vous n’aurez qu’à utiliser ce sélecteur:&lt;br /&gt;
 @a[distance=5..10,limit=3]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Comme dit précédemment, seul le @e et @s ont un réel intérêt. Vous pouvez aussi bien utiliser le sélecteur “@e[type=player,distance=5…10,limit=3]”.&amp;lt;/blockquote&amp;gt;Depuis la version 1.13, les choses sont devenues relativement simples à comprendre. Ici, pas besoin d’expliquer “distance=5…10” pour comprendre que ça ne sélectionne que les entités qui sont entre 5 et 10 blocs de distance. La seule difficulté sera de se rappeler des conditions possibles à utiliser dans ces sélecteurs. Voici une liste des plus fréquemment utilisés :&lt;br /&gt;
&lt;br /&gt;
* x=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* y=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* z=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* distance:&amp;lt;INTERVALLE&amp;gt;&lt;br /&gt;
* dx=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dy=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dz=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* type=&amp;lt;TYPE&amp;gt;&lt;br /&gt;
* limit=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* sort=&amp;lt;nearest|random|furthest|arbitrary&amp;gt;&lt;br /&gt;
* tag=&amp;lt;TAG&amp;gt;&lt;br /&gt;
* scores={&amp;lt;SCORE1&amp;gt;=&amp;lt;INTERVALLE&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
Essayons de voir ce que chacun d’eux permet de faire :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;“x=…”, “y=…” et “z=…”&#039;&#039;&#039; permettent d’indiquer une coordonnée absolue (coordonnée qui servira notamment à la condition “distance=”).&lt;br /&gt;
* &#039;&#039;&#039;“distance=…”&#039;&#039;&#039; sert à définir une… distance. Pour que l’entité valide cette condition, elle doit se trouver dans l’intervalle de distance précisé en valeur (nous y reviendrons un peu plus en détail en dessous). L’intervalle peut être composé de nombre à virgule afin d’augmenter la précision.&lt;br /&gt;
* &#039;&#039;&#039;“dx=…”, “dy=…” et “dz=…”&#039;&#039;&#039; servent à désigner une distance sur chacun des axes (là où le “distance=” permet de définir une zone sphérique, “dx=”, “dy=” et “dz=” permettent de faire une zone rectangulaire orientée vers le positif).&lt;br /&gt;
* &#039;&#039;&#039;“type=…”&#039;&#039;&#039; permet de restreindre (ou exclure si vous mettez “type=!…”) à un type d’entité (ex: @e[type=creeper] ne sélectionnera que les creepers)&lt;br /&gt;
* &#039;&#039;&#039;“limit=…”&#039;&#039;&#039; permet de définir un nombre maximum d’entité à sélectionner.&lt;br /&gt;
* &#039;&#039;&#039;“sort=…”&#039;&#039;&#039; permet, dans le cas où le nombre d’entités est limité, de définir quelles entités vont être sélectionnés. Ainsi, “nearest” prendra les entités les plus proches, “furthest” prendra les entités les plus lointaines, “random” prendra les entités aléatoirement et “arbitrary” n’appliquera aucun tri rendant donc la commande plus optimisée.&lt;br /&gt;
* &#039;&#039;&#039;“tag=…”&#039;&#039;&#039; permet de conserver (ou exclure si vous mettez “tag=!…”) les entités portant un tag précis. Nous verrons en quoi consistent les tags dans un autre chapitre.&lt;br /&gt;
* &#039;&#039;&#039;“scores=…”&#039;&#039;&#039; permet de conserver les entités ayant des scores correspondant à ceux indiqués. Nous verrons en quoi consistent les scores dans un autre chapitre.&lt;br /&gt;
&lt;br /&gt;
La valeur INTERVALLE suit une syntaxe un peu particulière, elle permet de valider la condition si le nombre se trouve entre deux bornes (cas 1) ou s’il est exactement égal au nombre précisé (cas 2) :&lt;br /&gt;
&lt;br /&gt;
* [min]…[max] : Permet donc de valider si le nombre se trouve entre les deux bornes (incluses). Les paramètres sont optionnels car il est possible de ne pas spécifier l’une ou l’autre des bornes de façon à comprendre soit toutes les valeurs plus petites que max soit toutes les valeurs plus grandes que min.&lt;br /&gt;
* [valeur] : Permet de valider la condition si le nombre est strictement égal à celui précisé.&lt;br /&gt;
&lt;br /&gt;
Les valeurs bornant l’intervalle peuvent être, si le paramètre l’accepte, des nombres à virgule, mais attention : dans le cas numéro 2, 64 sera différent de 64.001 ! Attention, par convention, les décimales sont séparées des entiers par des points et non des virgules comme nous avons l’habitude en France.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Pour être sélectionnée, l’entité doit répondre à toutes les conditions du sélecteur, il s’agit donc, pour ceux qui ont quelques connaissances en algorithmique ou en électronique, d’un “et logique” entre chaque paramètre. Pour faire un “ou logique” vous devrez passer par un système de commande qui ajoute un tag (ou autres) si telle ou telle condition est validée. Vous exécuterez ensuite la commande si vous détectez la présence de ce tag.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Maintenant, vous maîtrisez les bases des objets manipulables dans Minecraft. Même si pour l’instant, cela peut vous paraître seulement à fin décorative pour votre map ou vos entités, vous vous rendrez assez vite compte que cela peut aussi être un moyen de parvenir à des résultats plus complexes, notamment avec le prochain article qui parlera de la commande 1.13 qui a radicalement changé nos façons de concevoir nos systèmes : la commande exécute.&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=13</id>
		<title>Guide Mapmaking : Blocs &amp; Entités</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=13"/>
		<updated>2023-06-01T08:23:06Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maintenant que nous avons vu les différents supports de commandes, nous allons commencer à rentrer dans le vif du sujet en parlant des différents objets que vous allez manipuler.&lt;br /&gt;
&lt;br /&gt;
Si vous avez une vague connaissance à propos du fonctionnement d’un jeu vidéo, vous devriez être au courant qu’il existe plusieurs types d’objets (pour ceux qui s’y connaissent vraiment dans le domaine, il s’agit là d’une liste non exhaustive évidemment).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;L’environnement&#039;&#039;&#039; constitué ici de blocs, qui sont des formes géométriques de base. Ces derniers sont persistants, c’est-à-dire que chaque modification apportée à ces blocs restera telle quelle jusqu’à ce qu’une autre modification vienne changer leur état.&lt;br /&gt;
* &#039;&#039;&#039;Les entités&#039;&#039;&#039; constituent toute la partie “active” d’un jeu et sont à l’origine de la plupart des actions de ce dernier. Dans Minecraft, il s’agit de créatures, qu’elles soient gentilles, neutres, méchantes ou encore des joueurs !&lt;br /&gt;
* &#039;&#039;&#039;Les particules&#039;&#039;&#039; permettent de faire des effets visuels et de dynamiser le jeu (en plus des animations appliquées à ces 3 types d’objets).&lt;br /&gt;
&lt;br /&gt;
Ce qui va nous intéresser aujourd’hui, c’est est de voir comment sont construits ces objets et comment on peut les manipuler. Vu que la manipulation est pour chaque objet dissemblable, nous allons séparer ces explications en deux parties.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;À savoir :&#039;&#039;&#039; Une particule, à la différence des blocs et entités, ne peut être ni modifiée ni même être détecté une fois créée. Elle ne possède donc pas de sélecteur et ne peut, dans Minecraft, pas être « gérée » après sa création. Nous ne parlerons donc pas des particules car leur utilisation ne se résume qu’à une seule commande (leur création via /particle).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blocs ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Construire ces objets sera une tâche relativement facile, car chacun possède une commande prévue à cet effet. Ainsi, pour les blocs, cette commande est la suivante :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;[blockState][NBT] [replace|destroy|keep]&lt;br /&gt;
Grâce à elle, vous pouvez poser un bloc à la position donnée. Le “type” correspond au bloc Minecraft que vous souhaitez placer ou, si vous préférez, à son matériau (pierre, terre, bois, etc). Vous remarquerez que seuls les deux premiers paramètres sont obligatoires. Dans la plupart des cas (les cas les plus simples), vous n’aurez donc qu’a vous souvenir de cette syntaxe :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Vous pouvez afficher les identifiants de chacun des blocs grâce au raccourci “F3”, puis en visant le bloc, ou bien par le raccourci “F3 + H”. Son identifiant sera alors affiché sous le nom de l’item pointé par votre souris.&amp;lt;/blockquote&amp;gt;Le dernier paramètre permet de modifier le comportement de la commande. Trois sous-paramètres différents sont disponibles :&lt;br /&gt;
&lt;br /&gt;
* “replace” (paramètre par défaut) : permet de placer le bloc peu importe le bloc d’origine.&lt;br /&gt;
* “destroy” : pose le bloc en détruisant le bloc précédent, générant ainsi des particules et lâchant l’item correspondant à ce dernier.&lt;br /&gt;
* “keep” : permet de ne placer le bloc que si de l’air se trouvait à la position précisée.&lt;br /&gt;
&lt;br /&gt;
Enfin, “blockState” et “NBT” correspondent aux propriétés du bloc. Le “blockState” définit la forme du bloc si celui-ci en possède plusieurs (orientation, âge de la plante, forme de l’escalier, etc.) tandis que “NBT” est une structure de données définissant les informations stockées par le bloc. Les quelques blocs possédant cette structure sont appelés “Block Entity”, catégorie où l’on peut retrouver entre autres les coffres, les panneaux, les têtes, les jukeboxes, ou les lits. Nous reviendrons sur les NBTs un peu plus tard dans ce guide.&lt;br /&gt;
&lt;br /&gt;
On peut différencier ces deux structures par la façon dont elles sont délimitées. Ainsi le “blockState” se trouvera entre deux crochets “[]” et le “NBT” entre deux accolades “{}”.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple afin de mieux comprendre la syntaxe :&lt;br /&gt;
 /setblock 10 11 12 furnace[lit=true]{Items:[{id:slime_ball,Slot:0,Count:1}]} keep&lt;br /&gt;
Placera un four à l’apparence allumée et possédant une Slime Ball dans le slot de cuisson aux coordonnées x=10, y=11 et z=12 seulement si le bloc d’origine était de l’air.&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Afin de manipuler les blocs, vous aurez à disposition une panoplie de commandes telles que :&lt;br /&gt;
&lt;br /&gt;
* /setblock   …&lt;br /&gt;
* /fill    …&lt;br /&gt;
* /data merge block  …&lt;br /&gt;
* /clone    …&lt;br /&gt;
[[Fichier:Menu F3.png|vignette|536x536px|Informations pouvant être affiché en jeu en appuyant sur &#039;F3&#039;]]&lt;br /&gt;
Vous trouverez l’explication officielle de chacune de ces commandes en cliquant dessus. Ce qui va nous intéresser ici, ce sont les paramètres “”. Tout à l’heure nous avons vu que si nous mettions “10 11 12” dans ce paramètre, notre bloc allait se situer à la position x=10, y=11 et z=12. Mais qu’est-ce que ça signifie exactement ?&lt;br /&gt;
&lt;br /&gt;
En appuyant sur “F3”, plein de données devraient apparaître comme sur l’image ci-dessus. Ces dernières permettent de s’y retrouver plus facilement afin de créer ou débugger un système (ou du moins, c’est de cette façon que nous allons les utiliser). Au centre, vous pouvez voir ce qu’on appelle un repère. Ce dernier contient 3 lignes orientées chacune vers le côté positif de l’axe qu’elle représente :&lt;br /&gt;
&lt;br /&gt;
* Axe rouge: correspond à l’axe X&lt;br /&gt;
* Axe vert: correspond à l’axe Y&lt;br /&gt;
* Axe bleu: correspond à l’axe Z&lt;br /&gt;
&lt;br /&gt;
Une position sera définie grâce à une valeur sur chacun des axes. Vous pouvez voir en haut à gauche de l’image votre position actuelle (“XYZ: …”) ainsi que la position du bloc dans lequel vous vous trouvez (“Block: …”). Enfin, sur les côtés de l’image, vous pouvez connaître la position et le type de bloc que vous visez, vous permettant de les éditer facilement avec une commande.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Lorsque vous écrivez une commande avec un paramètre permettant de désigner la position d’un bloc, Minecraft vous suggérera toujours le bloc que vous visez. Si vous n’en visez aucun, il vous suggérera votre position actuelle. En appuyant sur ‘tab’, vous pourrez utiliser l’auto-complétion des commandes qui prendra la valeur suggérée.&amp;lt;/blockquote&amp;gt;[[Fichier:Directions locales.png|vignette|Directions locales (vert -&amp;gt; X, rouge -&amp;gt; Y, bleu -&amp;gt; Z)]]Bon, connaître la position des blocs c’est bien, mais ça reste assez limité. Si par exemple vous souhaitez placer un bloc à côté d’un joueur, vous allez être embêtés car vous ne connaissez pas la position où vous devez placer le bloc. C’est pour cette raison qu’il existe 3 types de coordonnées :&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées absolues&#039;&#039;&#039; (ex: 1 2 3) : celle que vous apercevez dans le menu ‘F3’. Si tous les joueurs font un /setblock avec une même coordonnée absolue, chacun d’eux changera le même bloc.&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées relatives&#039;&#039;&#039; (ex: ~1 ~2 ~3) : ici, ces coordonnées ne dépendent plus de la map en elle-même (et son centre en 0 0 0) mais du joueur (ou entité ou bloc) qui exécute la commande. Ainsi, un “/setblock” avec les coordonnées ~1 ~2 ~3 placera un bloc à proximité de la position où la commande a été exécutée. Si votre position est 20 20 20, le bloc se placera en 21 22 23 (20+1, 20+2 et 20+3). Le nombre est préfixé d’un tilde ‘~’.&lt;br /&gt;
* &#039;&#039;&#039;Les coordonnées locales&#039;&#039;&#039; (ex: ^1 ^2 ^3) : ces dernières sont plus complexes car dépendant de l’orientation de l’entité ayant exécuté la commande. Ainsi, un “/setblock ^1 ^2 ^3 stone” placera un bloc de pierre 1 bloc à gauche du joueur, 2 blocs au-dessus de sa tête et 3 blocs devant lui.  &amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Avertissement :&#039;&#039;&#039; Si le joueur regarde le ciel, 2 blocs au-dessus de la tête du joueur correspondront à 2 blocs derrière son corps joueur car sa tête et son corps sont orientés différemment et nous parlons bien ici de l’orientation de sa tête. Le nombre est préfixé d’un accent circonflexe &#039;&#039;&#039;Note :&#039;&#039;&#039; Ce système de coordonnées ne fonctionne pas seulement pour placer un bloc ou sélectionner un bloc mais bien pour toutes autres commandes nécessitant une position pour paramètre. Note : Il est possible de mélanger les 2 premiers types de coordonnées dans un même paramètre (ex: 10 ~11 12).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
[[Fichier:Sélection de zone.png|vignette|403x403px|Dans Minecraft, seul deux points (blocs) suffisent à définir une zone]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin, vous vous demandez sûrement pourquoi dans certaines commandes comme le “/fill”, il y a deux paramètres “position”. Il s’agit en fait d’un moyen  pour sélectionner une zone de blocs et non un seul bloc. Vous devrez donc sélectionner la position des deux extrémités de votre zone (qui prend la forme d’un parallélépipède rectangle), à savoir celle du bloc violet et celle du bloc jaune sur l’image ci-dessous.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Pour la commande “/clone”, un troisième paramètre “” est demandé. Ce dernier sert à définir la position à laquelle la zone sélectionnée par les deux premiers paramètres sera placée. La zone se placera alors de sorte à ce que son extrémité ayant les coordonnées les moins élevées correspond avec les coordonnées données dans ce troisième paramètre. Dans l’image ci-dessus, la zone se placera de façon à ce que le bloc violet soit placé aux coordonnées précisées dans le , comme nous le montre le repère placé sur la boîte délimitant la zone.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entités ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Maintenant que nous avons vu comment créer et modifier l’environnement, nous allons nos attaquer aux entités. Ces entités seront le cœur de vos maps car elles représenteront à la fois les pièces mobiles et les éléments actifs rendant votre map dynamique. Afin d’invoquer une entité, nous utiliserons la commande :&lt;br /&gt;
 /summon &amp;lt;type&amp;gt; &amp;lt;position&amp;gt; [NBT]&lt;br /&gt;
Comme pour les blocs, la position sert à définir où l’entité va être créée. Quant au type, il s’agit cette fois de la nature de l’entité que vous souhaitez invoquer (Creeper, Zombie, Loup etc.). Pour les NBT, un article entier leur sera consacré, nous verrons donc ça plus tard. &#039;&#039;Spoiler, ces propriétés serviront à customiser vos créatures (leur donner une armure, un effet de potion etc.).&#039;&#039;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Il est impossible d’invoquer un joueur. Leur intelligence est trop complexe pour être créés de cette façon :/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Pour préciser une entité, il faut utiliser ce qu’on appelle un “sélecteur”. Ce dernier existe sous plusieurs formes :&lt;br /&gt;
&lt;br /&gt;
* @e (entity) : permet de sélectionner toutes les entités (joueur ou non) ;&lt;br /&gt;
* @a (all) : permet de sélectionner tous les joueurs ;&lt;br /&gt;
* @p (proximity) : permet de sélectionner le (ou “les” si un nombre est spécifié entre crochets) joueurs les plus proches de l’endroit où est exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* @r (random) : permet de sélectionner un (ou plusieurs si un nombre est spécifié entre crochets) joueur aléatoire ;&lt;br /&gt;
* @s (self) : permet de sélectionner l’entité ayant exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* : Peut être utilisée comme raccourcit pour “@a[name=]” ou comme sélecteur de joueur virtuel (ou “fake player”, correspondant à un pseudo associé à aucun joueur ou à un joueur déconnecté) ;&lt;br /&gt;
** : Sélectionne toutes entités, vivantes ou mortes, connectées ou non, réelles ou virtuelles (là où le @e ne sélectionne “que” les entités réelles vivantes et connectées).&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Une bonne partie de ces sélecteurs sont vieux et vous vous rendrez compte que seul le @e, le @s et l’astérisque (*) conservent toujours un véritable intérêt en 1.13 et au-delà. Les autres ne servent désormais qu’à “alléger” les commandes en évitant de devoir écrire certaines conditions.&amp;lt;/blockquote&amp;gt;Ces différents sélecteurs (à l’exception de “” et de l’astérisque) sont souvent directement suivis de crochets permettant l’ajout de conditions. Par exemple, si vous souhaitez sélectionner jusqu’à 3 joueurs se trouvant entre 5 et 10 blocs de distance de vous, vous n’aurez qu’à utiliser ce sélecteur:&lt;br /&gt;
 @a[distance=5..10,limit=3]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Comme dit précédemment, seul le @e et @s ont un réel intérêt. Vous pouvez aussi bien utiliser le sélecteur “@e[type=player,distance=5…10,limit=3]”.&amp;lt;/blockquote&amp;gt;Depuis la version 1.13, les choses sont devenues relativement simples à comprendre. Ici, pas besoin d’expliquer “distance=5…10” pour comprendre que ça ne sélectionne que les entités qui sont entre 5 et 10 blocs de distance. La seule difficulté sera de se rappeler des conditions possibles à utiliser dans ces sélecteurs. Voici une liste des plus fréquemment utilisés :&lt;br /&gt;
&lt;br /&gt;
* x=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* y=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* z=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* distance:&amp;lt;INTERVALLE&amp;gt;&lt;br /&gt;
* dx=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dy=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dz=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* type=&amp;lt;TYPE&amp;gt;&lt;br /&gt;
* limit=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* sort=&amp;lt;nearest|random|furthest|arbitrary&amp;gt;&lt;br /&gt;
* tag=&amp;lt;TAG&amp;gt;&lt;br /&gt;
* scores={&amp;lt;SCORE1&amp;gt;=&amp;lt;INTERVALLE&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
Essayons de voir ce que chacun d’eux permet de faire :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;“x=…”, “y=…” et “z=…”&#039;&#039;&#039; permettent d’indiquer une coordonnée absolue (coordonnée qui servira notamment à la condition “distance=”).&lt;br /&gt;
* &#039;&#039;&#039;“distance=…”&#039;&#039;&#039; sert à définir une… distance. Pour que l’entité valide cette condition, elle doit se trouver dans l’intervalle de distance précisé en valeur (nous y reviendrons un peu plus en détail en dessous). L’intervalle peut être composé de nombre à virgule afin d’augmenter la précision.&lt;br /&gt;
* &#039;&#039;&#039;“dx=…”, “dy=…” et “dz=…”&#039;&#039;&#039; servent à désigner une distance sur chacun des axes (là où le “distance=” permet de définir une zone sphérique, “dx=”, “dy=” et “dz=” permettent de faire une zone rectangulaire orientée vers le positif).&lt;br /&gt;
* &#039;&#039;&#039;“type=…”&#039;&#039;&#039; permet de restreindre (ou exclure si vous mettez “type=!…”) à un type d’entité (ex: @e[type=creeper] ne sélectionnera que les creepers)&lt;br /&gt;
* &#039;&#039;&#039;“limit=…”&#039;&#039;&#039; permet de définir un nombre maximum d’entité à sélectionner.&lt;br /&gt;
* &#039;&#039;&#039;“sort=…”&#039;&#039;&#039; permet, dans le cas où le nombre d’entités est limité, de définir quelles entités vont être sélectionnés. Ainsi, “nearest” prendra les entités les plus proches, “furthest” prendra les entités les plus lointaines, “random” prendra les entités aléatoirement et “arbitrary” n’appliquera aucun tri rendant donc la commande plus optimisée.&lt;br /&gt;
* &#039;&#039;&#039;“tag=…”&#039;&#039;&#039; permet de conserver (ou exclure si vous mettez “tag=!…”) les entités portant un tag précis. Nous verrons en quoi consistent les tags dans un autre chapitre.&lt;br /&gt;
* &#039;&#039;&#039;“scores=…”&#039;&#039;&#039; permet de conserver les entités ayant des scores correspondant à ceux indiqués. Nous verrons en quoi consistent les scores dans un autre chapitre.&lt;br /&gt;
&lt;br /&gt;
La valeur INTERVALLE suit une syntaxe un peu particulière, elle permet de valider la condition si le nombre se trouve entre deux bornes (cas 1) ou s’il est exactement égal au nombre précisé (cas 2) :&lt;br /&gt;
&lt;br /&gt;
* [min]…[max] : Permet donc de valider si le nombre se trouve entre les deux bornes (incluses). Les paramètres sont optionnels car il est possible de ne pas spécifier l’une ou l’autre des bornes de façon à comprendre soit toutes les valeurs plus petites que max soit toutes les valeurs plus grandes que min.&lt;br /&gt;
* [valeur] : Permet de valider la condition si le nombre est strictement égal à celui précisé.&lt;br /&gt;
&lt;br /&gt;
Les valeurs bornant l’intervalle peuvent être, si le paramètre l’accepte, des nombres à virgule, mais attention : dans le cas numéro 2, 64 sera différent de 64.001 ! Attention, par convention, les décimales sont séparées des entiers par des points et non des virgules comme nous avons l’habitude en France.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Pour être sélectionnée, l’entité doit répondre à toutes les conditions du sélecteur, il s’agit donc, pour ceux qui ont quelques connaissances en algorithmique ou en électronique, d’un “et logique” entre chaque paramètre. Pour faire un “ou logique” vous devrez passer par un système de commande qui ajoute un tag (ou autres) si telle ou telle condition est validée. Vous exécuterez ensuite la commande si vous détectez la présence de ce tag.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Maintenant, vous maîtrisez les bases des objets manipulables dans Minecraft. Même si pour l’instant, cela peut vous paraître seulement à fin décorative pour votre map ou vos entités, vous vous rendrez assez vite compte que cela peut aussi être un moyen de parvenir à des résultats plus complexes, notamment avec le prochain article qui parlera de la commande 1.13 qui a radicalement changé nos façons de concevoir nos systèmes : la commande exécute.&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=12</id>
		<title>Guide Mapmaking : Blocs &amp; Entités</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=12"/>
		<updated>2023-06-01T08:21:51Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maintenant que nous avons vu les différents supports de commandes, nous allons commencer à rentrer dans le vif du sujet en parlant des différents objets que vous allez manipuler.&lt;br /&gt;
&lt;br /&gt;
Si vous avez une vague connaissance à propos du fonctionnement d’un jeu vidéo, vous devriez être au courant qu’il existe plusieurs types d’objets (pour ceux qui s’y connaissent vraiment dans le domaine, il s’agit là d’une liste non exhaustive évidemment).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;L’environnement&#039;&#039;&#039; constitué ici de blocs, qui sont des formes géométriques de base. Ces derniers sont persistants, c’est-à-dire que chaque modification apportée à ces blocs restera telle quelle jusqu’à ce qu’une autre modification vienne changer leur état.&lt;br /&gt;
* &#039;&#039;&#039;Les entités&#039;&#039;&#039; constituent toute la partie “active” d’un jeu et sont à l’origine de la plupart des actions de ce dernier. Dans Minecraft, il s’agit de créatures, qu’elles soient gentilles, neutres, méchantes ou encore des joueurs !&lt;br /&gt;
* &#039;&#039;&#039;Les particules&#039;&#039;&#039; permettent de faire des effets visuels et de dynamiser le jeu (en plus des animations appliquées à ces 3 types d’objets).&lt;br /&gt;
&lt;br /&gt;
Ce qui va nous intéresser aujourd’hui, c’est est de voir comment sont construits ces objets et comment on peut les manipuler. Vu que la manipulation est pour chaque objet dissemblable, nous allons séparer ces explications en deux parties.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;À savoir :&#039;&#039;&#039; Une particule, à la différence des blocs et entités, ne peut être ni modifiée ni même être détecté une fois créée. Elle ne possède donc pas de sélecteur et ne peut, dans Minecraft, pas être « gérée » après sa création. Nous ne parlerons donc pas des particules car leur utilisation ne se résume qu’à une seule commande (leur création via /particle).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Blocs ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Construire ces objets sera une tâche relativement facile, car chacun possède une commande prévue à cet effet. Ainsi, pour les blocs, cette commande est la suivante :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;[blockState][NBT] [replace|destroy|keep]&lt;br /&gt;
Grâce à elle, vous pouvez poser un bloc à la position donnée. Le “type” correspond au bloc Minecraft que vous souhaitez placer ou, si vous préférez, à son matériau (pierre, terre, bois, etc). Vous remarquerez que seuls les deux premiers paramètres sont obligatoires. Dans la plupart des cas (les cas les plus simples), vous n’aurez donc qu’a vous souvenir de cette syntaxe :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Vous pouvez afficher les identifiants de chacun des blocs grâce au raccourci “F3”, puis en visant le bloc, ou bien par le raccourci “F3 + H”. Son identifiant sera alors affiché sous le nom de l’item pointé par votre souris.&amp;lt;/blockquote&amp;gt;Le dernier paramètre permet de modifier le comportement de la commande. Trois sous-paramètres différents sont disponibles :&lt;br /&gt;
&lt;br /&gt;
* “replace” (paramètre par défaut) : permet de placer le bloc peu importe le bloc d’origine.&lt;br /&gt;
* “destroy” : pose le bloc en détruisant le bloc précédent, générant ainsi des particules et lâchant l’item correspondant à ce dernier.&lt;br /&gt;
* “keep” : permet de ne placer le bloc que si de l’air se trouvait à la position précisée.&lt;br /&gt;
&lt;br /&gt;
Enfin, “blockState” et “NBT” correspondent aux propriétés du bloc. Le “blockState” définit la forme du bloc si celui-ci en possède plusieurs (orientation, âge de la plante, forme de l’escalier, etc.) tandis que “NBT” est une structure de données définissant les informations stockées par le bloc. Les quelques blocs possédant cette structure sont appelés “Block Entity”, catégorie où l’on peut retrouver entre autres les coffres, les panneaux, les têtes, les jukeboxes, ou les lits. Nous reviendrons sur les NBTs un peu plus tard dans ce guide.&lt;br /&gt;
&lt;br /&gt;
On peut différencier ces deux structures par la façon dont elles sont délimitées. Ainsi le “blockState” se trouvera entre deux crochets “[]” et le “NBT” entre deux accolades “{}”.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple afin de mieux comprendre la syntaxe :&lt;br /&gt;
 /setblock 10 11 12 furnace[lit=true]{Items:[{id:slime_ball,Slot:0,Count:1}]} keep&lt;br /&gt;
Placera un four à l’apparence allumée et possédant une Slime Ball dans le slot de cuisson aux coordonnées x=10, y=11 et z=12 seulement si le bloc d’origine était de l’air.&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Afin de manipuler les blocs, vous aurez à disposition une panoplie de commandes telles que :&lt;br /&gt;
&lt;br /&gt;
* /setblock   …&lt;br /&gt;
* /fill    …&lt;br /&gt;
* /data merge block  …&lt;br /&gt;
* /clone    …&lt;br /&gt;
[[Fichier:Menu F3.png|vignette|536x536px|Informations pouvant être affiché en jeu en appuyant sur &#039;F3&#039;]]&lt;br /&gt;
Vous trouverez l’explication officielle de chacune de ces commandes en cliquant dessus. Ce qui va nous intéresser ici, ce sont les paramètres “”. Tout à l’heure nous avons vu que si nous mettions “10 11 12” dans ce paramètre, notre bloc allait se situer à la position x=10, y=11 et z=12. Mais qu’est-ce que ça signifie exactement ?&lt;br /&gt;
&lt;br /&gt;
En appuyant sur “F3”, plein de données devraient apparaître comme sur l’image ci-dessus. Ces dernières permettent de s’y retrouver plus facilement afin de créer ou débugger un système (ou du moins, c’est de cette façon que nous allons les utiliser). Au centre, vous pouvez voir ce qu’on appelle un repère. Ce dernier contient 3 lignes orientées chacune vers le côté positif de l’axe qu’elle représente :&lt;br /&gt;
&lt;br /&gt;
* Axe rouge: correspond à l’axe X&lt;br /&gt;
* Axe vert: correspond à l’axe Y&lt;br /&gt;
* Axe bleu: correspond à l’axe Z&lt;br /&gt;
&lt;br /&gt;
Une position sera définie grâce à une valeur sur chacun des axes. Vous pouvez voir en haut à gauche de l’image votre position actuelle (“XYZ: …”) ainsi que la position du bloc dans lequel vous vous trouvez (“Block: …”). Enfin, sur les côtés de l’image, vous pouvez connaître la position et le type de bloc que vous visez, vous permettant de les éditer facilement avec une commande.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Lorsque vous écrivez une commande avec un paramètre permettant de désigner la position d’un bloc, Minecraft vous suggérera toujours le bloc que vous visez. Si vous n’en visez aucun, il vous suggérera votre position actuelle. En appuyant sur ‘tab’, vous pourrez utiliser l’auto-complétion des commandes qui prendra la valeur suggérée.&amp;lt;/blockquote&amp;gt;Bon, connaître la position des blocs c’est bien, mais ça reste assez limité. Si par exemple vous souhaitez placer un bloc à côté d’un joueur, vous allez être embêtés car vous ne connaissez pas la position où vous devez placer le bloc. C’est pour cette raison qu’il existe 3 types de coordonnées :&lt;br /&gt;
[[Fichier:Directions locales.png|vignette|Directions locales (vert -&amp;gt; X, rouge -&amp;gt; Y, bleu -&amp;gt; Z)]]&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées absolues&#039;&#039;&#039; (ex: 1 2 3) : celle que vous apercevez dans le menu ‘F3’. Si tous les joueurs font un /setblock avec une même coordonnée absolue, chacun d’eux changera le même bloc.&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées relatives&#039;&#039;&#039; (ex: ~1 ~2 ~3) : ici, ces coordonnées ne dépendent plus de la map en elle-même (et son centre en 0 0 0) mais du joueur (ou entité ou bloc) qui exécute la commande. Ainsi, un “/setblock” avec les coordonnées ~1 ~2 ~3 placera un bloc à proximité de la position où la commande a été exécutée. Si votre position est 20 20 20, le bloc se placera en 21 22 23 (20+1, 20+2 et 20+3). Le nombre est préfixé d’un tilde ‘~’.&lt;br /&gt;
* &#039;&#039;&#039;Les coordonnées locales&#039;&#039;&#039; (ex: ^1 ^2 ^3) : ces dernières sont plus complexes car dépendant de l’orientation de l’entité ayant exécuté la commande. Ainsi, un “/setblock ^1 ^2 ^3 stone” placera un bloc de pierre 1 bloc à gauche du joueur, 2 blocs au-dessus de sa tête et 3 blocs devant lui.  &amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Avertissement :&#039;&#039;&#039; Si le joueur regarde le ciel, 2 blocs au-dessus de la tête du joueur correspondront à 2 blocs derrière son corps joueur car sa tête et son corps sont orientés différemment et nous parlons bien ici de l’orientation de sa tête. Le nombre est préfixé d’un accent circonflexe &#039;&#039;&#039;Note :&#039;&#039;&#039; Ce système de coordonnées ne fonctionne pas seulement pour placer un bloc ou sélectionner un bloc mais bien pour toutes autres commandes nécessitant une position pour paramètre. Note : Il est possible de mélanger les 2 premiers types de coordonnées dans un même paramètre (ex: 10 ~11 12).&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enfin, vous vous demandez sûrement pourquoi dans certaines commandes comme le “/fill”, il y a deux paramètres “position”. Il s’agit en fait d’un moyen  pour sélectionner une zone de blocs et non un seul bloc. Vous devrez donc sélectionner la position des deux extrémités de votre zone (qui prend la forme d’un parallélépipède rectangle), à savoir celle du bloc violet et celle du bloc jaune sur l’image ci-dessous.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Pour la commande “/clone”, un troisième paramètre “” est demandé. Ce dernier sert à définir la position à laquelle la zone sélectionnée par les deux premiers paramètres sera placée. La zone se placera alors de sorte à ce que son extrémité ayant les coordonnées les moins élevées correspond avec les coordonnées données dans ce troisième paramètre. Dans l’image ci-dessus, la zone se placera de façon à ce que le bloc violet soit placé aux coordonnées précisées dans le , comme nous le montre le repère placé sur la boîte délimitant la zone.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entités ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Maintenant que nous avons vu comment créer et modifier l’environnement, nous allons nos attaquer aux entités. Ces entités seront le cœur de vos maps car elles représenteront à la fois les pièces mobiles et les éléments actifs rendant votre map dynamique. Afin d’invoquer une entité, nous utiliserons la commande :&lt;br /&gt;
 /summon &amp;lt;type&amp;gt; &amp;lt;position&amp;gt; [NBT]&lt;br /&gt;
Comme pour les blocs, la position sert à définir où l’entité va être créée. Quant au type, il s’agit cette fois de la nature de l’entité que vous souhaitez invoquer (Creeper, Zombie, Loup etc.). Pour les NBT, un article entier leur sera consacré, nous verrons donc ça plus tard. &#039;&#039;Spoiler, ces propriétés serviront à customiser vos créatures (leur donner une armure, un effet de potion etc.).&#039;&#039;&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Il est impossible d’invoquer un joueur. Leur intelligence est trop complexe pour être créés de cette façon :/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Pour préciser une entité, il faut utiliser ce qu’on appelle un “sélecteur”. Ce dernier existe sous plusieurs formes :&lt;br /&gt;
&lt;br /&gt;
* @e (entity) : permet de sélectionner toutes les entités (joueur ou non) ;&lt;br /&gt;
* @a (all) : permet de sélectionner tous les joueurs ;&lt;br /&gt;
* @p (proximity) : permet de sélectionner le (ou “les” si un nombre est spécifié entre crochets) joueurs les plus proches de l’endroit où est exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* @r (random) : permet de sélectionner un (ou plusieurs si un nombre est spécifié entre crochets) joueur aléatoire ;&lt;br /&gt;
* @s (self) : permet de sélectionner l’entité ayant exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* : Peut être utilisée comme raccourcit pour “@a[name=]” ou comme sélecteur de joueur virtuel (ou “fake player”, correspondant à un pseudo associé à aucun joueur ou à un joueur déconnecté) ;&lt;br /&gt;
** : Sélectionne toutes entités, vivantes ou mortes, connectées ou non, réelles ou virtuelles (là où le @e ne sélectionne “que” les entités réelles vivantes et connectées).&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Une bonne partie de ces sélecteurs sont vieux et vous vous rendrez compte que seul le @e, le @s et l’astérisque (*) conservent toujours un véritable intérêt en 1.13 et au-delà. Les autres ne servent désormais qu’à “alléger” les commandes en évitant de devoir écrire certaines conditions.&amp;lt;/blockquote&amp;gt;Ces différents sélecteurs (à l’exception de “” et de l’astérisque) sont souvent directement suivis de crochets permettant l’ajout de conditions. Par exemple, si vous souhaitez sélectionner jusqu’à 3 joueurs se trouvant entre 5 et 10 blocs de distance de vous, vous n’aurez qu’à utiliser ce sélecteur:&lt;br /&gt;
 @a[distance=5..10,limit=3]&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Comme dit précédemment, seul le @e et @s ont un réel intérêt. Vous pouvez aussi bien utiliser le sélecteur “@e[type=player,distance=5…10,limit=3]”.&amp;lt;/blockquote&amp;gt;Depuis la version 1.13, les choses sont devenues relativement simples à comprendre. Ici, pas besoin d’expliquer “distance=5…10” pour comprendre que ça ne sélectionne que les entités qui sont entre 5 et 10 blocs de distance. La seule difficulté sera de se rappeler des conditions possibles à utiliser dans ces sélecteurs. Voici une liste des plus fréquemment utilisés :&lt;br /&gt;
&lt;br /&gt;
* x=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* y=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* z=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* distance:&amp;lt;INTERVALLE&amp;gt;&lt;br /&gt;
* dx=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dy=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dz=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* type=&amp;lt;TYPE&amp;gt;&lt;br /&gt;
* limit=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* sort=&amp;lt;nearest|random|furthest|arbitrary&amp;gt;&lt;br /&gt;
* tag=&amp;lt;TAG&amp;gt;&lt;br /&gt;
* scores={&amp;lt;SCORE1&amp;gt;=&amp;lt;INTERVALLE&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
Essayons de voir ce que chacun d’eux permet de faire :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;“x=…”, “y=…” et “z=…”&#039;&#039;&#039; permettent d’indiquer une coordonnée absolue (coordonnée qui servira notamment à la condition “distance=”).&lt;br /&gt;
* &#039;&#039;&#039;“distance=…”&#039;&#039;&#039; sert à définir une… distance. Pour que l’entité valide cette condition, elle doit se trouver dans l’intervalle de distance précisé en valeur (nous y reviendrons un peu plus en détail en dessous). L’intervalle peut être composé de nombre à virgule afin d’augmenter la précision.&lt;br /&gt;
* &#039;&#039;&#039;“dx=…”, “dy=…” et “dz=…”&#039;&#039;&#039; servent à désigner une distance sur chacun des axes (là où le “distance=” permet de définir une zone sphérique, “dx=”, “dy=” et “dz=” permettent de faire une zone rectangulaire orientée vers le positif).&lt;br /&gt;
* &#039;&#039;&#039;“type=…”&#039;&#039;&#039; permet de restreindre (ou exclure si vous mettez “type=!…”) à un type d’entité (ex: @e[type=creeper] ne sélectionnera que les creepers)&lt;br /&gt;
* &#039;&#039;&#039;“limit=…”&#039;&#039;&#039; permet de définir un nombre maximum d’entité à sélectionner.&lt;br /&gt;
* &#039;&#039;&#039;“sort=…”&#039;&#039;&#039; permet, dans le cas où le nombre d’entités est limité, de définir quelles entités vont être sélectionnés. Ainsi, “nearest” prendra les entités les plus proches, “furthest” prendra les entités les plus lointaines, “random” prendra les entités aléatoirement et “arbitrary” n’appliquera aucun tri rendant donc la commande plus optimisée.&lt;br /&gt;
* &#039;&#039;&#039;“tag=…”&#039;&#039;&#039; permet de conserver (ou exclure si vous mettez “tag=!…”) les entités portant un tag précis. Nous verrons en quoi consistent les tags dans un autre chapitre.&lt;br /&gt;
* &#039;&#039;&#039;“scores=…”&#039;&#039;&#039; permet de conserver les entités ayant des scores correspondant à ceux indiqués. Nous verrons en quoi consistent les scores dans un autre chapitre.&lt;br /&gt;
&lt;br /&gt;
La valeur INTERVALLE suit une syntaxe un peu particulière, elle permet de valider la condition si le nombre se trouve entre deux bornes (cas 1) ou s’il est exactement égal au nombre précisé (cas 2) :&lt;br /&gt;
&lt;br /&gt;
* [min]…[max] : Permet donc de valider si le nombre se trouve entre les deux bornes (incluses). Les paramètres sont optionnels car il est possible de ne pas spécifier l’une ou l’autre des bornes de façon à comprendre soit toutes les valeurs plus petites que max soit toutes les valeurs plus grandes que min.&lt;br /&gt;
* [valeur] : Permet de valider la condition si le nombre est strictement égal à celui précisé.&lt;br /&gt;
&lt;br /&gt;
Les valeurs bornant l’intervalle peuvent être, si le paramètre l’accepte, des nombres à virgule, mais attention : dans le cas numéro 2, 64 sera différent de 64.001 ! Attention, par convention, les décimales sont séparées des entiers par des points et non des virgules comme nous avons l’habitude en France.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Pour être sélectionnée, l’entité doit répondre à toutes les conditions du sélecteur, il s’agit donc, pour ceux qui ont quelques connaissances en algorithmique ou en électronique, d’un “et logique” entre chaque paramètre. Pour faire un “ou logique” vous devrez passer par un système de commande qui ajoute un tag (ou autres) si telle ou telle condition est validée. Vous exécuterez ensuite la commande si vous détectez la présence de ce tag.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Maintenant, vous maîtrisez les bases des objets manipulables dans Minecraft. Même si pour l’instant, cela peut vous paraître seulement à fin décorative pour votre map ou vos entités, vous vous rendrez assez vite compte que cela peut aussi être un moyen de parvenir à des résultats plus complexes, notamment avec le prochain article qui parlera de la commande 1.13 qui a radicalement changé nos façons de concevoir nos systèmes : la commande exécute.&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Fichier:S%C3%A9lection_de_zone.png&amp;diff=11</id>
		<title>Fichier:Sélection de zone.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Fichier:S%C3%A9lection_de_zone.png&amp;diff=11"/>
		<updated>2023-06-01T08:20:04Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Représentation visuelle de la sélection de zone dans Minecraft en utilisant 2 points&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Fichier:Menu_F3.png&amp;diff=10</id>
		<title>Fichier:Menu F3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Fichier:Menu_F3.png&amp;diff=10"/>
		<updated>2023-06-01T08:17:10Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Détails des éléments importants du menu F3 de Minecraft&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Fichier:Directions_locales.png&amp;diff=9</id>
		<title>Fichier:Directions locales.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Fichier:Directions_locales.png&amp;diff=9"/>
		<updated>2023-06-01T08:14:37Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Affiche les flèches correspondants aux axes locales dans Minecraft&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=8</id>
		<title>Guide Mapmaking : Blocs &amp; Entités</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Blocs_%26_Entit%C3%A9s&amp;diff=8"/>
		<updated>2023-06-01T08:08:33Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : Page créée avec « Maintenant que nous avons vu les différents supports de commandes, nous allons commencer à rentrer dans le vif du sujet en parlant des différents objets que vous allez manipuler.  Si vous avez une vague connaissance à propos du fonctionnement d’un jeu vidéo, vous devriez être au courant qu’il existe plusieurs types d’objets (pour ceux qui s’y connaissent vraiment dans le domaine, il s’agit là d’une liste non exhaustive évidemment).  * &amp;#039;&amp;#039;&amp;#039;L’e... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Maintenant que nous avons vu les différents supports de commandes, nous allons commencer à rentrer dans le vif du sujet en parlant des différents objets que vous allez manipuler.&lt;br /&gt;
&lt;br /&gt;
Si vous avez une vague connaissance à propos du fonctionnement d’un jeu vidéo, vous devriez être au courant qu’il existe plusieurs types d’objets (pour ceux qui s’y connaissent vraiment dans le domaine, il s’agit là d’une liste non exhaustive évidemment).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;L’environnement&#039;&#039;&#039; constitué ici de blocs, qui sont des formes géométriques de base. Ces derniers sont persistants, c’est-à-dire que chaque modification apportée à ces blocs restera telle quelle jusqu’à ce qu’une autre modification vienne changer leur état.&lt;br /&gt;
* &#039;&#039;&#039;Les entités&#039;&#039;&#039; constituent toute la partie “active” d’un jeu et sont à l’origine de la plupart des actions de ce dernier. Dans Minecraft, il s’agit de créatures, qu’elles soient gentilles, neutres, méchantes ou encore des joueurs !&lt;br /&gt;
* &#039;&#039;&#039;Les particules&#039;&#039;&#039; permettent de faire des effets visuels et de dynamiser le jeu (en plus des animations appliquées à ces 3 types d’objets).&lt;br /&gt;
&lt;br /&gt;
Ce qui va nous intéresser aujourd’hui, c’est est de voir comment sont construits ces objets et comment on peut les manipuler. Vu que la manipulation est pour chaque objet dissemblable, nous allons séparer ces explications en deux parties.&lt;br /&gt;
&lt;br /&gt;
Important&lt;br /&gt;
&lt;br /&gt;
À savoir : Une particule, à la différence des blocs et entités, ne peut être ni modifiée ni même être détecté une fois créée. Elle ne possède donc pas de sélecteur et ne peut, dans Minecraft, pas être « gérée » après sa création. Nous ne parlerons donc pas des particules car leur utilisation ne se résume qu’à une seule commande (leur création via /particle).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Blocs ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Construire ces objets sera une tâche relativement facile, car chacun possède une commande prévue à cet effet. Ainsi, pour les blocs, cette commande est la suivante :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;[blockState][NBT] [replace|destroy|keep]&lt;br /&gt;
Grâce à elle, vous pouvez poser un bloc à la position donnée. Le “type” correspond au bloc Minecraft que vous souhaitez placer ou, si vous préférez, à son matériau (pierre, terre, bois, etc). Vous remarquerez que seuls les deux premiers paramètres sont obligatoires. Dans la plupart des cas (les cas les plus simples), vous n’aurez donc qu’a vous souvenir de cette syntaxe :&lt;br /&gt;
 /setblock &amp;lt;position&amp;gt; &amp;lt;type&amp;gt;&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Vous pouvez afficher les identifiants de chacun des blocs grâce au raccourci “F3”, puis en visant le bloc, ou bien par le raccourci “F3 + H”. Son identifiant sera alors affiché sous le nom de l’item pointé par votre souris.&lt;br /&gt;
&lt;br /&gt;
Le dernier paramètre permet de modifier le comportement de la commande. Trois sous-paramètres différents sont disponibles :&lt;br /&gt;
&lt;br /&gt;
* “replace” (paramètre par défaut) : permet de placer le bloc peu importe le bloc d’origine.&lt;br /&gt;
* “destroy” : pose le bloc en détruisant le bloc précédent, générant ainsi des particules et lâchant l’item correspondant à ce dernier.&lt;br /&gt;
* “keep” : permet de ne placer le bloc que si de l’air se trouvait à la position précisée.&lt;br /&gt;
&lt;br /&gt;
Enfin, “blockState” et “NBT” correspondent aux propriétés du bloc. Le “blockState” définit la forme du bloc si celui-ci en possède plusieurs (orientation, âge de la plante, forme de l’escalier, etc.) tandis que “NBT” est une structure de données définissant les informations stockées par le bloc. Les quelques blocs possédant cette structure sont appelés “Block Entity”, catégorie où l’on peut retrouver entre autres les coffres, les panneaux, les têtes, les jukeboxes, ou les lits. Nous reviendrons sur les NBTs un peu plus tard dans ce guide.&lt;br /&gt;
&lt;br /&gt;
On peut différencier ces deux structures par la façon dont elles sont délimitées. Ainsi le “blockState” se trouvera entre deux crochets “[]” et le “NBT” entre deux accolades “{}”.&lt;br /&gt;
&lt;br /&gt;
Voici un exemple afin de mieux comprendre la syntaxe :&lt;br /&gt;
 /setblock 10 11 12 furnace[lit=true]{Items:[{id:slime_ball,Slot:0,Count:1}]} keep&lt;br /&gt;
Placera un four à l’apparence allumée et possédant une Slime Ball dans le slot de cuisson aux coordonnées x=10, y=11 et z=12 seulement si le bloc d’origine était de l’air.&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Afin de manipuler les blocs, vous aurez à disposition une panoplie de commandes telles que :&lt;br /&gt;
&lt;br /&gt;
* /setblock   …&lt;br /&gt;
* /fill    …&lt;br /&gt;
* /data merge block  …&lt;br /&gt;
* /clone    …&lt;br /&gt;
&lt;br /&gt;
Vous trouverez l’explication officielle de chacune de ces commandes en cliquant dessus. Ce qui va nous intéresser ici, ce sont les paramètres “”. Tout à l’heure nous avons vu que si nous mettions “10 11 12” dans ce paramètre, notre bloc allait se situer à la position x=10, y=11 et z=12. Mais qu’est-ce que ça signifie exactement ?&lt;br /&gt;
&lt;br /&gt;
En appuyant sur “F3”, plein de données devraient apparaître comme sur l’image ci-dessus. Ces dernières permettent de s’y retrouver plus facilement afin de créer ou débugger un système (ou du moins, c’est de cette façon que nous allons les utiliser). Au centre, vous pouvez voir ce qu’on appelle un repère. Ce dernier contient 3 lignes orientées chacune vers le côté positif de l’axe qu’elle représente :&lt;br /&gt;
&lt;br /&gt;
* Axe rouge: correspond à l’axe X&lt;br /&gt;
* Axe vert: correspond à l’axe Y&lt;br /&gt;
* Axe bleu: correspond à l’axe Z&lt;br /&gt;
&lt;br /&gt;
Une position sera définie grâce à une valeur sur chacun des axes. Vous pouvez voir en haut à gauche de l’image votre position actuelle (“XYZ: …”) ainsi que la position du bloc dans lequel vous vous trouvez (“Block: …”). Enfin, sur les côtés de l’image, vous pouvez connaître la position et le type de bloc que vous visez, vous permettant de les éditer facilement avec une commande.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Lorsque vous écrivez une commande avec un paramètre permettant de désigner la position d’un bloc, Minecraft vous suggérera toujours le bloc que vous visez. Si vous n’en visez aucun, il vous suggérera votre position actuelle. En appuyant sur ‘tab’, vous pourrez utiliser l’auto-complétion des commandes qui prendra la valeur suggérée.&lt;br /&gt;
&lt;br /&gt;
Bon, connaître la position des blocs c’est bien, mais ça reste assez limité. Si par exemple vous souhaitez placer un bloc à côté d’un joueur, vous allez être embêtés car vous ne connaissez pas la position où vous devez placer le bloc. C’est pour cette raison qu’il existe 3 types de coordonnées :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées absolues&#039;&#039;&#039; (ex: 1 2 3) : celle que vous apercevez dans le menu ‘F3’. Si tous les joueurs font un /setblock avec une même coordonnée absolue, chacun d’eux changera le même bloc.&lt;br /&gt;
* &#039;&#039;&#039;Coordonnées relatives&#039;&#039;&#039; (ex: ~1 ~2 ~3) : ici, ces coordonnées ne dépendent plus de la map en elle-même (et son centre en 0 0 0) mais du joueur (ou entité ou bloc) qui exécute la commande. Ainsi, un “/setblock” avec les coordonnées ~1 ~2 ~3 placera un bloc à proximité de la position où la commande a été exécutée. Si votre position est 20 20 20, le bloc se placera en 21 22 23 (20+1, 20+2 et 20+3). Le nombre est préfixé d’un tilde ‘~’.&lt;br /&gt;
* &#039;&#039;&#039;Les coordonnées locales&#039;&#039;&#039; (ex: ^1 ^2 ^3) : ces dernières sont plus complexes car dépendant de l’orientation de l’entité ayant exécuté la commande. Ainsi, un “/setblock ^1 ^2 ^3 stone” placera un bloc de pierre 1 bloc à gauche du joueur, 2 blocs au-dessus de sa tête et 3 blocs devant lui.  Avertissement  Si le joueur regarde le ciel, 2 blocs au-dessus de la tête du joueur correspondront à 2 blocs derrière son corps joueur car sa tête et son corps sont orientés différemment et nous parlons bien ici de l’orientation de sa tête. Le nombre est préfixé d’un accent circonflexe.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Ce système de coordonnées ne fonctionne pas seulement pour placer un bloc ou sélectionner un bloc mais bien pour toutes autres commandes nécessitant une position pour paramètre. Note : Il est possible de mélanger les 2 premiers types de coordonnées dans un même paramètre (ex: 10 ~11 12).&lt;br /&gt;
&lt;br /&gt;
Enfin, vous vous demandez sûrement pourquoi dans certaines commandes comme le “/fill”, il y a deux paramètres “position”. Il s’agit en fait d’un moyen  pour sélectionner une zone de blocs et non un seul bloc. Vous devrez donc sélectionner la position des deux extrémités de votre zone (qui prend la forme d’un parallélépipède rectangle), à savoir celle du bloc violet et celle du bloc jaune sur l’image ci-dessous.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Pour la commande “/clone”, un troisième paramètre “” est demandé. Ce dernier sert à définir la position à laquelle la zone sélectionnée par les deux premiers paramètres sera placée. La zone se placera alors de sorte à ce que son extrémité ayant les coordonnées les moins élevées correspond avec les coordonnées données dans ce troisième paramètre. Dans l’image ci-dessus, la zone se placera de façon à ce que le bloc violet soit placé aux coordonnées précisées dans le , comme nous le montre le repère placé sur la boîte délimitant la zone.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Entités ==&lt;br /&gt;
&lt;br /&gt;
=== Création ===&lt;br /&gt;
Maintenant que nous avons vu comment créer et modifier l’environnement, nous allons nos attaquer aux entités. Ces entités seront le cœur de vos maps car elles représenteront à la fois les pièces mobiles et les éléments actifs rendant votre map dynamique. Afin d’invoquer une entité, nous utiliserons la commande :&lt;br /&gt;
 /summon &amp;lt;type&amp;gt; &amp;lt;position&amp;gt; [NBT]&lt;br /&gt;
Comme pour les blocs, la position sert à définir où l’entité va être créée. Quant au type, il s’agit cette fois de la nature de l’entité que vous souhaitez invoquer (Creeper, Zombie, Loup etc.). Pour les NBT, un article entier leur sera consacré, nous verrons donc ça plus tard. &#039;&#039;Spoiler, ces propriétés serviront à customiser vos créatures (leur donner une armure, un effet de potion etc.).&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Il est impossible d’invoquer un joueur. Leur intelligence est trop complexe pour être créés de cette façon :/&lt;br /&gt;
&lt;br /&gt;
=== Sélection ===&lt;br /&gt;
Pour préciser une entité, il faut utiliser ce qu’on appelle un “sélecteur”. Ce dernier existe sous plusieurs formes :&lt;br /&gt;
&lt;br /&gt;
* @e (entity) : permet de sélectionner toutes les entités (joueur ou non) ;&lt;br /&gt;
* @a (all) : permet de sélectionner tous les joueurs ;&lt;br /&gt;
* @p (proximity) : permet de sélectionner le (ou “les” si un nombre est spécifié entre crochets) joueurs les plus proches de l’endroit où est exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* @r (random) : permet de sélectionner un (ou plusieurs si un nombre est spécifié entre crochets) joueur aléatoire ;&lt;br /&gt;
* @s (self) : permet de sélectionner l’entité ayant exécuté la commande (cf. “Les /execute”) ;&lt;br /&gt;
* : Peut être utilisée comme raccourcit pour “@a[name=]” ou comme sélecteur de joueur virtuel (ou “fake player”, correspondant à un pseudo associé à aucun joueur ou à un joueur déconnecté) ;&lt;br /&gt;
** : Sélectionne toutes entités, vivantes ou mortes, connectées ou non, réelles ou virtuelles (là où le @e ne sélectionne “que” les entités réelles vivantes et connectées).&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Une bonne partie de ces sélecteurs sont vieux et vous vous rendrez compte que seul le @e, le @s et l’astérisque (*) conservent toujours un véritable intérêt en 1.13 et au-delà. Les autres ne servent désormais qu’à “alléger” les commandes en évitant de devoir écrire certaines conditions.&lt;br /&gt;
&lt;br /&gt;
Ces différents sélecteurs (à l’exception de “” et de l’astérisque) sont souvent directement suivis de crochets permettant l’ajout de conditions. Par exemple, si vous souhaitez sélectionner jusqu’à 3 joueurs se trouvant entre 5 et 10 blocs de distance de vous, vous n’aurez qu’à utiliser ce sélecteur:&lt;br /&gt;
 @a[distance=5..10,limit=3]&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Comme dit précédemment, seul le @e et @s ont un réel intérêt. Vous pouvez aussi bien utiliser le sélecteur “@e[type=player,distance=5…10,limit=3]”.&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.13, les choses sont devenues relativement simples à comprendre. Ici, pas besoin d’expliquer “distance=5…10” pour comprendre que ça ne sélectionne que les entités qui sont entre 5 et 10 blocs de distance. La seule difficulté sera de se rappeler des conditions possibles à utiliser dans ces sélecteurs. Voici une liste des plus fréquemment utilisés :&lt;br /&gt;
&lt;br /&gt;
* x=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* y=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* z=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* distance:&amp;lt;INTERVALLE&amp;gt;&lt;br /&gt;
* dx=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dy=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* dz=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* type=&amp;lt;TYPE&amp;gt;&lt;br /&gt;
* limit=&amp;lt;VALEUR&amp;gt;&lt;br /&gt;
* sort=&amp;lt;nearest|random|furthest|arbitrary&amp;gt;&lt;br /&gt;
* tag=&amp;lt;TAG&amp;gt;&lt;br /&gt;
* scores={&amp;lt;SCORE1&amp;gt;=&amp;lt;INTERVALLE&amp;gt;}&lt;br /&gt;
&lt;br /&gt;
Essayons de voir ce que chacun d’eux permet de faire :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;“x=…”, “y=…” et “z=…”&#039;&#039;&#039; permettent d’indiquer une coordonnée absolue (coordonnée qui servira notamment à la condition “distance=”).&lt;br /&gt;
* &#039;&#039;&#039;“distance=…”&#039;&#039;&#039; sert à définir une… distance. Pour que l’entité valide cette condition, elle doit se trouver dans l’intervalle de distance précisé en valeur (nous y reviendrons un peu plus en détail en dessous). L’intervalle peut être composé de nombre à virgule afin d’augmenter la précision.&lt;br /&gt;
* &#039;&#039;&#039;“dx=…”, “dy=…” et “dz=…”&#039;&#039;&#039; servent à désigner une distance sur chacun des axes (là où le “distance=” permet de définir une zone sphérique, “dx=”, “dy=” et “dz=” permettent de faire une zone rectangulaire orientée vers le positif).&lt;br /&gt;
* &#039;&#039;&#039;“type=…”&#039;&#039;&#039; permet de restreindre (ou exclure si vous mettez “type=!…”) à un type d’entité (ex: @e[type=creeper] ne sélectionnera que les creepers)&lt;br /&gt;
* &#039;&#039;&#039;“limit=…”&#039;&#039;&#039; permet de définir un nombre maximum d’entité à sélectionner.&lt;br /&gt;
* &#039;&#039;&#039;“sort=…”&#039;&#039;&#039; permet, dans le cas où le nombre d’entités est limité, de définir quelles entités vont être sélectionnés. Ainsi, “nearest” prendra les entités les plus proches, “furthest” prendra les entités les plus lointaines, “random” prendra les entités aléatoirement et “arbitrary” n’appliquera aucun tri rendant donc la commande plus optimisée.&lt;br /&gt;
* &#039;&#039;&#039;“tag=…”&#039;&#039;&#039; permet de conserver (ou exclure si vous mettez “tag=!…”) les entités portant un tag précis. Nous verrons en quoi consistent les tags dans un autre chapitre.&lt;br /&gt;
* &#039;&#039;&#039;“scores=…”&#039;&#039;&#039; permet de conserver les entités ayant des scores correspondant à ceux indiqués. Nous verrons en quoi consistent les scores dans un autre chapitre.&lt;br /&gt;
&lt;br /&gt;
La valeur INTERVALLE suit une syntaxe un peu particulière, elle permet de valider la condition si le nombre se trouve entre deux bornes (cas 1) ou s’il est exactement égal au nombre précisé (cas 2) :&lt;br /&gt;
&lt;br /&gt;
* [min]…[max] : Permet donc de valider si le nombre se trouve entre les deux bornes (incluses). Les paramètres sont optionnels car il est possible de ne pas spécifier l’une ou l’autre des bornes de façon à comprendre soit toutes les valeurs plus petites que max soit toutes les valeurs plus grandes que min.&lt;br /&gt;
* [valeur] : Permet de valider la condition si le nombre est strictement égal à celui précisé.&lt;br /&gt;
&lt;br /&gt;
Les valeurs bornant l’intervalle peuvent être, si le paramètre l’accepte, des nombres à virgule, mais attention : dans le cas numéro 2, 64 sera différent de 64.001 ! Attention, par convention, les décimales sont séparées des entiers par des points et non des virgules comme nous avons l’habitude en France.&lt;br /&gt;
&lt;br /&gt;
Note&lt;br /&gt;
&lt;br /&gt;
Pour être sélectionnée, l’entité doit répondre à toutes les conditions du sélecteur, il s’agit donc, pour ceux qui ont quelques connaissances en algorithmique ou en électronique, d’un “et logique” entre chaque paramètre. Pour faire un “ou logique” vous devrez passer par un système de commande qui ajoute un tag (ou autres) si telle ou telle condition est validée. Vous exécuterez ensuite la commande si vous détectez la présence de ce tag.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
Maintenant, vous maîtrisez les bases des objets manipulables dans Minecraft. Même si pour l’instant, cela peut vous paraître seulement à fin décorative pour votre map ou vos entités, vous vous rendrez assez vite compte que cela peut aussi être un moyen de parvenir à des résultats plus complexes, notamment avec le prochain article qui parlera de la commande 1.13 qui a radicalement changé nos façons de concevoir nos systèmes : la commande exécute.&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Supports_des_commandes&amp;diff=7</id>
		<title>Guide Mapmaking : Supports des commandes</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Guide_Mapmaking_:_Supports_des_commandes&amp;diff=7"/>
		<updated>2023-06-01T08:06:24Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : Ajoute du premier article du Guide de Mapmaking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bienvenue à toi, jeune explorateur de ce monde sombre et mystérieux qu’est le développement sur Minecraft. En suivant ce guide, tu t’apprêtes à comprendre comment exploiter les commandes et leur potentiel afin de réaliser tout ce que tu peux imaginer, et plus encore.&lt;br /&gt;
&lt;br /&gt;
Avant même de prendre connaissance des différents aspects du développement, nous allons définir ce que signifie “développer” et étudier le support qui va servir tout au long de ce guide afin d’écrire notre “code”.&lt;br /&gt;
&lt;br /&gt;
== Développer ? Ça veut dire quoi exactement ? ==&lt;br /&gt;
Au sens large, il s’agit simplement de réaliser/concrétiser une idée/un concept. Dans notre cas, nous parlons d’un cas particulier de développement qui prend la forme d’un langage informatique. Pour ceux à qui ce terme fait peur, il s’agit simplement d’instructions que l’ordinateur (et plus précisément ici, Minecraft) peut comprendre. Par exemple: “téléporte ce creeper sur ce squelette”. Le problème c’est que cet exemple, écrit en français, est compliqué à comprendre pour un ordinateur. Il faut qu’il ait une parfaite connaissance de plusieurs choses :&lt;br /&gt;
&lt;br /&gt;
* Le lexique: la/les définition(s) de chacun des mots utilisés&lt;br /&gt;
* La syntaxe: la façon dont les phrases sont formées&lt;br /&gt;
* La sémantique: Le sens d’un mot au sein de la phrase (un mot peut avoir plusieurs sens selon le contexte)&lt;br /&gt;
&lt;br /&gt;
De plus, le langage courant est plein d’ambiguïtés. Prenons un exemple : Alice loue sa voiture. Est-ce Alice qui loue la voiture à quelqu’un d’autre (dans ce cas, elle la cède à une autre personne) ? Ou est-ce Alice qui loue la voiture de quelqu’un d’autre (où là, elle la prend à quelqu’un d’autre) ? Dans quel sens la machine doit interpréter la phrase ?&lt;br /&gt;
&lt;br /&gt;
C’est pour cela qu’il est important de définir des langages qui sont sans ambiguïté et dont le sens est clair, on parle alors de langage formel (s’opposant au langage courant qui est dit informel).&lt;br /&gt;
&lt;br /&gt;
Pour que Minecraft puisse bien comprendre ce qu’on lui demande, il faut donc utiliser un langage très simple, où un “mot” ne peut pas avoir de double sens, où le lexique est restreint et la syntaxe est mécanique (il y a un nombre très limité, si ce n’est qu’une seule façon de dire quelque chose en particulier).&lt;br /&gt;
&lt;br /&gt;
Prenons un exemple: on souhaite dire à Minecraft “téléporte les Creepers qui sont à moins de 5 blocs de moi vers un squelette au hasard”. Afin que le jeu puisse comprendre cela, il faudra donc entrer la commande:&lt;br /&gt;
 /tp @e[type=Creeper,distance=..5] @e[type=skeleton,limit=1,sort=random]&lt;br /&gt;
Nous expliquerons dans la suite de ce guide à quoi servent les différentes parties de cette commande.&lt;br /&gt;
&lt;br /&gt;
Certains se posent sans doute déjà la question: “comment on fait pour dire des choses a Minecraft, comment on lui donne les commandes ?”.&lt;br /&gt;
&lt;br /&gt;
Il y a trois moyens de faire ça:&lt;br /&gt;
&lt;br /&gt;
* À la main: Vous pouvez directement envoyer une commande via le chat textuel&lt;br /&gt;
* Par command-block: vous pouvez écrire la commande dans un bloc spécial qui, à chaque activation (généralement, par la redstone), exécutera la commande&lt;br /&gt;
* Par mcfunction: vous pouvez écrire une liste de commandes à exécuter dans un fichier, puis une fois dans le jeu, vous exécutez la fonction (ce qui va exécuter chacune des commandes les unes après les autres) simplement en l’appelant via une autre commande.&lt;br /&gt;
&lt;br /&gt;
== Le chat textuel ==&lt;br /&gt;
On va commencer par le plus simple et le plus rapide: envoyer des commandes “à la main”. Si vous ouvrez votre chat textuel et que vous y entrez “Hello World!”, vous allez simplement envoyer ce message dans le chat, comme à votre habitude. Si en revanche, vous écrivez “/say Hello World!”, cela donnera un résultat similaire, mais votre pseudo sera affiché entre crochets ( [ et ] ) et plus entre chevrons ( &amp;lt; et &amp;gt; ). Cela indique que le message a été envoyé via une commande, ici, le /say.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; La présence du slash ‘/’, préfixe de toutes les commandes dans le chat. Ce caractère est obligatoire, il permet, comme vu précédemment, de lever toute ambiguïté entre un simple message, et une commande !&amp;lt;/blockquote&amp;gt;Plus intéressant: vous pouvez marquer “&amp;lt;code&amp;gt;/execute as @e run say Hello World!&amp;lt;/code&amp;gt;” et vous verrez toutes les créatures présentes sur votre map, ainsi que tous les joueurs crier en concert “Hello World!”. On vous expliquera également à quoi correspond cette commande dans la suite du guide, n’ayez crainte.&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter à peu près n’importe quelle commande via le chat, mais l’intérêt y est souvent limité car cela requiert une action du joueur.&lt;br /&gt;
&lt;br /&gt;
== Les blocs de commande ==&lt;br /&gt;
Pendant un temps (avant l’arrivée des mcfunctions), les command-blocks étaient la seule façon d’automatiser l’exécution des commandes. Ces blocs pouvaient accueillir une seule commande, exécutant cette dernière à chaque fois qu’un courant de redstone venait titiller le bloc. Aujourd’hui, les command-blocks ont un peu évolué. Il existe 3 types différents de command-blocks et ils peuvent être activés de différentes manières.&lt;br /&gt;
&lt;br /&gt;
Chacun des types de command-blocks peut ainsi être activé de la manière suivante (ces options sont modifiable via des boutons sur l’interface du command-block):&lt;br /&gt;
&lt;br /&gt;
* [[Fichier:LGdir.png|vignette|LGdir: Système en bloc de commande permettant la gestion de trajectoire de projectiles avec rebonds et forces diverses.]]Need redstone: le bloc attendra un signal redstone pour se déclencher&lt;br /&gt;
* Always active: le bloc considérera qu’un courant de redstone le touche en permanence, même si ce n’est pas le cas.&lt;br /&gt;
&lt;br /&gt;
En plus de ça, vous pouvez choisir d’exécuter une commande en fonction de si la précédente a fonctionné. Vous remarquerez que les command blocks ont une flèche sur 4 de ses côtés, un rond sur le côté où point les flèches et un carré de l’autre. Ce n’est pas anodin, il s’agit là de l’indication du sens du command block. Vous pouvez en effet créer des chaînes de commandes en disposant les command blocks de façon à ce qu’ils se suivent (et que les flèches forment une chemin continu). Une option est donc proposée pour exécuter la commande que si la précédente a bien fonctionné :&lt;br /&gt;
&lt;br /&gt;
* Unconditionnal: s’exécute tout le temps sans réfléchir à la réussite du précédent ou non&lt;br /&gt;
* Conditionnal: vérifie que la commande précédente s’est bien exécutée. Si ce n’est pas le cas, le command block ne fait rien et la chaîne continue. Attention, si le command-block suivant est lui aussi en conditional, il s’exécutera si:&lt;br /&gt;
** les deux command-blocks précédents se sont bien exécutés&lt;br /&gt;
** le command-block précédent ne s’est pas exécuté à cause de son paramètre “Conditionnal”&lt;br /&gt;
&lt;br /&gt;
Il est donc déconseillé de placer deux command-blocks en conditionnel l’un après l’autre à moins de savoir exactement ce que vous faites.&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; Les command-blocks ne se trouvent pas dans l’inventaire créatif. Pour vous en procurer un, il faut que vous exécutiez la commande “/give @s command_block 1”&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Les types de command-blocks ===&lt;br /&gt;
&lt;br /&gt;
* Impulse: C’est le command-block “de base”. Il s’exécute une fois à chaque signal de redstone. S’il est en “always active”, il ne s’exécutera qu’une seule fois: au moment où cette option a été activée. À noter qu’il est possible de “pick” un bloc (le récupérer en conservant toutes ses propriétés, donc la commande et les paramètres) en appuyant sur le bouton contrôle (CTRL) et sur la molette de la souris lorsque vous visez le bloc. Si ce dernier contient une commande et est en “always active”, la commande s’exécutera à chaque fois que vous poserez le bloc.&lt;br /&gt;
* Repeat: Bien plus souvent utilisé que les command-blocks de type Impulse, les command-blocks de type Repeat ont l’avantage d’exécuter la commande à chaque tick temps qu’ils sont alimentés par un courant de redstone (ou en permanence si ils sont en “always active”, cette option est néanmoins déconseillée pour ce type de command-blocks).&lt;br /&gt;
* Chain: Les plus utiles mais aussi les plus mal compris, ces command-blocks permettent d’exécuter la commande, au même titre qu’un Impulse, mais à condition qu’il y ait un command-block précédent qui se soit activé (même si la commande n’a pas été correctement exécutée). Ils permettent de faire des… chaînes, comme leur nom l’indique, de commandes, très souvent utile pour organiser ses commandes.&lt;br /&gt;
&lt;br /&gt;
== Les MCfunctions ==&lt;br /&gt;
Maintenant, on attaque le plus compliqué, mais aussi le plus utile. Cependant, si vous êtes déjà lassé d’essayer de comprendre tout ce qu’on raconte, vous pouvez vous arrêter là car la suite du guide nécessite d’utiliser ces fonctions que dans les derniers chapitres. Ne vous dégoûtez donc pas tout de suite et revenez plus tard lire cette partie là !&lt;br /&gt;
&lt;br /&gt;
Exécuter une commande, c’est bien. Exécuter une série de commandes, c’est encore mieux ! C’est pour cela que les mcfunctions ont été créées. Ils s’agit grossièrement de fichiers textes dont l’extension (l’habituel “.txt”) a été remplacée par “.mcfunction”. Dans ce fichier, vous pouvez placer différentes commandes les unes à la suite des autres. De là, vous pourrez exécuter toutes les commandes qu’il contient simplement en appelant le fichier !&lt;br /&gt;
&lt;br /&gt;
Quelques petites règles à connaître à propos de ces fichiers:&lt;br /&gt;
&lt;br /&gt;
* Leur nom ne doit contenir que les caractère suivants&lt;br /&gt;
** Des lettres minuscules (a-z)&lt;br /&gt;
** Des tirets (- ou _)&lt;br /&gt;
** Des chiffres (0-9)&lt;br /&gt;
&lt;br /&gt;
souvent résumé en [a-z0-9_-]&lt;br /&gt;
&lt;br /&gt;
* Le fichier doit être placé dans un datapack&lt;br /&gt;
** Son chemin doit être: “…//datapack//data//functions/[…/]”&lt;br /&gt;
* Aucun “/” ne doit être placé avant les commandes&lt;br /&gt;
* Pour laisser un commentaire (ligne qui ne sera pas lue par le jeu), mettre “#” devant&lt;br /&gt;
* Une erreur dans le fichier rend la fonction totalement incompréhensible pour Minecraft (il fera alors comme si elle n’existait pas). Veillez à vérifier chaque commande que vous ajoutez. Si le fichier n’a pas pu être chargé par le jeu dû à une erreur, Minecraft vous le dira avec un beau message en rouge dans la console du jeu activable dans le launcher de ce dernier : Paramètres/Ouvrir le journal des données quand le jeu démarre.&lt;br /&gt;
* Une ligne doit être soit un commentaire, soit une commande, soit vide. Aucun mélange commande/commentaire ou autre type de contenu n’est accepté&lt;br /&gt;
* Les commandes exécutées au sein de la fonctions seront par défaut exécutées à la position où elles ont été exécutées et de la part de l’entité ou bloc qui l’a exécuté. Vous comprendrez sans doute mieux ce que ça signifie lorsque vous serez arrivé au chapitre sur les “/execute”. Patience !&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;Note :&#039;&#039;&#039; L’écriture de mcfunctions peut se faire via n’importe quel éditeur de texte. Cependant, pour faciliter la lecture et l’écriture, nous vous recommandons d’utiliser Notepad++ ainsi que notre extension de coloration syntaxique.&amp;lt;/blockquote&amp;gt;Pour exécuter une fonction (et donc toutes les commandes qu’elle contient), il suffit d’entrer la commande:&lt;br /&gt;
 /function &amp;lt;namespace&amp;gt;:&amp;lt;path&amp;gt;&lt;br /&gt;
Le paramètre &amp;lt;code&amp;gt;&amp;lt;namespace&amp;gt;&amp;lt;/code&amp;gt; est le même nom que celui que vous avez donné au dossier contenant toutes les fonctions. Le paramètre &amp;lt;code&amp;gt;&amp;lt;path&amp;gt;&amp;lt;/code&amp;gt; est le chemin d’accès vers la fonction a partir du dossier « functions ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple:&#039;&#039;&#039; Si votre fonction « test.mcfunction » se trouve directement dans le namespace « mapmaking », vous pourrez l’appeler en envoyant la commande&lt;br /&gt;
 /function mapmaking:test&lt;br /&gt;
Si en revanche la fonction « test.mcfunction » se trouve dans un dossier « exercice » qui lui même se trouve dans « commandes » qui lui même se trouve dans le namespace « mapmaking », il faudra alors exécuter la commande:&lt;br /&gt;
 /function mapmaking:commandes/exercice/test&lt;br /&gt;
Je vous invite à essayer en plaçant « say 1 » dans le fichier. Si lorsque vous appelez la fonction, vous voyez 1 apparaitre dans le chat, c’est que tout fonctionne ! Autrement, vous avez dû louper quelque chose. Lorsque vous avez plusieurs fonctions, n’hésitez pas à utiliser votre touche ‘tab’ lorsque vous commencerez à écrire votre appel de fonction (exemple: vous écrivez « /function ma » puis vous pressez ‘tab’). Cela vous permettra de remplir automatiquement le nom des fonctions présentes et considérées par le jeu pour vous faire gagner du temps.&lt;br /&gt;
&lt;br /&gt;
== Retour de commandes ==&lt;br /&gt;
Comme vous l’avez vu plus haut, les command-blocks ont un système bien pratique permettant d’exécuter une commande sous la seule condition que la commande qui la précède s’est bien exécutée. Cela permet donc de faire des conditionnels (s’apparentant aux “if” des langages de programmation classiques) ce qui peut s’avérer très pratiques !&lt;br /&gt;
&lt;br /&gt;
Néanmoins, peut-être vous posez-vous la question de savoir s’il est possible de faire de même avec des mcfunctions ? En effet, il serait très utile d’avoir un système similaire de façon à pouvoir se débarrasser définitivement de ces blocs ! Et je vous rassure, il existe bel et bien un moyen de faire cela, mais pour ça, il faut d’abord connaître une petite particularité technique des commandes : le retour des commandes.&lt;br /&gt;
&lt;br /&gt;
Alors en effet, ça sonne un peu comme un nom de film à la Star Wars, mais ça n’a strictement rien à voir. Par retour, j’entends une ou des valeurs que la commande nous donne après son exécution. Chaque commande peut donc retourner deux valeurs :&lt;br /&gt;
&lt;br /&gt;
* la première est un chiffre pouvant être 1 (vrai) ou 0 (faux) répondant à la question “La commande s’est-elle bien exécutée ?” que l’on appelle valeur de succès (Success).&lt;br /&gt;
* La seconde est une valeur résultat (Result), il s’agit d’un nombre renvoyé par la commande permettant d’obtenir des informations sur l’exécution de cette dernière.&lt;br /&gt;
&lt;br /&gt;
Cette dernière est un peu plus compliqué à comprendre car elle dépend vraiment de la commande exécutée et de son contexte d’exécution, mais je vais tout de même vous donner quelques exemples pour vous montrer le potentiel :&lt;br /&gt;
&lt;br /&gt;
Prenons la commande /list, qui permet d’afficher le pseudo de tous les joueurs connectés sur un serveur. Cette dernière aura pour valeur Success 1 si au moins un joueur est connecté (et donc que l’on peut afficher des joueurs) et 0 sinon, et aura pour valeur de Result le nombre de joueurs sur le serveur. Et voici donc un moyen très simple de compter le nombre de joueurs, pratique, non ?&lt;br /&gt;
&lt;br /&gt;
Voici un autre exemple : la commande /time query daytime. Cette comme-ci aura constamment 1 pour Success (vu qu’elle ne peut pas échouer) et aura le nombre de ticks écoulés depuis le début de la journée pour Result, très pratique donc pour savoir à quelle phase de la journée nous sommes.&lt;br /&gt;
&lt;br /&gt;
Comme vous le voyez, chaque commande a vraiment son propre Result mais bien heureusement, il existe une page qui répertorie les valeurs retournées en fonction de la commande exécutée sur le Wiki français de Minecraft !&lt;br /&gt;
&lt;br /&gt;
Comme vous pouvez le voir, les commandes peuvent apporter des informations très intéressantes sur leur exécution, informations qui peuvent bien entendu être exploitées en les enregistrant notamment dans un scoreboard mais nous verrons cela dans les articles à venir ;)&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Fichier:LGdir.png&amp;diff=6</id>
		<title>Fichier:LGdir.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Fichier:LGdir.png&amp;diff=6"/>
		<updated>2023-06-01T08:01:41Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Trajectoire d&#039;un projectile avec rebonds géré par bloc de commande&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Accueil&amp;diff=5</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Accueil&amp;diff=5"/>
		<updated>2023-05-31T14:16:50Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : Ajout de la bannière&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Fichier:Bannière Gunivers.png|vignette|1078x1078px]]&lt;br /&gt;
Bienvenue sur le Wiki de Gunivers. Tu trouveras ici diverses ressources pour t&#039;aider dans tes projets de création, mais également partager tes connaissances en créant tes propres pages !&lt;br /&gt;
&lt;br /&gt;
Consulte le [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guide de l’utilisateur] pour plus d’informations sur l’utilisation de ce logiciel de wiki.&lt;br /&gt;
&lt;br /&gt;
== Pour démarrer ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste des paramètres de configuration]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Questions courantes sur MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Liste de discussion sur les distributions de MediaWiki]&lt;br /&gt;
* [[mediawikiwiki:Special:MyLanguage/Localisation#Translation_resources|Adapte MediaWiki dans ta langue]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Apprendre comment combattre le pourriel dans votre wiki]&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Fichier:Banni%C3%A8re_Gunivers.png&amp;diff=4</id>
		<title>Fichier:Bannière Gunivers.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Fichier:Banni%C3%A8re_Gunivers.png&amp;diff=4"/>
		<updated>2023-05-31T14:16:14Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La bannière officielle de Gunivers sur fond noir&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
	<entry>
		<id>https://wiki.gunivers.net/index.php?title=Accueil&amp;diff=3</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.gunivers.net/index.php?title=Accueil&amp;diff=3"/>
		<updated>2023-05-31T14:05:55Z</updated>

		<summary type="html">&lt;p&gt;Vincent Foriel : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bienvenue sur le Wiki de Gunivers. Tu trouveras ici diverses ressources pour t&#039;aider dans tes projets de création, mais également partager tes connaissances en créant tes propres pages !&lt;br /&gt;
&lt;br /&gt;
Consulte le [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guide de l’utilisateur] pour plus d’informations sur l’utilisation de ce logiciel de wiki.&lt;br /&gt;
&lt;br /&gt;
== Pour démarrer ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Liste des paramètres de configuration]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Questions courantes sur MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Liste de discussion sur les distributions de MediaWiki]&lt;br /&gt;
* [[mediawikiwiki:Special:MyLanguage/Localisation#Translation_resources|Adapte MediaWiki dans ta langue]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Apprendre comment combattre le pourriel dans votre wiki]&lt;/div&gt;</summary>
		<author><name>Vincent Foriel</name></author>
	</entry>
</feed>