mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-02 18:33:42 +01:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			7.2.1
			...
			feature/co
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a5c1f1a74b | 
@@ -89,6 +89,8 @@ tasks.named<ShadowJar>("shadowJar") {
 | 
				
			|||||||
    relocate("net.jcip", "com.plotsquared.core.annotations.jcip")
 | 
					    relocate("net.jcip", "com.plotsquared.core.annotations.jcip")
 | 
				
			||||||
    relocate("edu.umd.cs.findbugs", "com.plotsquared.core.annotations.findbugs")
 | 
					    relocate("edu.umd.cs.findbugs", "com.plotsquared.core.annotations.findbugs")
 | 
				
			||||||
    relocate("com.intellectualsites.annotations", "com.plotsquared.core.annotations.informative")
 | 
					    relocate("com.intellectualsites.annotations", "com.plotsquared.core.annotations.informative")
 | 
				
			||||||
 | 
					    relocate("org.jdbi.v3", "com.plotsquared.core.jdbi")
 | 
				
			||||||
 | 
					    relocate("com.zaxxer.hikari", "com.plotsquared.core.hikari")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Get rid of all the libs which are 100% unused.
 | 
					    // Get rid of all the libs which are 100% unused.
 | 
				
			||||||
    minimize()
 | 
					    minimize()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -82,6 +82,8 @@ import com.plotsquared.core.inject.annotations.DefaultGenerator;
 | 
				
			|||||||
import com.plotsquared.core.inject.annotations.ImpromptuPipeline;
 | 
					import com.plotsquared.core.inject.annotations.ImpromptuPipeline;
 | 
				
			||||||
import com.plotsquared.core.inject.annotations.WorldConfig;
 | 
					import com.plotsquared.core.inject.annotations.WorldConfig;
 | 
				
			||||||
import com.plotsquared.core.inject.annotations.WorldFile;
 | 
					import com.plotsquared.core.inject.annotations.WorldFile;
 | 
				
			||||||
 | 
					import com.plotsquared.core.inject.modules.DatabaseModule;
 | 
				
			||||||
 | 
					import com.plotsquared.core.inject.modules.JdbiModule;
 | 
				
			||||||
import com.plotsquared.core.inject.modules.PlotSquaredModule;
 | 
					import com.plotsquared.core.inject.modules.PlotSquaredModule;
 | 
				
			||||||
import com.plotsquared.core.listener.PlotListener;
 | 
					import com.plotsquared.core.listener.PlotListener;
 | 
				
			||||||
import com.plotsquared.core.listener.WESubscriber;
 | 
					import com.plotsquared.core.listener.WESubscriber;
 | 
				
			||||||
@@ -140,6 +142,7 @@ import org.checkerframework.checker.nullness.qual.NonNull;
 | 
				
			|||||||
import org.checkerframework.checker.nullness.qual.Nullable;
 | 
					import org.checkerframework.checker.nullness.qual.Nullable;
 | 
				
			||||||
import org.incendo.serverlib.ServerLib;
 | 
					import org.incendo.serverlib.ServerLib;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.xml.crypto.Data;
 | 
				
			||||||
import java.io.File;
 | 
					import java.io.File;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.lang.reflect.Method;
 | 
					import java.lang.reflect.Method;
 | 
				
			||||||
@@ -292,7 +295,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
 | 
				
			|||||||
                        new WorldManagerModule(),
 | 
					                        new WorldManagerModule(),
 | 
				
			||||||
                        new PlotSquaredModule(),
 | 
					                        new PlotSquaredModule(),
 | 
				
			||||||
                        new BukkitModule(this),
 | 
					                        new BukkitModule(this),
 | 
				
			||||||
                        new BackupModule()
 | 
					                        new BackupModule(),
 | 
				
			||||||
 | 
					                        new JdbiModule(),
 | 
				
			||||||
 | 
					                        new DatabaseModule()
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
        this.injector.injectMembers(this);
 | 
					        this.injector.injectMembers(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,6 +37,11 @@ dependencies {
 | 
				
			|||||||
    // Logging
 | 
					    // Logging
 | 
				
			||||||
    compileOnlyApi(libs.log4j)
 | 
					    compileOnlyApi(libs.log4j)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Database
 | 
				
			||||||
 | 
					    api(libs.hikaricp)
 | 
				
			||||||
 | 
					    api(libs.jdbiCore)
 | 
				
			||||||
 | 
					    api(libs.jdbiGuice)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Other libraries
 | 
					    // Other libraries
 | 
				
			||||||
    api(libs.prtree)
 | 
					    api(libs.prtree)
 | 
				
			||||||
    api(libs.aopalliance)
 | 
					    api(libs.aopalliance)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,7 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
package com.plotsquared.core;
 | 
					package com.plotsquared.core;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.google.inject.Key;
 | 
				
			||||||
import com.plotsquared.core.configuration.ConfigurationSection;
 | 
					import com.plotsquared.core.configuration.ConfigurationSection;
 | 
				
			||||||
import com.plotsquared.core.configuration.ConfigurationUtil;
 | 
					import com.plotsquared.core.configuration.ConfigurationUtil;
 | 
				
			||||||
import com.plotsquared.core.configuration.MemorySection;
 | 
					import com.plotsquared.core.configuration.MemorySection;
 | 
				
			||||||
@@ -31,14 +32,12 @@ import com.plotsquared.core.configuration.caption.load.DefaultCaptionProvider;
 | 
				
			|||||||
import com.plotsquared.core.configuration.file.YamlConfiguration;
 | 
					import com.plotsquared.core.configuration.file.YamlConfiguration;
 | 
				
			||||||
import com.plotsquared.core.configuration.serialization.ConfigurationSerialization;
 | 
					import com.plotsquared.core.configuration.serialization.ConfigurationSerialization;
 | 
				
			||||||
import com.plotsquared.core.database.DBFunc;
 | 
					import com.plotsquared.core.database.DBFunc;
 | 
				
			||||||
import com.plotsquared.core.database.Database;
 | 
					 | 
				
			||||||
import com.plotsquared.core.database.MySQL;
 | 
					 | 
				
			||||||
import com.plotsquared.core.database.SQLManager;
 | 
					import com.plotsquared.core.database.SQLManager;
 | 
				
			||||||
import com.plotsquared.core.database.SQLite;
 | 
					 | 
				
			||||||
import com.plotsquared.core.generator.GeneratorWrapper;
 | 
					import com.plotsquared.core.generator.GeneratorWrapper;
 | 
				
			||||||
import com.plotsquared.core.generator.HybridPlotWorld;
 | 
					import com.plotsquared.core.generator.HybridPlotWorld;
 | 
				
			||||||
import com.plotsquared.core.generator.HybridUtils;
 | 
					import com.plotsquared.core.generator.HybridUtils;
 | 
				
			||||||
import com.plotsquared.core.generator.IndependentPlotGenerator;
 | 
					import com.plotsquared.core.generator.IndependentPlotGenerator;
 | 
				
			||||||
 | 
					import com.plotsquared.core.inject.annotations.PlotDatabase;
 | 
				
			||||||
import com.plotsquared.core.inject.factory.HybridPlotWorldFactory;
 | 
					import com.plotsquared.core.inject.factory.HybridPlotWorldFactory;
 | 
				
			||||||
import com.plotsquared.core.listener.PlotListener;
 | 
					import com.plotsquared.core.listener.PlotListener;
 | 
				
			||||||
import com.plotsquared.core.location.Location;
 | 
					import com.plotsquared.core.location.Location;
 | 
				
			||||||
@@ -75,7 +74,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
 | 
				
			|||||||
import org.checkerframework.checker.nullness.qual.NonNull;
 | 
					import org.checkerframework.checker.nullness.qual.NonNull;
 | 
				
			||||||
import org.checkerframework.checker.nullness.qual.Nullable;
 | 
					import org.checkerframework.checker.nullness.qual.Nullable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.sql.DataSource;
 | 
				
			||||||
import java.io.BufferedReader;
 | 
					import java.io.BufferedReader;
 | 
				
			||||||
 | 
					import java.io.Closeable;
 | 
				
			||||||
import java.io.File;
 | 
					import java.io.File;
 | 
				
			||||||
import java.io.FileInputStream;
 | 
					import java.io.FileInputStream;
 | 
				
			||||||
import java.io.FileOutputStream;
 | 
					import java.io.FileOutputStream;
 | 
				
			||||||
@@ -1236,8 +1237,11 @@ public class PlotSquared {
 | 
				
			|||||||
            DBFunc.validatePlots(plots);
 | 
					            DBFunc.validatePlots(plots);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Close the connection
 | 
					            // Close the connection
 | 
				
			||||||
            DBFunc.close();
 | 
					            final DataSource dataSource = platform().injector().getInstance(Key.get(DataSource.class, PlotDatabase.class));
 | 
				
			||||||
        } catch (NullPointerException throwable) {
 | 
					            if (dataSource instanceof Closeable closeable) {
 | 
				
			||||||
 | 
					                closeable.close();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } catch (IOException | NullPointerException throwable) {
 | 
				
			||||||
            LOGGER.error("Could not close database connection", throwable);
 | 
					            LOGGER.error("Could not close database connection", throwable);
 | 
				
			||||||
            throwable.printStackTrace();
 | 
					            throwable.printStackTrace();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -1289,26 +1293,7 @@ public class PlotSquared {
 | 
				
			|||||||
            if (DBFunc.dbManager != null) {
 | 
					            if (DBFunc.dbManager != null) {
 | 
				
			||||||
                DBFunc.dbManager.close();
 | 
					                DBFunc.dbManager.close();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            Database database;
 | 
					            DBFunc.dbManager = platform().injector().getInstance(SQLManager.class);
 | 
				
			||||||
            if (Storage.MySQL.USE) {
 | 
					 | 
				
			||||||
                database = new MySQL(Storage.MySQL.HOST, Storage.MySQL.PORT, Storage.MySQL.DATABASE,
 | 
					 | 
				
			||||||
                        Storage.MySQL.USER, Storage.MySQL.PASSWORD
 | 
					 | 
				
			||||||
                );
 | 
					 | 
				
			||||||
            } else if (Storage.SQLite.USE) {
 | 
					 | 
				
			||||||
                File file = FileUtils.getFile(platform.getDirectory(), Storage.SQLite.DB + ".db");
 | 
					 | 
				
			||||||
                database = new SQLite(file);
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                LOGGER.error("No storage type is set. Disabling PlotSquared");
 | 
					 | 
				
			||||||
                this.platform.shutdown(); //shutdown used instead of disable because no database is set
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            DBFunc.dbManager = new SQLManager(
 | 
					 | 
				
			||||||
                    database,
 | 
					 | 
				
			||||||
                    Storage.PREFIX,
 | 
					 | 
				
			||||||
                    this.eventDispatcher,
 | 
					 | 
				
			||||||
                    this.plotListener,
 | 
					 | 
				
			||||||
                    this.worldConfiguration
 | 
					 | 
				
			||||||
            );
 | 
					 | 
				
			||||||
            this.plots_tmp = DBFunc.getPlots();
 | 
					            this.plots_tmp = DBFunc.getPlots();
 | 
				
			||||||
            if (getPlotAreaManager() instanceof SinglePlotAreaManager) {
 | 
					            if (getPlotAreaManager() instanceof SinglePlotAreaManager) {
 | 
				
			||||||
                SinglePlotArea area = ((SinglePlotAreaManager) getPlotAreaManager()).getArea();
 | 
					                SinglePlotArea area = ((SinglePlotAreaManager) getPlotAreaManager()).getArea();
 | 
				
			||||||
@@ -1322,13 +1307,13 @@ public class PlotSquared {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            this.clustersTmp = DBFunc.getClusters();
 | 
					            this.clustersTmp = DBFunc.getClusters();
 | 
				
			||||||
            LOGGER.info("Connection to database established. Type: {}", Storage.MySQL.USE ? "MySQL" : "SQLite");
 | 
					            LOGGER.info("Connection to database established. Type: {}", Storage.MySQL.USE ? "MySQL" : "SQLite");
 | 
				
			||||||
        } catch (ClassNotFoundException | SQLException e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            LOGGER.error(
 | 
					            LOGGER.error(
 | 
				
			||||||
                    "Failed to open database connection ({}). Disabling PlotSquared",
 | 
					                    "Failed to open database connection ({}). Disabling PlotSquared",
 | 
				
			||||||
                    Storage.MySQL.USE ? "MySQL" : "SQLite"
 | 
					                    Storage.MySQL.USE ? "MySQL" : "SQLite"
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            LOGGER.error("==== Here is an ugly stacktrace, if you are interested in those things ===");
 | 
					            LOGGER.error("==== Here is an ugly stacktrace, if you are interested in those things ===");
 | 
				
			||||||
            e.printStackTrace();
 | 
					            LOGGER.error("", e);
 | 
				
			||||||
            LOGGER.error("==== End of stacktrace ====");
 | 
					            LOGGER.error("==== End of stacktrace ====");
 | 
				
			||||||
            LOGGER.error(
 | 
					            LOGGER.error(
 | 
				
			||||||
                    "Please go to the {} 'storage.yml' and configure the database correctly",
 | 
					                    "Please go to the {} 'storage.yml' and configure the database correctly",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,6 +29,7 @@ import java.sql.Statement;
 | 
				
			|||||||
 * @author -_Husky_-
 | 
					 * @author -_Husky_-
 | 
				
			||||||
 * @author tips48
 | 
					 * @author tips48
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Deprecated(forRemoval = true)
 | 
				
			||||||
public abstract class Database {
 | 
					public abstract class Database {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public abstract Connection forceConnection() throws SQLException, ClassNotFoundException;
 | 
					    public abstract Connection forceConnection() throws SQLException, ClassNotFoundException;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,6 +33,7 @@ import java.sql.Statement;
 | 
				
			|||||||
 * @author -_Husky_-
 | 
					 * @author -_Husky_-
 | 
				
			||||||
 * @author tips48
 | 
					 * @author tips48
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Deprecated(forRemoval = true)
 | 
				
			||||||
public class MySQL extends Database {
 | 
					public class MySQL extends Database {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final String user;
 | 
					    private final String user;
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -33,6 +33,7 @@ import java.sql.Statement;
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * Connects to and uses a SQLite database.
 | 
					 * Connects to and uses a SQLite database.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Deprecated(forRemoval = true)
 | 
				
			||||||
public class SQLite extends Database {
 | 
					public class SQLite extends Database {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + SQLite.class.getSimpleName());
 | 
					    private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + SQLite.class.getSimpleName());
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					package com.plotsquared.core.inject.annotations;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.lang.annotation.ElementType;
 | 
				
			||||||
 | 
					import java.lang.annotation.Retention;
 | 
				
			||||||
 | 
					import java.lang.annotation.RetentionPolicy;
 | 
				
			||||||
 | 
					import java.lang.annotation.Target;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Target({ElementType.FIELD, ElementType.TYPE, ElementType.PARAMETER})
 | 
				
			||||||
 | 
					@Retention(RetentionPolicy.RUNTIME)
 | 
				
			||||||
 | 
					public @interface PlotDatabase {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					package com.plotsquared.core.inject.modules;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.google.inject.AbstractModule;
 | 
				
			||||||
 | 
					import com.plotsquared.core.PlotSquared;
 | 
				
			||||||
 | 
					import com.plotsquared.core.configuration.Storage;
 | 
				
			||||||
 | 
					import com.plotsquared.core.inject.annotations.PlotDatabase;
 | 
				
			||||||
 | 
					import com.plotsquared.core.util.FileUtils;
 | 
				
			||||||
 | 
					import com.plotsquared.core.util.StringMan;
 | 
				
			||||||
 | 
					import com.zaxxer.hikari.HikariConfig;
 | 
				
			||||||
 | 
					import com.zaxxer.hikari.HikariDataSource;
 | 
				
			||||||
 | 
					import org.apache.logging.log4j.LogManager;
 | 
				
			||||||
 | 
					import org.apache.logging.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.sql.DataSource;
 | 
				
			||||||
 | 
					import java.io.File;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class DatabaseModule extends AbstractModule {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + PlotSquared.class.getSimpleName());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    protected void configure() {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            if (Storage.MySQL.USE) {
 | 
				
			||||||
 | 
					                this.configureMySQL();
 | 
				
			||||||
 | 
					            } else if (Storage.SQLite.USE) {
 | 
				
			||||||
 | 
					                this.configureSQLite();
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                LOGGER.error("No storage type is set. Disabling PlotSquared");
 | 
				
			||||||
 | 
					                PlotSquared.platform().shutdown();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } catch (final Exception e) {
 | 
				
			||||||
 | 
					            LOGGER.error("Unable to initialize database", e);
 | 
				
			||||||
 | 
					            PlotSquared.platform().shutdown();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void configureSQLite() throws Exception {
 | 
				
			||||||
 | 
					        final File file = FileUtils.getFile(PlotSquared.platform().getDirectory(), Storage.SQLite.DB + ".db");
 | 
				
			||||||
 | 
					        if (!file.exists()) {
 | 
				
			||||||
 | 
					            file.createNewFile();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        Class.forName("org.sqlite.JDBC");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        final HikariConfig config = new HikariConfig();
 | 
				
			||||||
 | 
					        config.setJdbcUrl("jdbc:sqlite:" + file);
 | 
				
			||||||
 | 
					        config.setDriverClassName("org.sqlite.JDBC");
 | 
				
			||||||
 | 
					        final DataSource dataSource = new HikariDataSource();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        binder().bind(DataSource.class).annotatedWith(PlotDatabase.class).toInstance(dataSource);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private void configureMySQL() {
 | 
				
			||||||
 | 
					        final HikariConfig hikariConfig = new HikariConfig();
 | 
				
			||||||
 | 
					        hikariConfig.setJdbcUrl(
 | 
				
			||||||
 | 
					                String.format(
 | 
				
			||||||
 | 
					                        "jdbc:mysql://%s:%s/%s?%s",
 | 
				
			||||||
 | 
					                        Storage.MySQL.HOST,
 | 
				
			||||||
 | 
					                        Storage.MySQL.PORT,
 | 
				
			||||||
 | 
					                        Storage.MySQL.DATABASE,
 | 
				
			||||||
 | 
					                        StringMan.join(Storage.MySQL.PROPERTIES, "&")
 | 
				
			||||||
 | 
					                ));
 | 
				
			||||||
 | 
					        hikariConfig.setUsername(Storage.MySQL.USER);
 | 
				
			||||||
 | 
					        hikariConfig.setPassword(Storage.MySQL.PASSWORD);
 | 
				
			||||||
 | 
					        hikariConfig.addDataSourceProperty("cachePrepStmts", "true");
 | 
				
			||||||
 | 
					        hikariConfig.addDataSourceProperty("prepStmtCacheSize", "512");
 | 
				
			||||||
 | 
					        hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
 | 
				
			||||||
 | 
					        final DataSource dataSource = new HikariDataSource(hikariConfig);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        binder().bind(DataSource.class).annotatedWith(PlotDatabase.class).toInstance(dataSource);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					package com.plotsquared.core.inject.modules;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.plotsquared.core.inject.annotations.PlotDatabase;
 | 
				
			||||||
 | 
					import org.jdbi.v3.guice.AbstractJdbiDefinitionModule;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class JdbiModule extends AbstractJdbiDefinitionModule {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public JdbiModule() {
 | 
				
			||||||
 | 
					        super(PlotDatabase.class);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public void configureJdbi() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -19,6 +19,10 @@ luckperms = "5.4"
 | 
				
			|||||||
essentialsx = "2.20.1"
 | 
					essentialsx = "2.20.1"
 | 
				
			||||||
mvdwapi = "3.1.1"
 | 
					mvdwapi = "3.1.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Datebase
 | 
				
			||||||
 | 
					hikaricp = "5.0.1"
 | 
				
			||||||
 | 
					jdbi = "3.41.3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Third party
 | 
					# Third party
 | 
				
			||||||
prtree = "2.0.1"
 | 
					prtree = "2.0.1"
 | 
				
			||||||
aopalliance = "1.0"
 | 
					aopalliance = "1.0"
 | 
				
			||||||
@@ -63,6 +67,11 @@ essentialsx = { group = "net.essentialsx", name = "EssentialsX", version.ref = "
 | 
				
			|||||||
faweCore = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Core", version.ref = "fawe" }
 | 
					faweCore = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Core", version.ref = "fawe" }
 | 
				
			||||||
faweBukkit = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Bukkit", version.ref = "fawe" }
 | 
					faweBukkit = { group = "com.fastasyncworldedit", name = "FastAsyncWorldEdit-Bukkit", version.ref = "fawe" }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Database
 | 
				
			||||||
 | 
					hikaricp = { group = "com.zaxxer", name = "HikariCP", version.ref = "hikaricp" }
 | 
				
			||||||
 | 
					jdbiCore = { group = "org.jdbi", name = "jdbi3-core", version.ref = "jdbi" }
 | 
				
			||||||
 | 
					jdbiGuice = { group = "org.jdbi", name = "jdbi3-guice", version.ref = "jdbi" }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Third party
 | 
					# Third party
 | 
				
			||||||
prtree = { group = "com.intellectualsites.prtree", name = "PRTree", version.ref = "prtree" }
 | 
					prtree = { group = "com.intellectualsites.prtree", name = "PRTree", version.ref = "prtree" }
 | 
				
			||||||
aopalliance = { group = "aopalliance", name = "aopalliance", version.ref = "aopalliance" }
 | 
					aopalliance = { group = "aopalliance", name = "aopalliance", version.ref = "aopalliance" }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user