es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tipo de bloque incorrecto leído – Plugin Minecraft Spigot 1.16.3

Estoy creando un plugin que utiliza fetch y save para el tipo de bloque utilizando el método getBlockData().getAsString().

Tengo un problema al recuperar el tipo de bloque para “Shulker Box” y “Purple Shulker Box”.


El motor es 1.16.3-R0.1-SNAPSHOT.

El plugin está escrito para la versión 1.16.3.


Cuando uso Location.getBlock().getType() para “Shulker Box”, devuelve “LEGACY_PURPLE_SHULKER_BOX” y para “Purple Shulker Box” devuelve “LEGACY_AIR”.

Pero, Location.getBlock().getBlockData().getAsString() ya funciona correctamente. Para “Shulker Box” devuelve “minecraft:shulker_box[facing=up]” y para “Purple Shulker Box” es “minecraft:purple_shulker_box[facing=up]”

En mi plugin, antes de guardar el tipo de bloque, utilizo un IF para comprobar si el bloque no es aire (Location.getBlock().getType() != Material.AIR), si no es aire, entonces guardo la “BLOCK DATA”.
Lamentablemente, en este caso no funciona porque el bloque se detecta como aire.

Por favor, ¿me pueden ayudar a resolver este problema?

He comprobado otros tipos de SHULKER BOX y este problema sólo ocurre con “Shulker Box”.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para resolver este problema, debes cambiar tu declaración IF para verificar los datos del bloque utilizando Location.getBlock().getBlockData() en lugar del tipo de bloque. Puedes comparar los datos del bloque como una cadena utilizando el método getBlockData().getAsString().

    Por ejemplo:

    if(!Location.getBlock().getBlockData().getAsString().equals("minecraft:air")) {
        // guardar los datos del bloque
    }
    

    De esta manera, se detectarán correctamente las Shulker Boxes y las Purple Shulker Boxes como bloques no vacíos y se guardarán sus datos del bloque.

Comments are closed.