1package dev.keii.goldenage.utils;
2
3import dev.keii.goldenage.GoldenAge;
4import lombok.Getter;
5import lombok.Setter;
6import org.bukkit.Bukkit;
7
8import java.sql.Connection;
9import java.sql.DriverManager;
10import java.sql.SQLException;
11
12public class DatabaseUtility {
13 @Getter @Setter
14 private String databaseUrl;
15
16 @Getter
17 private Connection connection;
18
19 private GoldenAge plugin;
20
21 public DatabaseUtility(GoldenAge plugin, String databaseUrl) {
22 setDatabaseUrl(databaseUrl);
23 this.plugin = plugin;
24 }
25
26 public void openConnection() {
27 try {
28 Class.forName("org.sqlite.JDBC");
29 this.connection = DriverManager.getConnection(this.databaseUrl);
30 this.connection.setAutoCommit(false);
31 } catch (SQLException e) {
32 GoldenAge.getLogger().severe("Failed to open sqlite database connection!");
33 GoldenAge.getLogger().severe(e.getMessage());
34 Bukkit.getPluginManager().disablePlugin(plugin);
35 } catch (ClassNotFoundException e) {
36 GoldenAge.getLogger().severe("Could not find org.sqlite.JDBC");
37 GoldenAge.getLogger().severe(e.getMessage());
38 }
39 }
40
41 public void closeConnection() {
42 try {
43 this.connection.close();
44 } catch (SQLException e) {
45 GoldenAge.getLogger().severe("Failed to close sqlite database connection!");
46 GoldenAge.getLogger().severe(e.getMessage());
47 Bukkit.getPluginManager().disablePlugin(plugin);
48 return;
49 }
50 }
51}