Solución:
El ‘JSON’ (o ‘Javascript Oobjeto norteotation ‘) es la parte del comando de Minecraft rodeada por corchetes. Los corchetes representan una matriz y todos los objetos principales (corchetes) son parte de esa matriz.
Si no ha configurado su matriz u objetos de la manera correcta, Minecraft no podrá interpretar lo que significa su comando. Afortunadamente, existen algunas herramientas que puede usar para ayudarlo a depurar esto.
Lo primero que debe hacer en estas situaciones es formatear su cadena JSON para que sea más fácil de leer. JSONLint se puede utilizar para esto. Pegue la parte de su comando que comienza desde el corchete, ejecute el validador y copie el JSON formateado.
En segundo lugar, desea validar su cadena JSON. También puede usar JSONLint para validar la configuración, pero creo que JSON Formatter & Validator es un poco más fácil de usar, ya que mantiene un historial de cambios para que pueda volver a una versión en particular si lo necesita.
Aquí está el desglose de su cadena JSON y los errores Formateador y validador JSON fundar:
Lo primero que puedo ver es que, en el valor de su ClickEvent, está resaltada la parte de ‘texto’ porque las comillas dobles que está usando aquí no se interpretan de la manera que usted desea. En este caso, desea que se traten como ‘texto’ para usarlos en su evento de clic más adelante, pero en este momento el intérprete JSON cree que son el ‘final’ de la declaración JSON.
Debe agregar una barra invertida para escapar de las comillas dobles internas para que se traten como texto:
"value": "/tellraw @p{"text":" Come back when you want to teleport "}"
^ | ^ ^ ^ ^
external | these ones are 'escaped' because they
quote mark | are 'inside' the external quotes
Arreglemoslo y volvamos a ejecutarlo:
Ahora solo queda un error. Esto sucede porque el objeto encima el corchete resaltado no está bien cerrado con un corchete de cierre correspondiente:
El intérprete espera que cierre el objeto antes de iniciar uno nuevo:
[
"Would you like to teleport?", {
"text": "Yes",
"color": "green",
"bold": "true",
"clickEvent": {
"action": "run_command",
"value": "/tp @p ~ ~4 ~ "
},
"hoverEvent": {
"action": "show_text",
"value": {
"text": "Confirm"
}
}},
^ add this
Running again, it seems that fixed the error at that object, but now there’s an extra close-bracket at the bottom:
“Expecting comma or ‘]’“significa que espera que agregue otro elemento (con una coma) o que termine la matriz (con un corchete cerrado). Ese corchete cerrado no tiene sentido aquí.
Quita ese corchete extra y ¡tada!
Aquí está su matriz JSON válida (puede reducirla a una sola línea y volver a agregar el comando usted mismo). No doy garantías de que hará lo que tu querer, pero al menos ahora es válido.
["Would you like to teleport?", {
"text": "Yes",
"color": "green",
"bold": "true",
"clickEvent": {
"action": "run_command",
"value": "/tp @p ~ ~4 ~ "
},
"hoverEvent": {
"action": "show_text",
"value": {
"text": "Confirm"
}
}
}, {
"text": "No",
"color": "red",
"bold": "true",
"clickEvent": {
"action": "run_command",
"value": "/tellraw @p{"text":"Come back when you want to teleport"}"
}
}]
En primer lugar, la “línea” y las “columnas” se refieren básicamente a los caracteres del texto. Dado que todo su código (el comando) está en una sola línea, tiene sentido. Sin embargo, la columna son los “bloques” individuales en los que se encuentra cada personaje. Por ejemplo:
| 0 | 1 | 2 | 3 | 4 |
1 | H | E | L | L | O |
Como puede ver, la palabra comienza en ‘línea 1, columna 0’ y termina en ‘línea 1, columna 4’. Entonces, en referencia a su error, el carácter 204 (¡recuerde comenzar en 0!) Es el carácter que está lanzando su comando. Sin embargo, por extraño que parezca, este error se refiere a la sección del comando después el objetivo (es decir @p
) – incluido el espacio.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ...
1 | | { | " | t | e | x | t | " | ...
NOTA: Puede que no sea un personaje que ya exista en tu comando, también podría ser un personaje que sea esperado, pero no está ahí.