diff --git a/EpicAnchors-Plugin/pom.xml b/EpicAnchors-Plugin/pom.xml
index 1d44dfc..e7c07dd 100644
--- a/EpicAnchors-Plugin/pom.xml
+++ b/EpicAnchors-Plugin/pom.xml
@@ -56,6 +56,7 @@
false
**/nms/v*/**
+ **/core/third_party/org/h2/**
diff --git a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/AnchorManagerImpl.java b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/AnchorManagerImpl.java
index 3e22153..6f8b54e 100644
--- a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/AnchorManagerImpl.java
+++ b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/AnchorManagerImpl.java
@@ -66,7 +66,7 @@ public class AnchorManagerImpl implements AnchorManager {
protected void saveAll() {
for (Set anchorSet : this.anchors.values()) {
Collection asData = new ArrayList<>(anchorSet.size());
- this.dataManager.saveBatch(asData);
+ this.dataManager.saveBatchSync(asData);
}
}
@@ -121,7 +121,7 @@ public class AnchorManagerImpl implements AnchorManager {
if (tmpAnchors != null) {
Collection asData = new ArrayList<>(tmpAnchors.size());
- this.dataManager.saveBatch(asData);
+ this.dataManager.saveBatchSync(asData);
for (Anchor anchor : tmpAnchors) {
((AnchorImpl) anchor).deInit(this.plugin);
@@ -236,7 +236,7 @@ public class AnchorManagerImpl implements AnchorManager {
}
Anchor anchor = new AnchorImpl(dataManager.getNextId("anchors"), owner, loc, ticks);
- this.dataManager.save(anchor);
+ this.dataManager.saveSync(anchor);
Bukkit.getScheduler().runTask(this.plugin, () -> { //TODO: Do we need to run this sync, or we are already on the main thread?
Block block = loc.getBlock();
block.setType(Settings.MATERIAL.getMaterial().parseMaterial());
@@ -290,7 +290,7 @@ public class AnchorManagerImpl implements AnchorManager {
anchor.getLocation().add(.5, .5, .5), 100, .5, .5, .5);
((AnchorImpl) anchor).deInit(this.plugin);
- this.dataManager.delete(anchor);
+ this.dataManager.deleteSync(anchor);
}
/* Anchor access */
diff --git a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/EpicAnchors.java b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/EpicAnchors.java
index 265cf5c..c2c6bf7 100644
--- a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/EpicAnchors.java
+++ b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/EpicAnchors.java
@@ -4,8 +4,6 @@ import com.craftaro.core.SongodaCore;
import com.craftaro.core.SongodaPlugin;
import com.craftaro.core.commands.CommandManager;
import com.craftaro.core.configuration.Config;
-import com.craftaro.core.database.DatabaseConnector;
-import com.craftaro.core.database.SQLiteConnector;
import com.craftaro.core.gui.GuiManager;
import com.craftaro.core.hooks.EconomyManager;
import com.craftaro.core.hooks.HologramManager;
@@ -16,9 +14,8 @@ import com.craftaro.epicanchors.commands.sub.GiveCommand;
import com.craftaro.epicanchors.commands.sub.ReloadCommand;
import com.craftaro.epicanchors.commands.sub.SettingsCommand;
import com.craftaro.epicanchors.commands.sub.ShowCommand;
-import com.craftaro.epicanchors.files.DataManager;
import com.craftaro.epicanchors.files.Settings;
-import com.craftaro.epicanchors.files.migration.AnchorMigration;
+import com.craftaro.epicanchors.files.migration._2_AnchorMigration;
import com.craftaro.epicanchors.files.migration._1_InitialMigration;
import com.craftaro.epicanchors.listener.AnchorListener;
import com.craftaro.epicanchors.listener.BlockListener;
@@ -47,15 +44,7 @@ public final class EpicAnchors extends SongodaPlugin {
public void onPluginEnable() {
SongodaCore.registerPlugin(this, 31, XMaterial.END_PORTAL_FRAME);
- // Initialize database
-// this.getLogger().info("Initializing SQLite...");
-// DatabaseConnector dbCon = new SQLiteConnector(this);
-// this.dataManager = new DataManager(dbCon, this);
-// AnchorMigration anchorMigration = new AnchorMigration(dbCon, this.dataManager, new _1_InitialMigration());
-// anchorMigration.runMigrations();
-// anchorMigration.migrateLegacyData(this);
-
- initDatabase(Arrays.asList(new _1_InitialMigration(), new AnchorMigration()));
+ initDatabase(Arrays.asList(new _1_InitialMigration(), new _2_AnchorMigration()));
this.anchorManager = new AnchorManagerImpl(this, this.dataManager);
EpicAnchorsApi.initApi(this.anchorManager);
diff --git a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/DataManager.java b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/DataManager.java
deleted file mode 100644
index 8e196e3..0000000
--- a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/DataManager.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.craftaro.epicanchors.files;
-
-import com.craftaro.core.database.DatabaseConnector;
-import com.craftaro.epicanchors.AnchorImpl;
-import com.craftaro.epicanchors.api.Anchor;
-import com.craftaro.epicanchors.files.migration.AnchorMigration;
-import com.craftaro.epicanchors.utils.Callback;
-import com.craftaro.epicanchors.utils.UpdateCallback;
-import com.craftaro.epicanchors.utils.Utils;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.plugin.Plugin;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Objects;
-import java.util.UUID;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-public class DataManager {
-
-
-
-// public void updateAnchors(Collection anchors, UpdateCallback callback) {
-// this.databaseConnector.connect((con) -> {
-// con.setAutoCommit(false);
-//
-// SQLException err = null;
-//
-// for (Anchor anchor : anchors) {
-// try (PreparedStatement ps = con.prepareStatement("UPDATE " + this.anchorTable +
-// " SET ticks_left =? WHERE id =?;")) {
-// ps.setInt(1, anchor.getTicksLeft());
-// ps.setInt(2, anchor.getDbId());
-//
-// ps.executeUpdate();
-// } catch (SQLException ex) {
-// err = ex;
-// break;
-// }
-// }
-//
-// if (err == null) {
-// con.commit();
-//
-// resolveUpdateCallback(callback, null);
-// } else {
-// con.rollback();
-//
-// resolveUpdateCallback(callback, err);
-// }
-//
-// con.setAutoCommit(true);
-// });
-// }
-//
-// public void deleteAnchorAsync(Anchor anchor) {
-// deleteAnchorAsync(anchor, null);
-// }
-//
-// public void deleteAnchorAsync(Anchor anchor, UpdateCallback callback) {
-// this.thread.execute(() ->
-// this.databaseConnector.connect((con) -> {
-// try (PreparedStatement ps = con.prepareStatement("DELETE FROM " + this.anchorTable +
-// " WHERE id =?;")) {
-// ps.setInt(1, anchor.getDbId());
-//
-// ps.executeUpdate();
-//
-// resolveUpdateCallback(callback, null);
-// } catch (Exception ex) {
-// resolveUpdateCallback(callback, ex);
-// }
-// })
-// );
-// }
-//
-// public static String getTableName(String prefix, String name) {
-// String result = prefix + name;
-//
-// if (!result.matches("[a-z0-9_]+")) {
-// throw new IllegalStateException("The generated table name '" + result + "' contains invalid characters");
-// }
-//
-// return result;
-// }
-}
diff --git a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/_1_InitialMigration.java b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/_1_InitialMigration.java
index 250e5fb..3baca8d 100644
--- a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/_1_InitialMigration.java
+++ b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/_1_InitialMigration.java
@@ -1,7 +1,6 @@
package com.craftaro.epicanchors.files.migration;
import com.craftaro.core.database.DataMigration;
-import com.craftaro.epicanchors.EpicAnchors;
import java.sql.Connection;
import java.sql.SQLException;
@@ -15,15 +14,14 @@ public class _1_InitialMigration extends DataMigration {
@Override
public void migrate(Connection connection, String tablePrefix) throws SQLException {
try (Statement statement = connection.createStatement()) {
- statement.execute("CREATE TABLE " + EpicAnchors.getPlugin(EpicAnchors.class).getDataManager().getTablePrefix() + "anchors (" +
- "id INTEGER NOT NULL," +
+ statement.execute("CREATE TABLE " + tablePrefix + "anchors (" +
+ "id INTEGER NOT NULL PRIMARY KEY auto_increment," +
"world_name TEXT NOT NULL," +
"x INTEGER NOT NULL," +
"y INTEGER NOT NULL," +
"z INTEGER NOT NULL," +
"ticks_left INTEGER NOT NULL," +
- "owner VARCHAR(36)," +
- "PRIMARY KEY(id AUTOINCREMENT)" +
+ "owner VARCHAR(36)" +
");");
}
}
diff --git a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/AnchorMigration.java b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/_2_AnchorMigration.java
similarity index 98%
rename from EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/AnchorMigration.java
rename to EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/_2_AnchorMigration.java
index 4d50db1..3b262ae 100644
--- a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/AnchorMigration.java
+++ b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/files/migration/_2_AnchorMigration.java
@@ -18,8 +18,8 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Level;
-public class AnchorMigration extends DataMigration {
- public AnchorMigration() {
+public class _2_AnchorMigration extends DataMigration {
+ public _2_AnchorMigration() {
super(2);
}
diff --git a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/utils/DataHelper.java b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/utils/DataHelper.java
index d95eb5b..f718e38 100644
--- a/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/utils/DataHelper.java
+++ b/EpicAnchors-Plugin/src/main/java/com/craftaro/epicanchors/utils/DataHelper.java
@@ -1,8 +1,6 @@
package com.craftaro.epicanchors.utils;
-import com.craftaro.core.database.Data;
import com.craftaro.core.database.DataManager;
-import com.craftaro.core.third_party.org.jooq.Queries;
import com.craftaro.core.third_party.org.jooq.Query;
import com.craftaro.core.third_party.org.jooq.Record1;
import com.craftaro.core.third_party.org.jooq.Result;
@@ -10,17 +8,13 @@ import com.craftaro.core.third_party.org.jooq.impl.DSL;
import com.craftaro.epicanchors.AnchorImpl;
import com.craftaro.epicanchors.EpicAnchors;
import com.craftaro.epicanchors.api.Anchor;
-import com.craftaro.epicanchors.files.migration.AnchorMigration;
+import com.craftaro.epicanchors.files.migration._2_AnchorMigration;
import org.bukkit.World;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
import java.util.List;
public class DataHelper {
@@ -68,7 +62,7 @@ public class DataHelper {
}
- public static void migrateAnchor(List anchorQueue, UpdateCallback callback) {
+ public static void migrateAnchor(List<_2_AnchorMigration.LegacyAnchorEntry> anchorQueue, UpdateCallback callback) {
DataManager dataManager = EpicAnchors.getPlugin(EpicAnchors.class).getDataManager();
//recreate it with Jooq
@@ -77,7 +71,7 @@ public class DataHelper {
connection.setAutoCommit(false);
try {
List queries = new ArrayList<>();
- for (AnchorMigration.LegacyAnchorEntry entry : anchorQueue) {
+ for (_2_AnchorMigration.LegacyAnchorEntry entry : anchorQueue) {
queries.add(dslContext.insertInto(DSL.table(dataManager.getTablePrefix() + "anchors"))
.columns(
DSL.field("world_name"),