package uk.codingbadgers.bnpcstore.database; import java.io.File; import java.util.logging.Level; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.java.JavaPlugin; import uk.codingbadgers.bFundamentals.bFundamentals; import uk.codingbadgers.bnpcstore.bNpcStore; import uk.thecodingbadgers.bDatabaseManager.Database.BukkitDatabase; import uk.thecodingbadgers.bDatabaseManager.DatabaseTable.DatabaseTable; import uk.thecodingbadgers.bDatabaseManager.bDatabaseManager; import uk.thecodingbadgers.bDatabaseManager.bDatabaseManager.DatabaseType; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author N3wton */ public class DatabaseManager { BukkitDatabase databaseStoreNPC; private DatabaseTable npcTable; private class LoginDetails { public String databaseName; public String host; public String user; public String password; public int port; } private LoginDetails loginDetails; public DatabaseManager(JavaPlugin plugin) { loadConfig(); databaseStoreNPC = bDatabaseManager.createDatabase(loginDetails.databaseName, plugin, DatabaseType.SQL); if (databaseStoreNPC == null || !databaseStoreNPC.login(loginDetails.host, loginDetails.user, loginDetails.password, loginDetails.port)) { bFundamentals.log(Level.SEVERE, "Failed to setup store npc database!"); return; } npcTable = databaseStoreNPC.createTable("bNpcStore-Npcs", NPCData.class); if (npcTable == null) { bFundamentals.log(Level.SEVERE, "Failed to setup npcs table!"); return; } } private void loadConfig() { this.loginDetails = new LoginDetails(); bNpcStore module = bNpcStore.getInstance(); File configFile = new File(module.getDataFolder() + File.separator + "database.yml"); if (!configFile.exists()) { try { configFile.createNewFile(); FileConfiguration file = YamlConfiguration.loadConfiguration(configFile); file.set("database.name", "MyDatabase"); file.set("database.host", "127.0.0.1"); file.set("database.user", "username"); file.set("database.password", "Pa55word"); file.set("database.port", 3306); file.save(configFile); } catch (Exception ex) { bFundamentals.log(Level.SEVERE, "Failed to create database config file", ex); return; } } FileConfiguration file = YamlConfiguration.loadConfiguration(configFile); this.loginDetails.databaseName = file.getString("database.name"); this.loginDetails.host = file.getString("database.host"); this.loginDetails.user = file.getString("database.user"); this.loginDetails.password = file.getString("database.password"); this.loginDetails.port = file.getInt("database.port"); } public DatabaseTable getNpcStoreTable() { return this.npcTable; } public BukkitDatabase getDatabase() { return this.databaseStoreNPC; } }