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
Dinnerbone nous avais prévenu, Une nouvelle snapshot est sortie ce mercredi, la version Minecraft Snapshot 17w45a, apportant notamment une des fonctionnalité phare de Minecraft Java 1.13: le nouveau système de commandes.
Mais avant de découvrir en détail ce nouveau système de commande, découvrons les autres nouveautés de cette snapshot:
Nouveau modèle 3D pour les chevaux
Le modèle 3D des chevaux a évolué, il a été simplifié, pour être plus similaire aux autres mobs du jeu précise jeb:
Les bébés chevaux ont une allure plus naturelle, ils ne sont plus haut sur pattes comme avant. Par contre leur coups semble démesurément long maintenant. Les adultes aussi ont évolué, ils ont été simplifié: ils ont perdu leurs sabots ainsi que leurs cuisses, leurs pattes sont désormais de simple rectangle comme tous les autres mobs.
Pour comparaison, voici le modèle 3D des chevaux dans la précédente version du jeu:
Minecraft compatible 4k
Si vous avez un écran très haute résolution 4k, les menus du s'afficheront désormais à la bonne taille, un nouveau ratio d'affichage des menus a été ajouté pour prendre en charge ces écrans.
Un nouveau parseur de commande
Le parseur de commande est intégré dans le tchat, dès qu'on tape le caractère "/" (slash), il entre en action et nous propose toutes les commandes disponibles dans un cadre noir affiché au dessus de la ligne du tchat:
Un code couleur nous guide dans l'écriture de la commande:
-
Le rouge indique une erreur
-
Le gris (ou une autre couleur comme nous allons le voir plus tard) indique que la commande est correcte
Le parseur est capable de nous suggérer la commande a completer, elle apparaît en grisé à la suite du texte déjà entré. Si la suggestion nous convient, il est possible de la valider en appuyant sur la touche "Tab".
Une fois un paramètre entrée, l'aide se met a jour avec la liste des paramètres suivant disponible. Plus vous progresserez dans la commande, plus l'aide sera précise:
Si vous faites une erreur et que le parseur n'est plus capable de compléter votre commande, la liste d'aide devient rouge:
Le parseur est également capable de reconnaître les paramètres variables (ou il faut entrer un texte ou un nombre), dans ce cas, afin de nous simplifier la lecteur de la commande, chaque paramètre est indiqué dans une couleur différente, couleur reprise dans l'aide:
Lorsqu'un paramètre est fixe (valeur non modifiable, sous-commande), il reste en gris:
Le parseur vérifie en temps réel si la syntaxe de la commande tapé est correcte, il vérifie également les paramètres entrés. Si la valeur du paramètre n'est pas valide, il s'affiche en rouge:
Comme nous le verrons plus loin dans cette news, les noms d'items peuvent être suivit des blockstates ainsi que des tags NBT. Le parseur les reconnais aussi, et est même capable de détecter les erreurs a l'intérieur de ces valeurs !
La valeur "top" n'existe pas pour le blockstates "facing"
Par contre la valeur "east" est valide
Les messages d'erreur sont par ailleurs beaucoup plus précis qu’auparavant.
Dernière fonctionnalité nottable de ce parseur, il est capable de reconnaitre les commandes enchainés (typiquement la commande /execute qui accepte elle même d'autres commandes):
Ici l'auto-completion a compris qu'on a terminé une première partie de /execute, et propose une autre condition pour la commande /execute. Afin de facilité la lecture, chaque "bloc de commande" déjà tapé est affiché en gris, seul la dernière commande de la chaine est en couleur:
Cela dit, en cherchant bien, il est possible de trompé un peu le parseur en jouant sur les syntaxes, par exemple la commande suivante est valide et fonctionnelle:
Par contre la commande suivant est certes valide (la commande ne fait pas d'erreur), mais non fonctionnelle:
Ici l'attribut "Lore" n'est pas prise en compte car il n'a pas le bon type (type string au lieu de tableau de string), pourtant le parseur l'a validé. Mais nulle doute que Dinnerbone corrigera rapidement ces petites imperfection dans les prochaines snapshots, le résultat actuel est déjà époustouflant.
Les nouvelles commandes
C'était la grosse nouveauté annoncée, la plupart des changements sont déjà connu et ont été détaillé dans
les précédentes news, je ne vais donc faire ici qu'un résumé des nouveautés:
-
Suppression de la commande "", puisqu'il est maintenant possible de faire le test via les
-
Changement de l'ordre des paramètres des commandes ,
-
Les commandes , et n'acceptent plus de valeurs courtes ou numérique, il faut maintenant taper le nom complet de la valeur (l'auto-complétion permettant de ne taper que quelques lettres puis de complété avec la touche "Tab")
-
La syntaxe des commandes , , et a changé, puisque certains paramètres n'étaient plus nécessaire, remplacés par la nouvelle syntaxe des items qui accepte désormais les tags NBT et les blockstates.
-
La syntaxe de la commande a évolué pour être moins ambigüe. De plus la commande est maintenant plus restrictive: elle échouera si l'effet désigné n'apporte pas de changement pour le mob, certains mobs sont immunisé (comme l'ender-dragon), et il n'est plus possible d'affecté un effet faible si un effet plus fort (plus haut level) est déjà appliqué.
-
La commande a été supprimé, remplacé par une possible future commande /modifyitem (qui n'existe pas encore)
-
a été entièrement réécrire (voir notre précédente news pour la découvrir en détail).
-
La syntaxe de a changé. De plus /xp est maintenant un alias de la commande /experience. (voir notre précédente news pour la découvrir en détail)
-
La commande n'accepte plus les conditions "if" ou "unless", pour cela il faut maintenant utiliser la commande . Par exemple:
-
-
/function foo if @e[tag=bar] devient /execute if entity @e[tag=bar] run function foo
-
La commande ne permet plus de déclarer des gamerules qui n'existe pas (parfois utilisé en tant que variable), cela posant plus de problème qu'autre chose, certains joueur faisant des fautes de frappes, ça ne provoquait pas d'erreurs. De plus chaque gamerule est maintenant typé (texte ou nombre), en cas d'erreur de type sur une gamerule la commande échouera (ce qui limite les erreurs d'utilisations).
-
La commande a été scindé en plusieurs commande. De plus ses syntaxes ont changé pour prendre en compte le nouveau système d'écrire des items. Plus d'info dans notre précédente news.
-
accepte maintenant la valeur spéciale "*" pour couper tous les sons
-
Les commandes , , et ont été supprimé, remplacé par . Plus d'info dans notre précédente news.
-
La commande a été supprimé, il faut maintenant utiliser la commande a la place. De plus la durée par défaut de la météo est de 5min maintenant.
-
Les commandes et ont fusionné (/tp est un alias de /teleport), c'est le comportement de /teleport qui est gardé, c'est a dire que les coordonnées relatives sont relatives à l'executeur, et non à la cible. Pour retrouver l'ancien comportement, il faut utiliser la commande "/execute at".
-
L'incrémentation d'un compteur via la commande a été simplifié:
-
/trigger <objective> add 1 peut maintenant s'écrire /trigger <objective>
Les nouveaux sélecteurs
Les ont aussi évoluer et permettent infiniment plus de combinaison. Nous avions déjà parlé de la plupart de ces nouveautés dans nos précédentes news, voici donc un résumé de ces changements:
-
Les valeurs qui n'ont pas de sens provoque des erreurs (level d'XP négatif, gamemode qui n'existe pas, nombre d'entité à 0, etc.)
-
Tous les attributs d'interval avec une valeur min et max utilise désormais la nouvelle syntaxe "a..b". Exemple:
-
level=10 ==> level 10 uniquement
-
level=10..12 ==> level compris entre 10 et 12
-
level=5.. ==> level 5 et supérieur
-
level=..15 ==> level 15 et inférieur
-
Les valeurs x et z ne sont plus centré sur les blocs (par exemple "x=1" n'est plus transformé en "x=1.5"). Il est maintenant possible de donner des valeurs à virgule pour les coordonnées.
-
Plusieurs attributs ont changé de nom:
-
m devient gamemode (qui n'accepte par ailleurs plus de valeurs courtes ou numériques)
-
l et lm deviennent level
-
r et rm deviennent distance
-
rx et rxm deviennent x_rotation
-
ry et rym deviennent y_rotation
-
c devient limit (et il n'accepte plus de valeur négative)
-
Les attributs x, y, z, distance, x_rotation, y_rotation acceptent désormais des nombres à virgule comme valeur.
-
Il est maintenant possible de mettre des espaces dans les sélecteurs, sous conditions: @e[name="Hello World"]
-
Il est également possible d'effectuer des recherches par tags NBT, par exemple: @e[nbt={Cool:1b},nbt=!{Uncool:1b}]
-
Il est possible de donner plusieurs fois le même attribut avec des valeurs différentes. Par exemple:
-
@e[tag=foo,tag=bar] sélectionnera les entités avec les tags "foo" et "bar"
-
@e[type!=cow,type!=chicken] sélectionnera les entités qui ne sont pas des vaches ni des poules
-
Si plusieurs attributs sont donnés dans un sélecteur, il faut que toutes les conditions soit remplit (opérateur ET) pour que l'entité soit sélectionné. Il n'est pas possible d'avoir l'opérateur OU (une seule condition vrai pour être sélectionné)
-
Ajout de l'attribut "sort", qui permet de classer les résultats (pratique s'il est utilisé avec limit)
-
sort=nearest classe les entités par distance de l'exécuteur (de la plus proche à la plus éloignée). C'est la valeur par défaut pour @p
-
sort=furthest classe les entités par distance de l'exécuteur (de la plus éloignée à la plus proche). Cette option reproduit le comportement des valeurs négatives pour l'ancien attribut c.
-
sort=random classe les entités par ordre aléatoire. C'est la valeur par défaut pour @r
-
sort=arbitrary ne classe pas les entités, c'est utile lorsque l'ordre n'a pas d'importance, c'est l'option la plus rapide. C'est la valeur par défaut pour @a et @e
-
La syntaxe des scores a change, beaucoup plus lisibles et souple d'utilisation maintenant, par exemple:
-
@p[scores={foo=1,bar=1..5}] ==> Tous les joueurs dont le score "foo" est à 1 et le score "bar" est compris entre 1 et 5
-
Il est possible de tester les progrés avec une syntaxe similaire aux scores:
-
advancements={foo=true,bar=false,custom:something={criterion:true}} , avec:
-
-
"foo" et "bar" des noms d'advancement interne à Minecraft
-
"custom:something" un advancement issu d'un data pack
-
"true" pour indiquer que le joueur a remporter l'advancement, ou "false" pour indiquer qu'il ne l'a pas encore
-
"{criterion:true}" permet de tester un critère uniquement (pour les advancements avec plusieurs critères, par exemple pour l'advancement "" (l'exploration de tous les biomes), il est possible de sélectionner uniquement un biome en particulier, même si l'advancement n'est pas encore terminé)
La nouvelle syntaxe des blocs et items
Il est maintenant possible, dans la syntaxe même du nom de l'item ou du blocs, d'indiqué certains attributes comme les blockstates ou les tags NBT. Les tags NBT sont indiqué entre accolades { } et les blockstates entre crochet [ ].
Découvrons cette nouvelle syntaxe par des exemples:
-
stone ==> Syntaxe classique pour le bloc de roche
-
minecraft:stone ==> Syntaxe avec prefixe pour le bloc de roche
-
minecraft:redstone_wire[power=15,north=up,south=side] ==> Précision des valeurs de blockstates pour le bloc de circuit de redstone
-
minecraft:jukebox{RecordItem:{...}} ==> Précision des tags NBT associés au bloc
-
minecraft:stick{display:{Name:"Baton de superhéros"}} ==> idem avec un objet
-
minecraft:furnace[facing=north]{BurnTime:200} ==> Il est également possible d'indiquer à la fois les tags NBT et les blocstates
-
minecraft:stone[doesntexist=purpleberry] générera une erreur car le blockstates "doesntexist" n'existe pas pour le bloc stone
-
minecraft:redstone_wire[power=mardi] générera une erreur car "power" n'accepte qu'un nombre compris entre 0 et 15
-
-
Dans les commandes de test, tous les tags et states non précisés sont ignoré dans les tests (toutes les valeurs sont accepté). Dans les commandes d'affectation, les tags et states non précisé prendrons la valeur par défaut.
-
Bien que les datavalues existent toujours techniquement dans cette snapshot, elles ne sont plus accessible dans les commandes actuelles car elles seront supprimées dans les prochaines snapshots. Les valeurs de damage (qui était techniquement des datavalues) seront converties en tag NBT.
Précision sur les Commandes / Sélecteur / Blocs et items
Plus d'infos sur les nouvelles commandes, les sélecteurs et les nouvelles syntaxes de blocs et d'items dans nos précédentes news:
Cette snapshot 17w45a est la première snapshot avec les commandes, ce nouveau système est le fruit de plusieurs mois de travail, il est donc normal qu'il contienne encore de très nombreux bugs, pas d'inquiétude ils seront corriger dans les snapshot à venir.
Dinnerbone précise par ailleurs que ce système de gestion de commande est loin d'être terminé, notamment:
-
Le système ne fonctionne pas encore en multijoueur. Il est possible de taper des commandes en multijoueur, mais le parseur ne vous assistera pas.
-
L'auto-completion des commandes est loin d'être terminé, pour le moment il ne fonctionne que sur le nom des commandes et les paramètres fixe.
-
Le système de commande prendre a terme les traductions, les aides seront traduite, mais pour le moment aucune traduction n'est disponible ni possible
-
L'affichage de l'assistant de commande (le cadre sur fond noir) est pour le moment très simpliste, ce n'est qu'un outils de développement, le design sera refais dans les prochaines versions.
-
Les commandes sont maintenant sensible à la case, toutes les commandes doivent être écrites en minuscule. Par exemple: /scoreboard ObJeCtIvEs ... n'est plus valide
-
De nombreuses améliorations et optimisations seront apporté, en particulier en ce qui concerne les fonctions.
-
La bibliothèque de gestion des commandes est appellé "Brigadier". C'est une bibliothèque externe à Minecraft, elle n'est pas obfusqué et pourra donc être facilement réutilisé par les mods et plugins multijoueurs.
Si trop de bugs sont rapportés, ou si le fonctionnement pose trop de problème, Dinnerbone n'exclue pas la possibilité de le supprimer complètement dans les prochaines snapshots en attendant qu'ils soient plus avancé.
Corrections de bugs
Comme à chaque version, cette snapshot apporte son lot de bugs corrigés. Une trentaine de bugs sont corrigés, mais contrairement a d"habitude il s'agit pour la plupart de bugs majeures dans le jeu. Le détails des bugs corrigés est disponible sur le
bug tracker de Mojang.
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.
Pour les autres je la poste quand même, je n'ai pas le temps de relire, j'avais le choix entre publier tel quel ou ne pas publier du tout, j'ai préféré la partager avec vous quand même ^^ Et comme je suis préssé je posterai un commentaire sur la news plus tard ! Bonne lecture à tous.