Je fais beaucoup de grands commandes dans cette carte à moi et je me demandais si, comme les blocs de commande de chat, il y a peut-être une limite de caractères.
Est-ce que quelqu'un connaît la limite ou s'il n'y en a pas?
Je fais beaucoup de grands commandes dans cette carte à moi et je me demandais si, comme les blocs de commande de chat, il y a peut-être une limite de caractères.
Est-ce que quelqu'un connaît la limite ou s'il n'y en a pas?
Selon le Wiki Minecraft, il y a une limite, mais c'est une très grande.
Voir la page Bloc de commande sur le Wiki Minecraft :
La limite de texte pour les commandes dans un bloc de commande est de 32 767 caractères, mais le volet de texte ne peut afficher qu'une petite partie de cette quantité à la fois.
A partir de 1.9, la limite de caractères lors de l'utilisation de l'interface du bloc de commande a été réduite à 32,500 (au lieu de 32,767). Ce changement a été fait pour éviter les plantages lors du dépassement de la limite de paquet de 32,767 octets, car plus d'informations que seulement la commande sont envoyées au serveur lors de la confirmation des changements (y compris les différentes options dans l'interface).
La commande est stockée par le serveur sous forme de chaîne NBT. Techniquement, la limite de caractères est autant que ce qui peut être contenu dans le type String de Java, étant Integer.MAX_VALUE
(2^31-1).
Cependant, lors de la sauvegarde de la chaîne, par exemple, dans un fichier de chunk, une nouvelle limite de caractères provient de la méthode DataOutput.writeUTF() de Java:
Si ce nombre est supérieur à 65535, alors une
UTFDataFormatException
est déclenchée.
Si une UTFDataFormatException
est déclenchée, le chunk ne pourra pas être sauvegardé. Par conséquent, pour la distribution de cartes, la limite de caractères est de 65,535. Comme le client ne peut envoyer que 32,500 caractères d'une commande, il ne sera pas possible de modifier le bloc de commande via l'interface sans réduire la commande.
Une méthode pour obtenir un bloc de commande sur un serveur vanilla qui atteint la limite de 65,535 est d'utiliser une table de butin. Les tables de butin peuvent créer un objet bloc de commande contenant une commande prédéfinie, qui est entièrement géré côté serveur (donc pas de limite client de 32,500).
Avec la table de butin suivante située à WORLD/data/loot_tables/custom/limit.json
: http://pastebin.com/8tmeeU4M
Et la commande suivante pour créer un coffre contenant le bloc de commande pertinent:
/setblock ~ ~1 ~ minecraft:chest 0 replace {LootTable:"custom:limit"}
Placer et activer le bloc de commande exécutera une commande /say
longue de 65,535 caractères, et vous verrez le dernier caractère de "1" dans le chat (indiquant que la commande n'a pas été réduite). Vous pouvez alors quitter le monde et revenir, la commande fonctionnera toujours.
Essayer d'ajouter plus de caractères permettra toujours le fonctionnement tant que le chunk est chargé, mais une fois que vous quittez le monde ou déchargez le chunk, le chunk ne pourra pas être sauvegardé avec l'erreur suivante:
[STDERR]: java.io.UTFDataFormatException: encoded string too long
Je voudrais juste dire que si vous essayez cette même chose en solo avec un datapack, mais utilisez à la place /loot give @p loot minecraft:custom/limit
, vous recevrez un bloc de commande avec la commande, mais la limite sera toujours en vigueur. J'avais vraiment hâte d'utiliser cela dans un monde solo.
AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Pourquoi le vote négatif ?
0 votes
Peut-être parce que la réponse se trouve facilement sur le wiki. Et vous pouvez trouver la page en première position sur Google en tapant "limite de caractères du bloc de commande Minecraft". Juste une supposition ^_^