Ir para conteúdo
  • 0

[Resolvido] Asynchronous player kick!


Guest Tatsunow12

Pergunta

Guest Tatsunow12

Gente, estou tentando fazer um sistema aqui...

mas o bagulho tá sinistro.

to usando scheduler e dentro do scheduler quero fazer kickar um player

mas fala "Asynchronous player kick!"

código:

 

 

@Override
    public void onEnable() {
        
        
        this.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
            
            @Override
            public void run() {
                new Thread(){

                    public void run() {
                        
                        Connection c = ConnectionFactory.getConnection();
                        try {
                            PreparedStatement ps = c.prepareStatement("SELECT * FROM `skin`");
                            ResultSet rs = ps.executeQuery();
                            while(rs.next()){
                                try {
                                    String player = rs.getString("player");
                                    String skin = rs.getString("skin");
                                    SkinsRestorerAPI.setSkin(player, skin);
                                    if(getServer().getPlayer(player) != null && getServer().getPlayer(player).isOnline()){
                                        Player p = getServer().getPlayer(player);
                                        p.kickPlayer("§bSua skin foi atualizada com sucesso, relogue para ver a nova skin.");
                                    }
                                    Bukkit.getServer().broadcastMessage(player);
                                    PreparedStatement p = c.prepareStatement("DELETE FROM `skin` WHERE `id`=?");
                                    p.setInt(1, rs.getInt("id"));
                                    p.execute();
                                    try {
                                        Thread.sleep(200L);
                                    } catch (InterruptedException e) {
                                        e.printStackTrace();
                                    }
                                } catch (SkinFetchFailedException e) {
                                }
                            }
                        } catch (SQLException e) {
                        }
                        
                    }    
                    
                }.start();
                
                
            }
        }, 0L, 2400L);

Sabem o que é?

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

8 respostass a esta questão

Posts Recomendados

Não pode interagir usando task Async :c, no lugar de fazer tudo isso cria um bukkitrunnable async :c, ai faz umas brzisse para kickar usando task sync

 

@Edit

 Pode me dizer aonde ta async nessa bodega?

 

Você está com uma Thread dentro da Runnable, isso faz a task ficar async

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

Guest Tatsunow12

 

Não pode interagir usando task Async :c, no lugar de fazer tudo isso cria um bukkitrunnable async :c, ai faz umas brzisse para kickar usando task sync

 

@Edit
 

Você está com uma Thread dentro da Runnable, isso faz a task ficar async

 

ok obg.

Link para o comentário
Compartilhar em outros sites

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