Ir para conteúdo

Duvidas sobre um codigo!


TrDSTYLEE

Posts Recomendados

Então gostaria de saber se algum dev poderia me ajudar como eu faço para ao crescer a cana e o cacto quebrar automaticamente e dropar no chão agradeço se algum dev me dar um help!


    @EventHandler
    public void onCactusGrow(BlockGrowEvent event) {
        Block block = event.getBlock();

        if (block.getType() == Material.SUGAR_CANE_BLOCK 
                || block.getType() == Material.SUGAR_CANE 
                || block.getType() == Material.CACTUS) {
        
           block.getState().getBlock().breakNaturally();
        }
    }
}

Link para o comentário
Compartilhar em outros sites

olha se não me engano pra crescer a cana de açúcar é mais ou menos assim eu fiz no meu /fertilizar 
 

						if (type == Material.SUGAR_CANE) {
                            // Faz a cana-de-açúcar crescer
                            Block belowBlock = block.getRelative(BlockFace.DOWN);
                            if (belowBlock.getType() == Material.SUGAR_CANE) {
                                block.setType(Material.SUGAR_CANE);
                                any = true;
                            }



 

Link para o comentário
Compartilhar em outros sites

21 minutos atrás, Frogguer disse:

olha se não me engano pra crescer a cana de açúcar é mais ou menos assim eu fiz no meu /fertilizar 
 

						if (type == Material.SUGAR_CANE) {
                            // Faz a cana-de-açúcar crescer
                            Block belowBlock = block.getRelative(BlockFace.DOWN);
                            if (belowBlock.getType() == Material.SUGAR_CANE) {
                                block.setType(Material.SUGAR_CANE);
                                any = true;
                            }



 

Não eu quero pra ela quebrar automaticamente quando crescer entendeu!

Link para o comentário
Compartilhar em outros sites

Bom dia, rapaz.

 

    @EventHandler
    void grow(BlockGrowEvent event) {
        Material blockType = event.getNewState().getType();
        if (blockType == Material.CACTUS || blockType == Material.SUGAR_CANE_BLOCK) {
            event.getBlock().getWorld().dropItemNaturally(event.getBlock().getLocation(), blockType == Material.CACTUS ? new ItemStack(Material.CACTUS) : new ItemStack(Material.SUGAR_CANE));
            event.setCancelled(true);
        }
    }

 

Isso aqui resolve seu problema. O evento é disparado antes do bloco crescer. Sendo assim, você precisa pegar o newState para saber o tipo. Depois, cancele o evento e drope o item normalmente.

Link para o comentário
Compartilhar em outros sites

DÚVIDA RESOLVIDA

O tópico foi marcado como resolvido por nossa equipe. Caso não tenha sanado a sua dúvida ainda, contate a staff para o tópico ser redirecionado de volta para a área anterior.

Equipe de Moderação,
Gamer's Board.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...