mirror of
https://github.com/amalthea-mc/ShopChest.git
synced 2024-11-22 10:22:29 +00:00
Disconnect from database when plugin disables
+ Reconnect to database on shop reload or server reload + A few debug messages were added on SQLExceptions
This commit is contained in:
parent
d99f63a8e5
commit
312e7c9dca
@ -346,6 +346,8 @@ public class ShopChest extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
database.disconnect();
|
||||
|
||||
if (fw != null && config.enable_debug_log) {
|
||||
try {
|
||||
fw.close();
|
||||
|
@ -3,7 +3,6 @@ package de.epiceric.shopchest.sql;
|
||||
import de.epiceric.shopchest.ShopChest;
|
||||
import de.epiceric.shopchest.shop.Shop;
|
||||
import de.epiceric.shopchest.shop.Shop.ShopType;
|
||||
import de.epiceric.shopchest.utils.ShopUtils;
|
||||
import de.epiceric.shopchest.utils.Utils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
@ -21,22 +20,24 @@ public abstract class Database {
|
||||
|
||||
public Database(ShopChest plugin) {
|
||||
this.plugin = plugin;
|
||||
initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Connection to the database
|
||||
* @return New connection to the database
|
||||
*/
|
||||
public abstract Connection getConnection();
|
||||
|
||||
/**
|
||||
* Initializes the database. <br>
|
||||
* (Re-)Connects to the the database and initializes it. <br>
|
||||
* Creates the table (if doesn't exist) and tests the connection
|
||||
*/
|
||||
private void initialize() {
|
||||
connection = getConnection();
|
||||
|
||||
public void connect() {
|
||||
try {
|
||||
disconnect();
|
||||
|
||||
plugin.debug("Connecting to database...");
|
||||
connection = getConnection();
|
||||
|
||||
String queryCreateTable = "CREATE TABLE IF NOT EXISTS shop_list (" +
|
||||
"`id` int(11) NOT NULL," +
|
||||
"`vendor` tinytext NOT NULL," +
|
||||
@ -64,10 +65,11 @@ public abstract class Database {
|
||||
}
|
||||
plugin.debug("Initialized database with " + count + " entries");
|
||||
|
||||
|
||||
close(ps, rs);
|
||||
|
||||
} catch (SQLException ex) {
|
||||
plugin.debug("Failed to connect to database");
|
||||
plugin.debug(ex);
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
@ -289,6 +291,22 @@ public abstract class Database {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the connection to the database
|
||||
*/
|
||||
public void disconnect() {
|
||||
try {
|
||||
if (connection != null) {
|
||||
plugin.debug("Disconnecting from database...");
|
||||
connection.close();
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
plugin.debug("Failed to disconnect from database");
|
||||
plugin.debug(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public enum ShopInfo {
|
||||
SHOP,
|
||||
VENDOR,
|
||||
|
@ -13,7 +13,6 @@ import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class ShopUtils {
|
||||
|
||||
@ -207,6 +206,8 @@ public class ShopUtils {
|
||||
public int reloadShops(boolean reloadConfig) {
|
||||
plugin.debug("Reloading shops...");
|
||||
|
||||
plugin.getShopDatabase().connect();
|
||||
|
||||
if (reloadConfig) plugin.getShopChestConfig().reload(false, true);
|
||||
|
||||
int highestId = plugin.getShopDatabase().getHighestID();
|
||||
|
Loading…
Reference in New Issue
Block a user