コード例 #1
0
  @Override
  public RegionDatabase load(UUID uuid) {
    HashMap<UUID, ProtectedChunkRegion> protectedChunks = new HashMap<>();
    PreparedStatement preparedStatement =
        baseSqliteConnection.createPreparedStatement(
            "SELECT COUNT(REGION_DATA) AS _SIZE_ FROM UPRO_%w_REGIONS"
                .replace("%w", uuid.toString().replace("-", "")));

    try {
      int size = preparedStatement.executeQuery().getInt("_SIZE_");
      preparedStatement =
          baseSqliteConnection.createPreparedStatement(
              "SELECT REGION_DATA FROM UPRO_%w_REGIONS"
                  .replace("%w", uuid.toString().replace("-", "")));
      ResultSet regions = preparedStatement.executeQuery();

      int i = 0;
      while (i < size) {
        ProtectedChunkRegion protectedChunkRegion =
            ProtectedChunkRegion.deserialize(regions.getString(1));
        protectedChunks.put(protectedChunkRegion.getUUID(), protectedChunkRegion);
        i++;
        regions.next();
      }
      preparedStatement.close();

    } catch (SQLException e) {
      e.printStackTrace();
    }

    return new RegionDatabase(protectedChunks);
  }
コード例 #2
0
  @Override
  public void save(ProtectedChunkRegion protectedChunkRegion) {
    PreparedStatement var1;
    Iterator<ProtectedChunk> var2 = protectedChunkRegion.getProtectedChunks().iterator();
    ProtectedChunk var3;
    UUID currentUUID;

    while (var2.hasNext()) {
      try {
        var1 =
            baseSqliteConnection.createPreparedStatement(
                baseSqliteConnection.insertRegionIndex.replace(
                    "%w", protectedChunkRegion.getWorld().getUID().toString().replace("-", "")));

        var3 = var2.next();

        currentUUID = protectedChunkRegion.getUUID();
        var1.setString(1, protectedChunkRegion.getId());
        var1.setInt(2, var3.getX());
        var1.setInt(3, var3.getZ());
        var1.setString(
            4,
            String.format(
                "%s:%s",
                String.valueOf(currentUUID.getMostSignificantBits()),
                String.valueOf(currentUUID.getLeastSignificantBits())));
        var1.executeUpdate();
        var1.close();

        var1 =
            baseSqliteConnection.createPreparedStatement(
                baseSqliteConnection.insertRegion.replace(
                    "%w", protectedChunkRegion.getWorld().getUID().toString().replace("-", "")));
        var1.setString(
            1,
            String.format(
                "%s:%s",
                String.valueOf(currentUUID.getMostSignificantBits()),
                String.valueOf(currentUUID.getLeastSignificantBits())));
        var1.setString(2, protectedChunkRegion.serialize());
        var1.executeUpdate();
        var1.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
コード例 #3
0
 @Override
 public void removeRegion(World world, String s) {
   PreparedStatement preparedStatement =
       baseSqliteConnection.createPreparedStatement(
           baseSqliteConnection.selectRegionIndexByID.replace(
               "%w", world.getUID().toString().replace("-", "")));
   try {
     preparedStatement.setString(1, s);
     UUID uuid = UUID.fromString(preparedStatement.executeQuery().getString("R_UUID")); // Get UUID
     preparedStatement.close();
     // Remove from chunk index
     preparedStatement =
         baseSqliteConnection.createPreparedStatement(
             baseSqliteConnection.removeRegionIndexByUUID.replace(
                 "%w", world.getUID().toString().replace("-", "")));
     preparedStatement.setString(
         1,
         String.format(
             "%s:%s",
             String.valueOf(uuid.getMostSignificantBits()),
             String.valueOf(uuid.getLeastSignificantBits())));
     preparedStatement.execute(); // REMOVE INDEXES
     preparedStatement.close();
     // Remove from data table
     preparedStatement =
         baseSqliteConnection.createPreparedStatement(
             baseSqliteConnection.removeRegion.replace(
                 "%w", world.getUID().toString().replace("-", "")));
     preparedStatement.setString(
         1,
         String.format(
             "%s:%s",
             String.valueOf(uuid.getMostSignificantBits()),
             String.valueOf(uuid.getLeastSignificantBits())));
     preparedStatement.execute(); // REMOVE REGION
     preparedStatement.close();
   } catch (SQLException e) {
     e.printStackTrace();
   }
 }
コード例 #4
0
  @Override
  public void removeRegion(World world, UUID uuid) {
    PreparedStatement preparedStatement =
        baseSqliteConnection.createPreparedStatement(
            baseSqliteConnection.removeRegionIndexByUUID.replace(
                "%w", uuid.toString().replace("-", "")));
    try {
      preparedStatement.setString(1, uuid.toString().replace("-", ""));
      preparedStatement.execute(); // REMOVE INDEXES
      preparedStatement.close();

      preparedStatement =
          baseSqliteConnection.createPreparedStatement(
              baseSqliteConnection.removeRegion.replace(
                  "%w", world.getUID().toString().replace("-", "")));
      preparedStatement.setString(1, uuid.toString().replace("-", ""));
      preparedStatement.execute(); // REMOVE REGION
      preparedStatement.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
コード例 #5
0
 @Override
 public boolean isWorldNew(World world) {
   try {
     Statement statement = baseSqliteConnection.createStatement();
     boolean newWorld =
         statement
                 .executeQuery(
                     baseSqliteConnection.existsWorld.replace(
                         "%w", world.getUID().toString().replace("-", "")))
                 .getInt("_RESULT_")
             <= 0;
     statement.close();
     return newWorld;
   } catch (SQLException e) {
     e.printStackTrace();
   }
   return true;
 }