diff --git a/build.gradle b/build.gradle index 504c461d..f5ef925f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ import org.apache.tools.ant.filters.ReplaceTokens plugins { - id 'com.gradleup.shadow' version '8.3.0' + id 'com.gradleup.shadow' version '8.3.2' id 'org.cadixdev.licenser' version '0.6.1' apply false id 'fabric-loom' version '1.7-SNAPSHOT' apply false id 'org.ajoberstar.grgit' version '5.2.2' diff --git a/bukkit/build.gradle b/bukkit/build.gradle index 35abe6ec..252e257b 100644 --- a/bukkit/build.gradle +++ b/bukkit/build.gradle @@ -5,7 +5,7 @@ dependencies { implementation 'net.william278:mpdbdataconverter:1.0.1' implementation 'net.william278:hsldataconverter:1.0' implementation 'net.william278:mapdataapi:1.0.3' - implementation 'org.bstats:bstats-bukkit:3.0.3' + implementation 'org.bstats:bstats-bukkit:3.1.0' implementation 'net.kyori:adventure-platform-bukkit:4.3.4' implementation 'dev.triumphteam:triumph-gui:3.1.10' implementation 'space.arim.morepaperlib:morepaperlib:0.4.4' @@ -15,7 +15,7 @@ dependencies { compileOnly 'com.github.retrooper.packetevents:spigot:2.3.0' compileOnly 'com.comphenix.protocol:ProtocolLib:5.1.0' compileOnly 'org.projectlombok:lombok:1.18.34' - compileOnly 'commons-io:commons-io:2.16.1' + compileOnly 'commons-io:commons-io:2.17.0' compileOnly 'org.json:json:20240303' compileOnly 'net.william278:minedown:1.8.2' compileOnly 'de.exlll:configlib-yaml:4.5.0' diff --git a/common/build.gradle b/common/build.gradle index bc77140c..024cc019 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -3,7 +3,7 @@ plugins { } dependencies { - api 'commons-io:commons-io:2.16.1' + api 'commons-io:commons-io:2.17.0' api 'org.apache.commons:commons-text:1.12.0' api 'net.william278:minedown:1.8.2' api 'org.json:json:20240303' diff --git a/common/src/main/java/net/william278/husksync/config/Settings.java b/common/src/main/java/net/william278/husksync/config/Settings.java index abff03a3..ad414149 100644 --- a/common/src/main/java/net/william278/husksync/config/Settings.java +++ b/common/src/main/java/net/william278/husksync/config/Settings.java @@ -141,6 +141,9 @@ public class Settings { @Getter(AccessLevel.NONE) private Map tableNames = Database.TableName.getDefaults(); + @Comment("Whether to run the creation SQL on the database when the server starts. Don't modify this unless you know what you're doing!") + private boolean createTables = true; + @NotNull public String getTableName(@NotNull Database.TableName tableName) { return tableNames.getOrDefault(tableName.name().toLowerCase(Locale.ENGLISH), tableName.getDefaultName()); diff --git a/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java b/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java index 1208d493..0f4c248b 100644 --- a/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java +++ b/common/src/main/java/net/william278/husksync/database/MongoDbDatabase.java @@ -64,6 +64,10 @@ public class MongoDbDatabase extends Database { ConnectionString URI = createConnectionURI(credentials); mongoConnectionHandler = new MongoConnectionHandler(URI, credentials.getDatabase()); mongoCollectionHelper = new MongoCollectionHelper(mongoConnectionHandler); + + // Check config for if tables should be created + if (!plugin.getSettings().getDatabase().isCreateTables()) return; + if (mongoCollectionHelper.getCollection(usersTable) == null) { mongoCollectionHelper.createCollection(usersTable); } diff --git a/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java b/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java index 249e3989..3637b0b0 100644 --- a/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java +++ b/common/src/main/java/net/william278/husksync/database/MySqlDatabase.java @@ -115,6 +115,9 @@ public class MySqlDatabase extends Database { ); dataSource.setDataSourceProperties(properties); + // Check config for if tables should be created + if (!plugin.getSettings().getDatabase().isCreateTables()) return; + // Prepare database schema; make tables if they don't exist try (Connection connection = dataSource.getConnection()) { final String[] databaseSchema = getSchemaStatements(String.format("database/%s_schema.sql", flavor)); diff --git a/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java b/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java index d9522a56..3293d138 100644 --- a/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java +++ b/common/src/main/java/net/william278/husksync/database/PostgresDatabase.java @@ -108,6 +108,9 @@ public class PostgresDatabase extends Database { ); dataSource.setDataSourceProperties(properties); + // Check config for if tables should be created + if (!plugin.getSettings().getDatabase().isCreateTables()) return; + // Prepare database schema; make tables if they don't exist try (Connection connection = dataSource.getConnection()) { final String[] databaseSchema = getSchemaStatements(String.format("database/%s_schema.sql", flavor));