All source projects
MrUltimateLibrary Source
Standalone source project / 68 files
MrUltimateLibrary is the backbone of all my plugins; it offers features that facilitate plugin creation, maintenance, and updates.
java
MrUltimateLibrary/src/main/java/eu/mrneznamy/mrultimatelibrary/database/MrLibDatabaseManager.java
JAVA · Read-only source
package eu.mrneznamy.mrultimatelibrary.database;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/**
* Database manager for plugins
* Allows plugins to register and use their own databases
*/
public class MrLibDatabaseManager {
private static final Map<String, MrLibDatabase> databases = new HashMap<>();
/**
* Register MySQL database for a plugin
*
* @param pluginName Plugin identifier
* @param host MySQL host
* @param port MySQL port
* @param database Database name
* @param username Username
* @param password Password
* @return Database instance
*/
public static MrLibDatabase registerMySQL(String pluginName, String host, int port, String database, String username, String password) {
MrLibMySQL mysql = new MrLibMySQL(host, port, database, username, password);
databases.put(pluginName.toLowerCase(), mysql);
if (mysql.connect()) {
return mysql;
}
return null;
}
/**
* Register SQLite database for a plugin
*
* @param plugin Plugin instance
* @param fileName Database file name (e.g. "data.db")
* @return Database instance
*/
public static MrLibDatabase registerSQLite(JavaPlugin plugin, String fileName) {
File dbFile = new File(plugin.getDataFolder(), fileName);
MrLibSQLite sqlite = new MrLibSQLite(dbFile);
databases.put(plugin.getName().toLowerCase(), sqlite);
if (sqlite.connect()) {
return sqlite;
}
return null;
}
/**
* Get database for a plugin
*
* @param pluginName Plugin name
* @return Database instance or null
*/
public static MrLibDatabase getDatabase(String pluginName) {
return databases.get(pluginName.toLowerCase());
}
/**
* Disconnect and remove database
*
* @param pluginName Plugin name
*/
public static void unregister(String pluginName) {
MrLibDatabase db = databases.remove(pluginName.toLowerCase());
if (db != null) {
db.disconnect();
}
}
/**
* Disconnect all databases
*/
public static void disconnectAll() {
databases.values().forEach(MrLibDatabase::disconnect);
databases.clear();
}
}
87 linesGNU GENERAL PUBLIC LICENSE · Version 3, 29 June 2007 · UTF-8 · Read only