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”.
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étodogetBlockData().getAsString()
.Por ejemplo:
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.