[Erro] ResultSet closed

Discussão em 'Desenvolvimento de Mods e Plugins' iniciado por WizardlyBump17, 13 Julho 2019.

  1. WizardlyBump17
    Offline

    WizardlyBump17 Membro Ativo

    Afiliado:
    11 Março 2018
    Mensagens:
    758
    Sexo:
    Masculino
    Avaliações:
    +224 / -2
    Apelido no Minecraft:
    WizardlyBump17
    Código (Forge Crash):

    [13:03:59 WARN]: java.sql.SQLException: ResultSet closed
    [13:03:59 WARN]:  at org.sqlite.RS.checkOpen(RS.java:63)
    [13:03:59 WARN]:  at org.sqlite.RS.findColumn(RS.java:108)
    [13:03:59 WARN]:  at org.sqlite.RS.getInt(RS.java:293)
    [13:03:59 WARN]:  at com.dreammissoes.dreamnetwork.dreammissoes.missoes.MissoesClass.getMineradorBlocosQuebrados(MissoesClass.java:14)
    [13:03:59 WARN]:  at com.dreammissoes.dreamnetwork.dreammissoes.events.QuebrarBloco.quebrar(QuebrarBloco.java:17)
    [13:03:59 WARN]:  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [13:03:59 WARN]:  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    [13:03:59 WARN]:  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    [13:03:59 WARN]:  at java.lang.reflect.Method.invoke(Unknown Source)
    [13:03:59 WARN]:  at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306)
    [13:03:59 WARN]:  at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    [13:03:59 WARN]:  at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502)
    [13:03:59 WARN]:  at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.PlayerInteractManager.breakBlock(PlayerInteractManager.java:286)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.PlayerInteractManager.a(PlayerInteractManager.java:215)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:637)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:40)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.PacketPlayInBlockDig.a(SourceFile:10)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13)
    [13:03:59 WARN]:  at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    [13:03:59 WARN]:  at java.util.concurrent.FutureTask.run(Unknown Source)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654)
    [13:03:59 WARN]:  at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557)
    [13:03:59 WARN]:  at java.lang.Thread.run(Unknown Source)
     
    MissoesClass.java
    Código (Forge Crash):

    package com.dreammissoes.dreamnetwork.dreammissoes.missoes;

    import java.sql.SQLException;

    import org.bukkit.entity.Player;

    import com.dreammissoes.dreamnetwork.dreammissoes.utils.SQliteConnector;

    public class MissoesClass {
       
       public static int getMineradorBlocosQuebrados(Player p) {
         int i = 0;
         try {
            i += SQliteConnector.commandR("SELECT minerador FROM players WHERE uuid = '" + p.getUniqueId() + "';").getInt("minerador");
         } catch (SQLException e) {
           e.printStackTrace();
         }
         return i;
       }
       
       public static boolean coletouMinerador(Player p) {
         boolean b = false;
         try {
           int i = 0;
           i = SQliteConnector.commandR("SELECT mineradorcoletado FROM players WHERE uuid = '" + p.getUniqueId() + "';").getInt("mineradorcoletado");
           if(i == 0) {
             b = false;
           }
           if(i == 1) {
             b = true;
           }
         } catch (SQLException e) {
           e.printStackTrace();
         }
         return b;
       }
       
       public static void addBlocosMinerador(Player p, int quantidade) {
         int blocosTotais = getMineradorBlocosQuebrados(p);
         int blocos = blocosTotais + quantidade;
         SQliteConnector.commandNR("UPDATE players SET minerador = " + blocos + " WHERE uuid = '" + p.getUniqueId() + "';");
       }

    }

     
    QuebrarBloco.java
    Código (Forge Crash):

    package com.dreammissoes.dreamnetwork.dreammissoes.events;

    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;

    import com.dreammissoes.dreamnetwork.dreammissoes.missoes.MissoesClass;

    public class QuebrarBloco implements Listener {
       
       @EventHandler
       public void quebrar(BlockBreakEvent e) {
         Player p = e.getPlayer();
         if(!MissoesClass.coletouMinerador(p)) {
           MissoesClass.addBlocosMinerador(p, 1);
           p.sendMessage("" + MissoesClass.getMineradorBlocosQuebrados(p));
         }
       }

    }

     
    SQliteConnector.java
    Código (Forge Crash):

    package com.dreammissoes.dreamnetwork.dreammissoes.utils;

    import java.io.File;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    import com.dreammissoes.dreamnetwork.dreammissoes.Main;

    public class SQliteConnector {
       
       private static Connection con;
       
       public static void open() throws IOException, ClassNotFoundException, SQLException {
         File folder = new File(Main.getPlugin().getDataFolder().getAbsolutePath());
         if(!folder.exists()) {
           folder.mkdir();
         }
         File db = new File(folder, "quests.db");
         if(!db.exists()) {
           db.createNewFile();
         }
         String url = "jdbc:sqlite:" + db;
         Class.forName("org.sqlite.JDBC");
         con = DriverManager.getConnection(url);
         //minerador, assassino, construtor, lenhador
         //coletado
         commandNR("CREATE TABLE IF NOT EXISTS players (uuid VARCHAR(30) PRIMARY KEY, minerador INTEGER, mineradorcoletado INTEGER, assassino INTEGER, assassinocoletado INTEGER, construtor INTEGER, construtorcoletado INTEGER, lenhador INTEGER, lenhadorcoletado INTEGER);");
       }
       
       public static void close() throws SQLException {
         if(con != null) {
           con.close();
         }
       }
       
       public static void commandNR(String cmd) {
         if(con != null) {
           try {
             PreparedStatement stm = con.prepareStatement(cmd);
             stm.execute();
           } catch (SQLException e) {
             e.printStackTrace();
           }
         }
       }
       
       public static ResultSet commandR(String cmd) throws SQLException {
         Statement stm = con.createStatement();
         ResultSet r = stm.executeQuery(cmd);
         stm.close();
         return r;
       }
       
       public static Connection getConnection() {
         return con;
       }
       
    }

     
    Oq acontece é que o ResultSet ta sempre fechado, tipo SEM EU FECHAR E NEM USAR ELE.
    O plugin ta parado por causa disso e eu n quero usar .yml
     
  2. armelin1
    Offline

    armelin1 Moderador Sênior do Fórum Equipe GameMods Moderador do Fórum Veterano VIP Sabotador.com VIP Sabotador.com VIP Industrial

    Afiliado:
    5 Maio 2014
    Mensagens:
    1,904
    Sexo:
    Masculino
    Avaliações:
    +649 / -0
    Apelido no Minecraft:
    armelin1
    Isso fecha o ResultSet.
     
  3. WizardlyBump17
    Offline

    WizardlyBump17 Membro Ativo

    Afiliado:
    11 Março 2018
    Mensagens:
    758
    Sexo:
    Masculino
    Avaliações:
    +224 / -2
    Apelido no Minecraft:
    WizardlyBump17
    se eu tiro isso da o mesmo erro
     

Compartilhe esta Página