packs is going to yell at me

Added custom Config classes
Added Mongo / SQLite / SQL switches
Setup main config.yml
This commit is contained in:
spacerocket62
2020-10-27 11:14:34 -07:00
parent cc40d83c95
commit 5162f3fcfb
13 changed files with 379 additions and 0 deletions

View File

@ -0,0 +1,44 @@
package me.totalfreedom.plex.storage;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import dev.morphia.Datastore;
import dev.morphia.Morphia;
import me.totalfreedom.plex.Plex;
import me.totalfreedom.plex.player.PlexPlayer;
public class MongoConnection
{
// USE MORPHIA API FOR MONGO <3
private Plex plugin = Plex.get();
public Datastore getDatastore()
{
if (!plugin.getConfig().getString("data.central.storage").equalsIgnoreCase("mongodb"))
{
return null;
}
String host = plugin.getConfig().getString("data.central.hostname");
int port = plugin.getConfig().getInt("data.central.port");
String username = plugin.getConfig().getString("data.central.user");
String password = plugin.getConfig().getString("data.central.password");
String database = plugin.getConfig().getString("data.central.database");
String connectionString = "mongodb://" + username + ":" + password + "@" + host + ":" + port + "/?authSource=" + database;
MongoClient client = new MongoClient(new MongoClientURI(connectionString));
Morphia morphia = new Morphia();
Datastore datastore = morphia.createDatastore(client, database);
datastore.getMapper().addMappedClass(PlexPlayer.class);
datastore.ensureIndexes();
plugin.setStorageType(StorageType.MONGO);
return datastore;
}
}

View File

@ -0,0 +1,42 @@
package me.totalfreedom.plex.storage;
import me.totalfreedom.plex.Plex;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class SQLConnection
{
private Plex plugin = Plex.get();
private Connection connection;
public Connection getCon()
{
String host = plugin.getConfig().getString("data.central.hostname");
int port = plugin.getConfig().getInt("data.central.port");
String username = plugin.getConfig().getString("data.central.user");
String password = plugin.getConfig().getString("data.central.password");
String database = plugin.getConfig().getString("data.central.database");
try {
if (plugin.getConfig().getString("data.central.storage").equalsIgnoreCase("sqlite"))
{
connection = DriverManager.getConnection("jdbc:sqlite:" + new File(plugin.getDataFolder(), "database.db").getAbsolutePath());
Plex.get().setStorageType(StorageType.SQLITE);
}
else if (plugin.getConfig().getString("data.central.storage").equalsIgnoreCase("mysql"))
{
connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password);
Plex.get().setStorageType(StorageType.MONGO);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return connection;
}
}

View File

@ -0,0 +1,7 @@
package me.totalfreedom.plex.storage;
public enum StorageType
{
MONGO, SQL, SQLITE;
}