Skip to content

Commit

Permalink
Fixed issue with insert player into database
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacxk committed Mar 26, 2020
1 parent 5afb3c3 commit 3f3f4e9
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions src/main/java/me/jackint0sh/timedfly/database/SQL.java
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,10 @@ public void createTable(Callback<Boolean> callback) {
@Override
public void select(String key, String whereKey, Object whereValue, Callback<Map<String, Object>> callback) {
PluginTask.runAsync(() -> queue.add(connection -> {
if (isNotConnected(callback)) return;
if (isNotConnected(callback)) {
PluginTask.run(() -> callback.handle(new Exception("Database not connected!"), null));
return;
}

String sql = "SELECT " + key + " FROM " + table;
if (whereKey != null || whereValue != null) sql += " WHERE " + whereKey + " = ?;";
Expand Down Expand Up @@ -122,7 +125,10 @@ public void select(String key, String whereKey, Object whereValue, Callback<Map<
@Override
public void insert(String[] keys, Object[] values, Callback<Object> callback) {
PluginTask.runAsync(() -> queue.add(connection -> {
if (isNotConnected(callback)) return;
if (isNotConnected(callback)) {
PluginTask.run(() -> callback.handle(new Exception("Database not connected!"), null));
return;
}

if (keys.length != values.length) {
Bukkit.getScheduler().runTask(plugin, () -> {
Expand All @@ -141,8 +147,11 @@ public void insert(String[] keys, Object[] values, Callback<Object> callback) {
PreparedStatement statement = null;
try {
statement = connection.prepareStatement(sql);
for (int i = 0; i < keys.length; i++) this.set(values[i], i + 1, statement);
this.set(values[0], values.length + 1, statement);

for (int i = 0; i < keys.length; i++) {
this.set(values[i], i + 1, statement);
}

boolean execute = statement.execute();
PluginTask.run(() -> callback.handle(null, execute));
} catch (SQLException e) {
Expand All @@ -160,7 +169,10 @@ public void insert(String[] keys, Object[] values, Callback<Object> callback) {
@Override
public void update(String[] keys, Object[] values, String whereKey, Object whereValue, Callback<Object> callback) {
PluginTask.runAsync(() -> queue.add(connection -> {
if (isNotConnected(callback)) return;
if (isNotConnected(callback)) {
PluginTask.run(() -> callback.handle(new Exception("Database not connected!"), null));
return;
}

if (keys.length != values.length) {
PluginTask.run(() -> callback.handle(new Exception("Mismatch on keys and values length."), null));
Expand Down

0 comments on commit 3f3f4e9

Please sign in to comment.