Ir para conteúdo
  • 0

[Resolvido] Jogador clicar apenas 1 vez


Guest » MickCraft «

Pergunta

Guest » MickCraft «

Bom to fazendo um plugin de Mobspawn e gostaria de saber como eu faço para o jogador so poder clicar na placa 1 vez.

 

Obs: eu já fiz o plugin e tals, porem o jogador pega vários mobspawner e eu queria que fosse so 1 vez até o próximo stop do servidor.

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

se poder ser NUNCA seria melhor :3

Sempre quando vou fazer este tipo de coisa armazeno em um file.yml:

@EventHandler
public void onPlayerInteract(PlayerInteractEvent e){
        Player p = e.getPlayer();
        File f = new File(getDataFolder(), "pegou.yml");
        FileConfiguration fc = YamlConfiguration.loadConfiguration(f);
        fc.set(p.getName() + ".Pegou", true);
        try{
                fc.save(f);
        }catch(IOExcepetion e){
                e.printStackTrace();
        }
        if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
        if(e.getClickedBlock().getState() instanceof Sign){
                Sign s = (Sign) e.getClickedBlock().getState();
                if(s.getLine(0).equalsIgnoreCase("§3[MOB]")){
                        if(fc.getBoolean(p.getName() + ".Pegou") == true){
                                e.setCancelled(true);
                                p.sendMessage("§3Você já pegou seu Mob!");
                        }else{
                                // Aqui é o que acontece caso o player ainda não tenha pegado o mob...
                        }
                }
        }
}

Mais uma vez, fiz pelo fórum, então se tiver errado, acho que tu sabe o que fazer...

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

Guest ~iNotLinduh.

Se Você Quer Usar Apenas 1 Vez( Uma E Nunca Mais ), E

Então É Melhor Criar Um Arquivo Separado, Quando O Player Clicar Na Placa Se Ele Não Tiver Com O Nome
Nesse Arquivo
Ele Ganha O Mobspawner, Se Ele Tiver Então Retorna...

Agora Se Você Quer Que A Cada Reload Ou Stop Possa Clica Na Placa, Ai É So Usar ArrayList, 
No Mesmo "Estilo" Do Arquivo, Faz Uma Verificação Pra Ver Se O Player Tá Na ArrayList, Se Ele Tiver Retorna,
Senão Ele Ganha O Mobspawner...

Editado por ~iNotLinduh.
Link para o comentário
Compartilhar em outros sites

Sempre quando vou fazer este tipo de coisa armazeno em um file.yml:

@EventHandler
public void onPlayerInteract(PlayerInteractEvent e){
        Player p = e.getPlayer();
        File f = new File(getDataFolder(), "pegou.yml");
        FileConfiguration fc = YamlConfiguration.loadConfiguration(f);
        fc.set(p.getName() + ".Pegou", true);
        try{
                fc.save(f);
        }catch(IOExcepetion e){
                e.printStackTrace();
        }
        if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
        if(e.getClickedBlock().getState() instanceof Sign){
                Sign s = (Sign) e.getClickedBlock().getState();
                if(s.getLine(0).equalsIgnoreCase("§3[MOB]")){
                        if(fc.getBoolean(p.getName() + ".Pegou") == true){
                                e.setCancelled(true);
                                p.sendMessage("§3Você já pegou seu Mob!");
                        }else{
                                // Aqui é o que acontece caso o player ainda não tenha pegado o mob...
                        }
                }
        }
}

Mais uma vez, fiz pelo fórum, então se tiver errado, acho que tu sabe o que fazer...

Poxa, sempre respondendo quando vou dar Enter, ;-;

Link para o comentário
Compartilhar em outros sites

Guest » MickCraft «

Sempre quando vou fazer este tipo de coisa armazeno em um file.yml:

@EventHandler
public void onPlayerInteract(PlayerInteractEvent e){
        Player p = e.getPlayer();
        File f = new File(getDataFolder(), "pegou.yml");
        FileConfiguration fc = YamlConfiguration.loadConfiguration(f);
        fc.set(p.getName() + ".Pegou", true);
        try{
                fc.save(f);
        }catch(IOExcepetion e){
                e.printStackTrace();
        }
        if(!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
        if(e.getClickedBlock().getState() instanceof Sign){
                Sign s = (Sign) e.getClickedBlock().getState();
                if(s.getLine(0).equalsIgnoreCase("§3[MOB]")){
                        if(fc.getBoolean(p.getName() + ".Pegou") == true){
                                e.setCancelled(true);
                                p.sendMessage("§3Você já pegou seu Mob!");
                        }else{
                                // Aqui é o que acontece caso o player ainda não tenha pegado o mob...
                        }
                }
        }
}

Mais uma vez, fiz pelo fórum, então se tiver errado, acho que tu sabe o que fazer...

Blz, se tiver BUG eu sei usar esses metodos u.u

Link para o comentário
Compartilhar em outros sites

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