Aidez nous a financer le site: Joignez l'utile à l'agréable et profitez d'FR-Minecraft sans publicités en
devenant VIP ! Ou ajoutez FR-Minecraft dans vos exceptions, nous n'abusons pas des pubs
Une deuxième snapshot est sortie cette semaine, la snapshot 17w45b, apportant plusieurs changements important (pour ne pas dire révolutionnaire) dans les commandes.
Ajout de la commande /data
La nouvelle commande /data remplace les anciennes commandes et , commandes qui ont donc été supprimé du jeu.
Elle reprend la syntaxe des 2 autres commandes:
A une "petite" différence près: l'ajout du paramètre "merge". Car vous l'aurez compris, le mode "merge" n'est qu'un mode parmi les autres, la commande /data permet donc de faire beaucoup plus de chose. 3 modes sont maintenant disponibles:
-
merge qui permet, comme avant, d'ajouter/remplacer des tags NBT pour un bloc ou une entité
-
remove qui permet de supprimer un tag NBT
-
get qui permet de lire la valeur (numérique) d'un tag NBT
Le mode get fonctionne d'une manière particulière:
/data merge (block|entity) <entité cible ou position du bloc> <chemin du NBT>
Le dernière paramètre (chemin du NBT) est optionnel, s'il n'est pas spécifié la commande affiche tous les tags du bloc ou de l'entité indiqué.
Exemple:
/data get entity @e[type=horse,limit=1]
Le chemin NBT peut être simplement le nom d'un tag (de type numérique uniquement):
Exemple:
/data get entity Tronics Dimension
On remarque ici la notion de facteur, cela permet d'effectuer une multiplication par un facteur fixe, indiqué dans la commande par le paramètre "<scale>", par exemple:
/data get entity @s XpTotal 1
/data get entity @s XpTotal 0.01
Le résultat retourné est toujours un entier, la partie décimale étant tronquée.
Il est également possible de ciblé des tags NBT encapsulé dans une sous-structure.
Par exemple, pour cibler le tag:
{ability:{mayfly:1}}
Il faudra utiliser le chemin:
abilities.mayfly
Commande:
/data get entity @s abilities.mayfly
Pour cibler une valeur particulier dans un tableau de valeur on utilisera l'indexation entre crochet.
Par exemple pour cibler la valeur "90" dans le tag:
{Pos:[20;90;10]}
Il faudra utiliser le chemin:
Pos[1]
Commande:
/data get entity Tronics Pos[1]
Enfin il est possible de combiner toutes ces possibilités:
Par exemple:
/data get entity @s Inventory[0].Count
La commande /execute store étendu
Dans la précédente snapshot, la commande
/execute store permettait de remplacer l'ancienne commande , c'est à dire qu'elle enregistrait dans un une valeur résultant d'une commande.
Désormais la commande /execute store possède un nouveau paramètre permettant de choisir 1 des 3 modes de fonctionnement:
-
Le mode "score", qui stock le résultat de la commande dans un scoreboard (même fonctionnement que dans la précédente snapshot.
-
Le mode "entity" qui permet d'enregistrer le résultat dans un tag NBT d'une entité
-
Et le mode "block" qui, vous l'aurez compris, permet d'enregistrer le résultat dans un tag NBT d'un block
La syntaxe de la commande en mode block et entity est un peu plus complexe:
/execute store (result|success) (block|entity) <entité cible ou position du bloc> <chemin du NBT> <type> <echelle> <...>
-
<entité cible ou position du bloc> est simplement un sélecteur ou les coordonnées d'un block
-
<chemin du NBT> reprend la même syntaxe que pour la commande /data
-
<type> est le type du tag NBT, les valeurs possibles sont: short, long, int, float, double, byte
-
<echelle> permet d'effectuer une multiplication, comme avec la commande /data
-
<...> est une nouvelle commande qui retournera la valeur a stocker (ou une commande execute avec d'autres conditions)
"/execute if" pour piloter la redstone
Jusqu'à maintenant la commande "
/execute if ..." permettait de conditionner l’exécution d'une autre commande en fonction d'une condition. Désormais elle peut être utilisé seule, le résultat de la commande est alors envoyé en retour. Il est possible de retrouver le résultat de la commande à la sortie d'un avec un :
La longueur du signal de redstone est égal à la valeur retournée par le sélecteur
De la programmation dans Minecraft ?
Les 2 nouveautés présentés peuvent paraître à première vue anodine, c'est pourtant une révolution dans le jeu: La possibilité de:
-
lire (via /data get)
-
d'enregistrer (via /execute store)
-
d’effectuer des calculs (via
-
puis de réécrire (via /execute store)
des tags NBT sur des entités ou des blocs ! Cela était déjà possible pour les scoreboards, mais pas pour les tags NBT.
Certes il était déjà possible de faire de vrais programmes dans Minecraft, en associant habillement la redstone avec les commandes du jeu, certains allant jusqu'à recréer un
véritable ordinateur fonctionnel dans le jeu. Mais ici il est possible de faire interagir le programme avec le jeu lui même, en modifier des paramètres du jeu sans avoir besoin de jongler avec les différentes commandes.
Voici par exemple un petit "programme" permettant de téléporter une entité à des coordonnées stockées dans un scoreboard:
/scoreboard objectives add value dummy
/scoreboard players set posx value 50
/scoreboard players set posy value 70
/scoreboard players set posz value 260
/execute store result entity @e[type=armor_stand,limit=1] Pos[0] double 1 run scoreboard players get posx value
/execute store result entity @e[type=armor_stand,limit=1] Pos[1] double 1 run scoreboard players get posy value
/execute store result entity @e[type=armor_stand,limit=1] Pos[2] double 1 run scoreboard players get posz value
Notez que ce mini-programme de téléportation n'utilise même pas la commande !
Serait-ce possible qu'a terme les one-commands soit remplacées par des datapacks, des packs qui ne contiendraient que des fonctions qui pourraient faire tout le travail uniquement à l'aide de commandes, sans aucun système redstone ? Rien n'est moins sur.
Correction de bugs
Enfin, comme pour toutes les versions de Minecraft, cette snapshot corrige des bugs, une vingtaine de bug ont été corrigé dans cette version. Il s'agit principalement de bugs ajoutés lorsque Dinnerbone a reprogrammer les anciennes commandes vers le nouveau format, ou des petits oublis mal géré pour des cas très particuliers. Des petites erreurs compréhensible compte tenu de l'ampleur de la refonte effectuée.
Vous pouvez tester cette snapshot dès maintenant en un clic sur "Tester la snapshot" depuis le
launcher FR-Minecraft. Si vous souhaitez tester cette snapshot il est recommandé de faire une sauvegarde de vos mondes, puisque les snapshots sont des versions instables qui risquent de corrompre votre monde.
Minecraft Snapshot 17w45b est sortie :