Grand adepte des commandes que vous êtes, vous vous êtes sans doute rendu compte que récupérer une valeur aléatoire dans Minecraft n’était pas aussi simple que prévu. Mais ça, c’était jusqu’à la version 1.20.2, et la commande /random qu’elle ajoute.
Cette commande, intuitive et complète, permet de générer des nombres entiers aléatoires dans une plage donnée, en incluant optionnellement un paramètre de séquence. Cette séquence peut également être réinitialisée.
Générer un nombre aléatoire
Générer un nombre entier aléatoire se fait soit avec la commande /random value <plage> [<séquence>], soit avec la commande /random roll <plage> [<séquence>]. Alors que l’argument value n’enverra le résultat qu’au joueur qui a exécuté la commande, roll l’affichera dans le tchat à tous les joueurs connectés.
Le paramètre plage correspond à une plage de nombres entiers, qui définissent la valeur minimum et la valeur maximum à utiliser. Elle peut avoir comme valeur 1..10, -5..15, 37.. ou encore ..-100. Si le minimum ou le maximum ne sont pas précisés, ils vaudront respectivement -2147483648 et 2147483647. Notez que la taille totale de la plage doit être comprise entre 2 et 2147483646.
Le paramètre séquence, quant à lui, permet de spécifier un chemin d’accès vers une loot table, c’est-à-dire une chaîne de caractères utilisée pour créer le nombre aléatoire. Pour les plus matheux d’entre vous, ce paramètre pourra vous être utile afin de prévoir le nombre généré. Pour les autres, ne vous inquiétez pas, il est optionnel.
Exemples
Dans ce premier exemple, le joueur qui a exécuté la commande a généré le nombre 122 à partir d’une plage définie entre 100 et 200. La commande utilisée est /random value 100..200.
Ici, la commande a généré et affiché à tout le monde un nombre aléatoire compris entre -10 et 10, en utilisant la séquence minecraft:entities/creeper. La commande utilisée est /random roll -10..10 minecraft:entities/creeper.
Prenons maintenant un exemple plus concret, en effectuant une action spécifique en fonction du nombre généré aléatoirement.
- D’abord, on crée un scoreboard avec la commande /scoreboard objectives add exemple dummy.
- Ensuite, on stocke un nombre aléatoire compris entre 1 et 3 dans ce score, pour le joueur qui exécute la commande. Pour cela, on utilise la commande /execute store result score @s exemple run random value 1..3.
- En fonction de la valeur générée aléatoirement, on exécute une action différente :
- /execute if score @s exemple matches 1 run give @s diamond 1
- /execute if score @s exemple matches 2 run weather rain
- /execute if score @s exemple matches 3 run gamemode creative
Réinitialiser une séquence
Réinitialiser une séquence se fait avec la commande /random reset <séquence> [<graine>] [<inclureGraineDuMonde>] [<inclureIdSéquence>].
Le paramètre séquence correspond à un chemin d’accès sous forme de chaîne de caractères, comme vu précédemment. Il est également possible de réinitialiser toutes les séquences utilisées en mettant « * » comme valeur de ce paramètre.
Les autres paramètres, à savoir graine, inclureGraineDuMonde et inclureIdSéquence, permettent de préciser la manière de réinitialiser la séquence. Ils sont tous les trois optionnels.
- La graine correspond à la valeur utilisée pour réinitialiser la séquence, sous forme de nombre entier
- Le paramètre inclureGraineDuMonde permet, s’il vaut true, d’utiliser la graine du monde pour réinitialiser la séquence
- Le paramètre inclureIdSéquence permet, s’il vaut true, d’utiliser l’identifiant de la séquence pour réinitialiser la séquence
Encore une fois, ces paramètres sont complexes et permettent d’affiner les nombres aléatoires générés de manière assez poussée.
Exemples
Dans cet exemple, le joueur a réinitialisé toutes les séquences utilisées, en utilisant la commande /random reset *.
Ici, le joueur réinitialise la séquence minecraft:entities/creeper, en utilisant la graine 123456 et en incluant la graine du monde et l’identifiant de séquence. La commande utilisée est /random reset minecraft:entities/creeper 123456 true true.