Ir para conteúdo

Ajuda em verificação se o inventario do jogador está cheio


zToodi

Posts Recomendados

Estou criando um plugin de quando quebrar um bloco ir pro inventario, e um sistema de verificar se

o inventario do jogador está cheio porém a verificação que fiz está bugando '-'

se tiver outro metodo me ensinem por favor

Metodo Utilizado:

image.png.255d9696b3cce64cd1133125d46e7063.png

Link para o comentário
Compartilhar em outros sites

31 minutos atrás, String disse:

Pesquise um pouco sobre p.getInventory().firstEmpty();

Ele é o método mais funcional neste caso, aí você está fazendo uma declaração muito, mais muito errada.

Cara estou quase 1 hora pesquisando sobre firstEmpty e não consegui ainda utilizar o metodo

?

Link para o comentário
Compartilhar em outros sites

@EventHandler
    public void BlockBreak(BlockBreakEvent e) {
       
        if((e.getPlayer().getInventory().firstEmpty() != -1)){
       
        for(ItemStack item : e.getBlock().getDrops()){
            e.getPlayer().getInventory().addItem(item);
            }
        }else{
            e.getPlayer().sendMessage(RED + "Seu Inventario esta cheio!");
        }
        e.setCancelled(true);
        e.getBlock().setType(Material.AIR);
    }
}

 

Editado por MaxThon1365DEV
Esqueci de colocar algo '-'
Link para o comentário
Compartilhar em outros sites

4 horas atrás, MaxThon1365DEV disse:

@EventHandler
    public void BlockBreak(BlockBreakEvent e) {
       
        if((e.getPlayer().getInventory().firstEmpty() != -1)){
       
        for(ItemStack item : e.getBlock().getDrops()){
            e.getPlayer().getInventory().addItem(item);
            }
        }else{
            e.getPlayer().sendMessage(RED + "Seu Inventario esta cheio!");
        }
        e.setCancelled(true);
        e.getBlock().setType(Material.AIR);
    }
}

 

Acho que esse metodo para mim não irá funcionar, pois eu queria verificar se o bloco quebrado é tal bloco (sómente para os minérios)

Link para o comentário
Compartilhar em outros sites

1 hora atrás, レオナルド disse:

Acho que esse metodo para mim não irá funcionar, pois eu queria verificar se o bloco quebrado é tal bloco (sómente para os minérios)

?????????????????????????????????????????

ta viajando na batatinha cara 

 

Existem 2 método pra verificar se o inv ta cheio, o primeiro deles é verificando pelo firstEmpty, no caso, o firstEmpty retorna o número do primeiro slot vazio do inventario do player, caso o player não possua nenhum slot vazio então o número retornado sera -1, ou seja, pra verificar basta fazer isso

if (p.getInventory().firstEmpty() == -1) // inv cheio

 

A outra maneira seria criar um método que faça um loop através de todos os slots do inv do player e retorne uma boolean dizendo se o inv ta cheio ou não...

Link para o comentário
Compartilhar em outros sites

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