2 votes

Les blocs de commande ont-ils des limites de caractères ?

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?

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 ^_^

5voto

crgsqdmn Points 784

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.

2voto

Skylinerw Points 12529

Avec client (32,500)

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).

Avec serveur (2^31-1 ou 65,535)

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.

Exemple

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

0 votes

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.

0 votes

@Diriector_Doc C'est seulement le cas si vous éditez le bloc de commande après l'avoir placé, ce qui signifie que le client interagit avec le serveur (et est donc limité à 32 500 caractères). Cela fonctionne toujours tant que vous ne modifiez pas le bloc de commande.

-2voto

random_dude Points 1

Oui, il y a une limite de caractères. Vous n'avez pas à vous en soucier à moins que vous ne fassiez une création en une seule commande. De plus, s'il s'agit de la version 1.9+, il n'y a pas de limite de caractères. Mojang s'en est débarrassé en développant la 1.9.

3 votes

Ce n'est pas correct. Il y aura toujours une limite de caractères, c'est juste la façon dont cela fonctionne.

AlleGamers.com

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.

Powered by:

X