Ir para conteúdo
  • 0

[Resolvido] [Dúvida] Páginas


jetta

Pergunta

eu to usando um sistema de páginas parecido com o que o postou uma vez mas não to conseguindo na hora de mudar de página
quero que quando for a pagina 2, va para 3, pagina 3, va para 4, só que nao to conseguindo ;-;

método:

public void openMember(Player p){
int a = 0;
int pg = 1;
Inventory mbr = Bukkit.createInventory(null, 9*6, "§fPágina " + pg + "     §8§lMEMBROs");
pages.put(1, mbr);
for(Player pe : this.getServer().getOnlinePlayers()){
if(pe.hasPermission("membro.list") && (a <= 53)){
ItemStack head = new ItemStack(Material.SKULL_ITEM,1,(short)3);
SkullMeta im = (SkullMeta) head.getItemMeta();
im.setOwner(pe.getName());
im.setDisplayName("§7" + pe.getName());
head.setItemMeta(im);
mbr.addItem(head);
a++;
mbr.setItem(52, head);
p.openInventory(pages.get(pg));
if(mbr.getItem(52) == null || (mbr.getItem(52).getType() == Material.AIR)) return;
ItemStack button = new ItemBuilder()
.of(Material.STONE_BUTTON)
.addName("§7Proxima pagina")
.setGlowing(true)
.build();
mbr.setItem(53, button);
p.updateInventory();
pg++;
mbr = Bukkit.createInventory(null, 9*6, "§fPágina " + pg + "     §8§lMEMBROs");
pages.put(pg, mbr);
}
}
}

onclick:

try{
if(e.getWhoClicked() instanceof Player){
Player p = (Player)e.getWhoClicked();
Inventory page = pages.get(2);
if(e.getInventory().getName().equals(pages.get(1).getName())){
e.setCancelled(true);
if(e.getSlot() == 53 && e.getCurrentItem().getType() == Material.STONE_BUTTON){
p.closeInventory();
p.openInventory(page);
}
}
}
}
catch(NullPointerException localNullPointerException){}
}
Editado por jetta
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

Tenta usar esse codigo, so trocar os tipos de dados. Você coloca nele uma lista de itens e separa eles pela página que você escolher iniciando do 0. E para definir a quantidade de itens por página so mudar o valor em "amount"



private String page(int page, List<String> list) {
int amount = 5;
int startPage = page == 0 ? 0 : (page * amount) - 1;
int endPage = startPage + amount;
StringBuilder str = new StringBuilder();
for(int i = startPage;i <= endPage;i++) {
try{str.append(list.get(i)).append("\n");}catch(IndexOutOfBoundsException e) {str.append("\n");}
}
return str.toString();
}

Link para o comentário
Compartilhar em outros sites

Link para o comentário
Compartilhar em outros sites

Erro não dá, oque acontece é que eu não to conseguindo verificar em que página ele ta.

Cria uma hashmap de String (nome do player) para int, ai quando ele abrir o inv coloque o valor de 0 na hash do player, ai vai adicionando ou diminuindo do numero de acordo com o inventario e.e

Link para o comentário
Compartilhar em outros sites

Cria uma hashmap de String (nome do player) para int, ai quando ele abrir o inv coloque o valor de 0 na hash do player, ai vai adicionando ou diminuindo do numero de acordo com o inventario e.e

 

não consegui, mas pode fechar

Link para o comentário
Compartilhar em outros sites

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