La version 1.20.3 de Minecraft est désormais disponible ajoutant une fonctionnalité aux vases décorés ainsi que de nombreux ajouts et changements techniques. Elle introduit également la possibilité de tester plus tôt des fonctionnalités de la future mise à jour 1.21, dont les snapshots arriveront l’année prochaine.
Aucune fonctionnalité expérimentale d’une future version ne sera détaillé dans cet article, même si disponible dans le datapack intégré. Elles seront détaillées uniquement dans les snapshots et versions concernées.
Sommaire
Minecraft 1.20 : Trails & Tales
Découvrez ci-dessous toutes les informations à savoir sur les autres mises à jour de Minecraft 1.20 :
Ajouts et modifications
Vase décoré
- Les joueurs peuvent interagir avec un vase pour y insérer jusqu’a une pile d’objets.
- Ils n’ont cependant pas d’interface et doivent être cassés pour que les joueurs puissent récupérer et découvrir leur contenu.
- Les entonnoirs, wagonnets à entonnoirs & les droppers peuvent également y insérer et/ou y extraire des objets.
- Les comparateurs peuvent lire le nombre d’objets présent dans un vase.
- L’interaction du joueur fait trembler le vase, emet un son & un effet de particule.
- Plus le son est aigu lors du placement d’un objet, plus le vase est rempli.
- Cela génère une fréquence de vibration de 11.
- Ils peuvent être détruits par n’importe quel projectile qui les font voler en éclats et fait sortir leur contenu.
- Ils peuvent maintenant être empilés jusqu’a 64 du même type.
Chauve-souris
- La chauve-souris a désormais une nouvelle texture, un nouveau modéle ainsi qu’une nouvelle animation.
Autre
- Ajout des fonctionnalités expérimentales 1.21 et du pack de données associé. Elles peuvent être activées lors de la création d’un monde via le bouton Expérimentations
- L’herbe (Grass) a été renommée en « Petites herbes » (Short Grass).
- Lorsqu’un joueur pare avec un bouclier, le bras portant le bouclier suit désormais la direction du regard du joueur, en perspective à la troisième personne.
- Les perles de l’Ender lancées produisent maintenant un son de téléportation à l’impact.
- Le générateur de monstres rend désormais ses faces internes lorsqu’on regarde à l’intérieur.
- Minecraft Realms est désormais disponible pour les Snapshots, les Pre-Releases et les Release Candidates.
- La version du dernier monde joué est affichée dans la liste des Realms.
- Les expérimentations sont disponibles pour les mondes nouvellement créés
- Ajout d’une option d’accessibilité qui permet de masquer les textes jaunes dans le menu principal
- Ajout d’un écran de récupération pour les mondes dont les données sont manquantes (par exemple, si l’enregistrement a échoué en raison d’un arrêt inattendu).
- Petites modifications de l’écran de collecte des données de télémétrie
Ajouts et modifications techniques
- La version des packs de données est maintenant de 26.
Pack de ressources
- La version des packs de ressources est maintenant de 22.
- La police
uniform
a été mise à jour pour utiliser Unifont 15.1.04 (au lieu de 15.0.06). - Le seul format de texture pris en charge est désormais le format
.png
- Changements dans la gestion des packs de ressources des mondes (
resources.zip
), des Realms et contrôlés par des serveurs dédiés.- L’écran de téléchargement a été remplacé par une notification « toast«
- Désormais, l’application d’un pack de ressources à un monde démarre en même temps que le chargement des chunks.
- Les packs téléchargés sont maintenant stockés dans le répertoire
downloads
(avec une organisation de fichiers différente de celle de l’ancienserver-resource-packs
).- Les fichiers de ce répertoire ne sont plus automatiquement nettoyés (auparavant, seuls 10 packs maximum étaient conservés).
- De plus, ce répertoire contient également le fichier de journal
log.json
qui contient des informations sur les fichiers téléchargés à des fins de débogage.
- Les packs téléchargés ont désormais un identifiant unique (GUID/UUID) qui peut être utilisé pour les différencier.
- Cette valeur pour le pack de serveur dédié peut être configurée avec l’option
resource-pack-id
dansserver.properties
. - Si la valeur est manquante, elle sera générée sur la base de l’URL
- Si le Hash d’un pack n’est pas défini, ce pack sera retéléchargé avant chaque application.
- Auparavant, si le Hash était manquant, la dernière version téléchargée du pack était appliquée.
- Dans le stockage local, seuls 20 packs de ressources serveur sont mis en cache.
- Cette valeur pour le pack de serveur dédié peut être configurée avec l’option
- Le client envoie désormais des mises à jour supplémentaires concernant les packs (comme la réussite du téléchargement).
- Des options supplémentaires ont été ajoutées pour les logiciels de serveurs tiers :
- Le client peut désormais accepter plusieurs packs de ressources de serveur
- Un nouveau paquet a été ajouté pour annuler l’application des packs de ressources du serveur.
- Les packs de ressources ne sont plus nettoyés lors de l’entrée dans la phase de configuration
- La police
Régles de jeu
- Ajout de 4 nouvelles régles de jeu :
playersNetherPortalDefaultDelay
qui permet de contrôler le temps (en ticks) qu’un joueur en mode Survie ou Aventure doit passer dans un portail du Nether avant de changer de dimension. Par défaut à80
.playersNetherPortalCreativeDelay
qui permet de contrôler le temps (en ticks) qu’un joueur en mode Créatif doit passer dans un portail du Nether avant de changer de dimension. Par défaut à1
.projectilesCanBreakBlocks
qui permet de contrôler si les projectiles détruiront les blocs qui sont destructibles par eux (par exemple les fleurs de chorus, les spéléothémes pointus et les vases décorés). Par défaut àtrue
.maxCommandForkCount
qui permet de contrôler le nombre maximal de contextes qui peuvent être créés au cours d’un tick. S’applique aux blocs de commande et aux fonctions. Par défaut à65536
.
Tags
- Ajout du tag d’entité
#zombies
- Ajout du tag d’entité
#undead
- Ajout du tag d’entité
#can_breathe_under_water
qui empêche la noyade. - Ajout de
firework_rocket
dans le tag d’entité#impact_projectiles
. - Ajout de
skeleton_horse
dans le tag d’entité#skeletons
. - Ajout du tag de type de dégât
#can_break_armor_stands
pour ceux qui peuvent détruire les portes-armures.
Bloc de puzzle
- La valeur maximale de la variable pour la taille d’une structure Jigsaw est passée de 7 à 20.
- Ajout de deux nouveaux champs de saisie pour la priorité de sélection et la priorité de placement dans l’écran d’édition du bloc de puzzle.
- Priorité de sélection :
- Lorsque la pièce parent est traitée pour les connexions, cela contrôle l’ordre dans lequel ce bloc de puzzle tente de se connecter à sa pièce cible.
- Les puzzles seront traités par ordre de priorité décroissant et de manière aléatoire au sein d’une même priorité.
- Priorité de placement :
- Lorsque ce bloc de puzzle se connecte à une pièce, il s’agit de l’ordre dans lequel cette pièce est traitée pour les connexions dans la structure plus large
- Les pièces seront traitées par ordre de priorité décroissant, l’ordre d’insertion par défaut permettant de rompre les liens au sein d’une même priorité.
- Cette fonctionnalité a été ajoutée pour permettre aux structures Jigsaw de générer des branches dans un ordre de profondeur et pour offrir un meilleur contrôle sur l’ordre des connexions.
- Tous les blocs de puzzle existants auront une priorité de sélection et de placement par défaut de 0, ce qui entraînera le même comportement qu’avant l’introduction de ces deux valeurs configurables.
- Priorité de sélection :
- Des changements ont été effectués aux définitions des types de structures :
- Ajout de la liste optionnelle
pool_aliases
aux structures Jigsaw. - Les alias représentent la possibilité de rebrancher les connexions du groupe de Jigsaw en redirigeant les références du groupe sur des instances de structure individuelles.
- Les variantes d’alias sont représentées par
type
et sont les suivantes :direct
: Mappage 1:1 d’un alias vers un nouveau groupealias
: Groupe à remplacer.target
: Groupe à remplacer par le nouveau.
random
: Mappage 1:n où un groupe parmin
est sélectionné au hasard pour l’instance de structurealias
: Groupe à remplacer.targets
: Liste randomisée de groupes candidats pour remplacer l’alias.
random_group
groups
: Chaque groupes est une liste aléatoire des types d’alias ci-dessus- Seul un groupe est sélectionné par instance de structure
- Cela permet de modéliser des sélections telles que « si le groupe X est remplacé par X1, remplacez également le groupe Y par Y1″. »
- Ajout de la liste optionnelle
Ajout de la commande /tick
- Une nouvelle commande d’administration et de débogage qui permet au joueur de contrôler le flux de tick et de mesurer les performances du jeu.
- Elle nécessite des autorisations élevées (administrateurs et plus) et n’est pas disponible par défaut dans les blocs de commandes et les packs de données.
- Syntaxe :
/tick query
- Affiche le taux de tick actuel avec des informations sur les performances des ticks.
/tick rate <rate>
- Définit un taux de tick cible personnalisé à la valeur spécifiée. Le taux doit être supérieur à 1.0 et inférieur à 10000.0.
/tick freeze
- Gèle tous les éléments de gameplay, sauf les joueurs et les entités qu’un joueur monte.
/tick step <time>
- Fonctionne uniquement lorsque le jeu est gelé. Exécute le jeu pendant un nombre spécifié de ticks, puis le gèle à nouveau. Permet de passer par le jeu en tranches de ticks.
- Le paramètre est facultatif, la valeur par défaut étant
1
.
/tick step stop
- Arrête le processus d’avancement actuel et gèle à nouveau le jeu.
/tick unfreeze
- Dégèle le jeu et reprend tous les éléments de gameplay.
/tick sprint <time>
- Fait fonctionner le jeu en ignorant le taux de tick cible défini, permettant au jeu de fonctionner aussi rapidement que possible pendant un nombre spécifié de ticks. À la fin du sprint, le jeu reprend le taux précédent et affiche des informations sur les performances pendant la séquence de sprint .
/tick sprint stop
- Arrête le
/tick sprint
actuelle et reprend le taux de tick précédent.
- Arrête le
Commande /scoreboard
- Ajout de nouvelles sous-commandes pour modifier l’affichage d’entrées spécifiques du tableau d’affichage latéral :
/scoreboard objectives modify <objective> displayautoupdate (true|false)
- Détermine si l’objectif doit se mettre à jour automatiquement à chaque mise à jour du score (désactivé par défaut).
/scoreboard players display name <targets> <objective> <text component>
- Modifie le nom d’affichage des entrées du tableau d’affichage spécifié.
/scoreboard players display name <targets> <objective>
- Réinitialise le nom d’affichage des entrées du tableau d’affichage spécifié à sa valeur par défaut.
/scoreboard players display numberformat <targets> <objective> <format>
- Modifie le format numérique des entrées du tableau d’affichage spécifié.
styled <style>
- Le score sera affiché avec le style sélectionné (par exemple,
{"bold":true}
.
- Le score sera affiché avec le style sélectionné (par exemple,
fixed <text component>
- Le score est remplacé par le composant de texte spécifié.
blank
- Le score n’est pas affiché.
- Modifie le format numérique des entrées du tableau d’affichage spécifié.
/scoreboard players display numberformat <targets> <objective>
- Réinitialise le format numérique des entrées du tableau d’affichage spécifié.
/scoreboard objectives modify <objective> numberformat <format>
- Modifie le format numérique par défaut de l’objectif donné.
/scoreboard objectives modify <objective> numberformat
- Réinitialise le format numérique par défaut de l’objectif donné.
Commande /execute
- Réintroduction de la sous-commande
/execute if|unless function.
- Nouvelle sous-commande pour
/execute
permettant d’exécuter une fonction ou un tag de fonction et de faire correspondre la ou les valeurs de retour. Si un tag est spécifié, toutes les fonctions s’exécutent indépendamment des résultats des fonctions précédentes. - Syntaxe:
/execute (if|unless) function <function> -> [execute]
- Arguments:
function
: La fonction ou le tag à exécuter.
- La correspondance de la valeur de résultat de la ou des fonctions exécutées :
- Au moins l’une des fonctions doit réussir pour que la correspondance réussisse.
- Un appel réussi est défini comme une fonction qui :
- utilise la commande
/return
pour renvoyer une valeur. - La valeur de retour n’est pas 0.
- utilise la commande
- Si les fonctions n’a quitté avec
/return
, niif
niunless
ne s’exécutera.
- Elle ne provoquera plus systématiquement un échec si toutes les fonctions n’avaient pas de retour
- Si les fonctions appelées ne renvoient aucun
/return
s,if
échouera tandis queunless
réussira. - La première valeur
/return
dans l’une des fonctions appelées sera renvoyée (pour un seul contexte).
- Si les fonctions appelées ne renvoient aucun
- Nouvelle sous-commande pour
Commande /return
- Réintroduction de la sous-commande
/return run <command>
.- Cette commande prend la valeur résultante de l’exécution de la commande spécifiée et la renvoie en tant que valeur de retour de la fonction.
- Si la commande ne renvoie aucune valeur (par exemple, un appel à une fonction sans
/return
),/return
ne s’exécutera pas et la fonction continuera son exécution. - Si la commande spécifiée échoue, la valeur
return
est de0
. - Dans tous les autres aspects, cela fonctionne comme
/return
avec une valeurreturn
spécifiée. - En cas de fork (par exemple
/return run execute as @e run some_command
), la première exécution de la commande retournera.- S’il n’y a aucune exécution (par exemple
/return run execute if @e[something_impossible] run some_command
), la fonction ne retournera pas et continuera son exécution.
- S’il n’y a aucune exécution (par exemple
/return run
retourne toujours une valeur.- Si aucun résultat valide n’est retourné par la commande, la fonction contenant
/return run
échouera (success=0
etresult=0
- Si aucun résultat valide n’est retourné par la commande, la fonction contenant
- Elle propage la valeur de succès avec la valeur des résultats .
- Elle permet également de stocker des valeurs, ce qui signifie que
/execute store ... run return run some_command
permet à la fois de stocker une valeur et de la retourner en dehors de la fonction.
- Si la commande ne renvoie aucune valeur (par exemple, un appel à une fonction sans
- Cette commande prend la valeur résultante de l’exécution de la commande spécifiée et la renvoie en tant que valeur de retour de la fonction.
- Ajout de la nouvelle sous-commande
/return fail
pour faire échouer l’ensemble de la fonction (success=0
etresult=0
).
Fonctions
- La commande
/function
a été modifiée pour mieux s’adapter à la nouvelle commandereturn
.- Si
/function <function tag>
exécute plusieurs fonctions en combinaison avecreturn run
, l’exécution s’arrêtera après le premierreturn
dans l’une des fonctions. - Un appel unique à la commande
/function
sera toujours retourné lorsqu’il est exécuté avec/return run
.- Par exemple,
/return run execute [split context] run function <some function with conditional return>
retournera toujours après le traitement du premier contexte.
- Par exemple,
- Si
- Les fonctions n’ont désormais aucun résultat à moins qu’elles n’utilisent
/return
ou qu’une erreur ne se produise lors de la recherche ou de l’instanciation.- Cela signifie que la commande
/function
ne renverra plus (ou même n’affichera) le nombre de commandes exécutées pendant l’exécution. - Conditions d’erreur :
- Appel à une fonction inexistante.
- Appel à une balise de fonction vide.
- Échec de l’instanciation de macro.
- Dans ce contexte, le terme « Résultat » désigne les valeurs qui seraient stockées avec
execute store
.
- Cela signifie que la commande
- Le comportement précédent, selon lequel chaque commande dans une fonction effectuait un stockage si une fonction était appelée avec
/execute store ... run function
, a été supprimé.- Cela signifie qu’un seul appel vers
/function
stockera au maximum une fois (zéro fois sireturn
n’a pas été appelé). - Pour les tags de fonction avec plusieurs entrées, les résultats de la fonction seront accumulés, mais les résultats partiels seront stockés à la fin de chaque fonction.
- Cela signifie qu’un seul appel vers
- Les limites existantes pour les fonctions ont été affinées pour s’adapter aux nouvelles règles d’exécution et pour éviter une plus grande variété d’exploitations :
- Les limites s’appliquent même si elles sont exécutées depuis la ligne de commande (elles se comporteront désormais toujours comme si elles étaient placées dans une fonction).
- Par exemple, toutes les fonctions appelées par
/execute as @e run function
compteront pour la même limite. - Les exécutions à partir de blocs de commandes comptent toujours comme des exécutions séparées.
- Par exemple, toutes les fonctions appelées par
- La limite
maxCommandChainLength
pour les fonctions compte désormais les « opérations » telles que :- L’exécution d’une commande pour un contexte unique.
- L’exécution d’une étape dans
/execute
(peu importe le nombre de contextes modifiés). - L’invocation d’une fonction.
- Une nouvelle limite avec la règle de jeu
maxCommandForkCount
restreint désormais la quantité totale de contexte qui peut être créée par un seul état de fonctions comme/execute
.- Exemple : s’il y a 5 entités dans le monde,
/execute as @e
crée 5 contextes, tandis que/execute as @e at @e
crée 5 * 5 = 25 contextes.
- Exemple : s’il y a 5 entités dans le monde,
- Les limites s’appliquent même si elles sont exécutées depuis la ligne de commande (elles se comporteront désormais toujours comme si elles étaient placées dans une fonction).
Autre
- Les Vases Décorés peuvent désormais utiliser les tables de butin.
- Les vases décorés dont l’état
cracked
est réglé surtrue
se brisent toujours lorsqu’ils sont cassés. - Ajout du champ
block_state
à l’entitétnt
pour permettre le remplacement du modèle de bloc rendu. - Renommage du champ
Fuse
enfuse
sur l’entitétnt
. - Le nom des entités non vivantes sera désormais affiché si elles sont regardées et que CustomName est défini, ou toujours affiché si CustomNameVisible est défini, comme pour les entités vivantes.
- Quelques changements mineurs ont été effectués dans la sérialisation des composants du chat
- Le champ optionnel
type
a une nouvelle valeur autorisée:selector
- Les composants de type
nbt
ont désormais un champ source dont les valeurs autorisées sontentity
,block
,storage
- Les composants de chat en texte brut (texte, aucun lien, aucun style) sont désormais toujours sérialisés sous forme de chaîne de caractères au lieu de
{"text': "blah"}
- Les composants de chat sont désormais sérialisés en NBT lorsqu’ils sont envoyés sur le réseau
- Les composants de chat ont désormais une valeur
type
optionnelle (valeurs autorisées :text
,translatable
,score
,nbt
,keybind
) afin d’accélérer l’analyse et d’améliorer la vérification des erreurs. - le champ
id
dans le style d’hoverEvent
show_entity
accepte désormais également l’UUID sous la forme d’un tableau de 4 entiers
- Les arguments numériques et booléens du composant
translate
ne sont plus convertis en chaînes de caractères. - Les représentations des composants JSON suivants ne sont plus acceptées :
null
[]
- Les erreurs dans les champs de style suivants ne sont plus ignorées silencieusement :
color
clickEvent
- hoverEvent
hoverEvent[action=show_entity].contents.name
hoverEvent[action=show_item].contents.tag
- Le champ optionnel
Fonctionnalités expérimentales 1.21
Les éléments ci-dessous sont accessibles via un activateur expérimental 1.21. Il est recommandé de n’activer ces fonctionnalités qu’à des fins de tests.
- Fabricateur
- Ampoule en cuivre
- Blocs décoratifs de tuf et de cuivre
- Chambres, générateur et clé des épreuves
- Breeze
Téléchargement de la version 1.20.3
Comment accéder aux fonctionnalités expérimentales :
- Créez un nouveau monde et cliquez sur l’onglet Plus (More). (Voir image)
- Cliquez sur le bouton Expérimentations (Experiments). (Voir image)
- Activez ensuite le ou les fonctionnalités disponibles puis appuyez sur Terminé (Done). (Voir image)
- Lancez le monde et profitez des fonctionnalités expérimentales.
j’ai perdu tout mes mondees suite à cette MAJ, je n’ai rien dans le dossier save
Comment faire ?????