En mi complemento de herramientas personalizado, he notado un error donde puedes obtener valores de durabilidad negativos al usar la herramienta en modo creativo y luego cambiar a modo supervivencia. Esto se debe a que mientras las herramientas estándar no reciben daño de durabilidad cuando se usan en modo creativo, las personalizadas sí. Me gustaría poder reproducir la funcionalidad de la herramienta estándar al hacer que mi función de decremento de durabilidad se llame condicionalmente solo cuando el jugador no está en modo creativo.
Pero, no he encontrado ninguna forma de detectar qué modo de juego está activo dentro del archivo main.js
.
Soy consciente de cómo detectar los modos de juego de los jugadores usando bloques de comandos, como se discute en esta pregunta, y también cómo establecer el modo de juego usando este comando. Y, he encontrado la página de documentación para la enumeración GameMode en el módulo @minecraft/server
, que lista todos los modos posibles. Habría esperado que hubiera una forma de encontrar cuál está activo, pero si es así, no está documentado ahí.
No parece haber un método getCurrentGameMode()
o algo similar para las clases World o Player.
Supongo que probablemente sea posible hacer algo como colocar programáticamente un bloque de comandos y establecer su comando, luego configurar un bloque de comandos en cadena en modo 'condicional' que coloque un cierto tipo de bloque solo si el comando 'probar si el jugador está en modo creativo' devolvió verdadero, y luego hacer que el script verifique ese tipo especial de bloque antes de reemplazar los tres con aire. Pero realmente preferiría no usar una solución alternativa como esta.
Entonces, ¿hay alguna forma de detectar el modo de juego activo usando solo funciones de script, que no requiera colocar bloques temporales?