Ir para conteúdo
  • 0

[Resolvido] Falha no click


Frogguer

Pergunta

Algum poderia arruma este código? quando Eu abro o inventário e dropo algum item some o item, e quando atualiza o inventário(abrindo baús et..) os itens estão lá.



@EventHandler
public void onClick(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
Inventory inventory = event.getInventory();
if (inventory.getName().equals("Terrenos de @"+ player.getName())) {
ItemStack click = event.getCurrentItem();
if (click == null || click.getType() != Material.STAINED_CLAY) {
return;
}
String name = net.md_5.bungee.api.ChatColor.stripColor(click.getItemMeta().getDisplayName());
int id = Integer.parseInt(name.split("Terreno #")[1]);
String regionId = "terreno-" + id;
ProtectedRegion region = Main.getWorldGuard().getRegionManager(Bukkit.getWorld("terrenos")).getRegion(regionId);
Location spawn = LocationUtils.deserializeLocation(region.getFlag(DefaultFlag.ENTRY_DENY_MESSAGE));
player.closeInventory();
player.teleport(spawn);
}
}

 


 


 


 


 


 


a pedido de um amigo meu '-'


Editado por Frogguer
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

 

Algum poderia arruma este código? quando Eu abro o inventário e dropo algum item some o item, e quando atualiza o inventário(abrindo baús et..) os itens estão lá.

    @EventHandler
    public void onClick(InventoryClickEvent event) {
        Player player = (Player) event.getWhoClicked();
        Inventory inventory = event.getInventory();
        if (inventory.getName().equals("Terrenos de @"+ player.getName())) {
            ItemStack click = event.getCurrentItem();
            if (click == null || click.getType() != Material.STAINED_CLAY) {
                return;    
            }
            String name = net.md_5.bungee.api.ChatColor.stripColor(click.getItemMeta().getDisplayName());
            int id = Integer.parseInt(name.split("Terreno #")[1]);
            String regionId = "terreno-" + id;
            ProtectedRegion region = Main.getWorldGuard().getRegionManager(Bukkit.getWorld("terrenos")).getRegion(regionId);
            Location spawn = LocationUtils.deserializeLocation(region.getFlag(DefaultFlag.ENTRY_DENY_MESSAGE));
            player.closeInventory();
            player.teleport(spawn);
        }
    }

 

a pedido de um amigo meu '-'

 

 

Você precisa que cancelar o evento, não apenas fechar o inventario, pode ser isso que esteja causando o problema.

 

Coloque e.setCancelled(true) antes do player.closeInventory();

Link para o comentário
Compartilhar em outros sites

   @EventHandler
    public void onClick(InventoryClickEvent event) {
        Player player = (Player) event.getWhoClicked();
        Inventory inventory = event.getInventory();
        if (inventory.getName().equals("Terrenos de @"+ player.getName())) {
            ItemStack click = event.getCurrentItem();
            if (click == null || click.getType() != Material.STAINED_CLAY) {
                return;    
            }
            String name = net.md_5.bungee.api.ChatColor.stripColor(click.getItemMeta().getDisplayName());
            int id = Integer.parseInt(name.split("Terreno #")[1]);
            String regionId = "terreno-" + id;
            ProtectedRegion region = Main.getWorldGuard().getRegionManager(Bukkit.getWorld("terrenos")).getRegion(regionId);
            Location spawn = LocationUtils.deserializeLocation(region.getFlag(DefaultFlag.ENTRY_DENY_MESSAGE));
            e.setCancelled(true);
            player.closeInventory();
            player.teleport(spawn);
        }
    }

Fiz o que o leonardo falou, provavelmente é isso.

Link para o comentário
Compartilhar em outros sites

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