9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-19 15:09:19 +00:00

Initial MySQL data work

This commit is contained in:
LoJoSho
2022-11-10 15:14:49 -06:00
parent f77f348251
commit f4b7dbaa32
6 changed files with 119 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ package com.hibiscusmc.hmccosmetics;
import com.hibiscusmc.hmccosmetics.command.CosmeticCommand;
import com.hibiscusmc.hmccosmetics.command.CosmeticCommandTabComplete;
import com.hibiscusmc.hmccosmetics.config.DatabaseSettings;
import com.hibiscusmc.hmccosmetics.config.Settings;
import com.hibiscusmc.hmccosmetics.config.WardrobeSettings;
import com.hibiscusmc.hmccosmetics.config.serializer.ItemSerializer;
@@ -78,6 +79,7 @@ public final class HMCCosmeticsPlugin extends JavaPlugin {
try {
Settings.load(loader.load().node(""));
WardrobeSettings.load(loader.load().node("wardrobe"));
DatabaseSettings.load(loader.load().node("database-settings"));
} catch (ConfigurateException e) {
throw new RuntimeException(e);
}

View File

@@ -0,0 +1,61 @@
package com.hibiscusmc.hmccosmetics.config;
import org.spongepowered.configurate.ConfigurationNode;
public class DatabaseSettings {
//private static final String DATABASE_SETTINGS_PATH = "cosmetic-settings";
private static final String DATABASE_TYPE_PATH = "type";
private static final String MYSQL_DATABASE_SETTINGS = "mysql";
private static final String MYSQL_DATABASE = "database";
private static final String MYSQL_PASSWORD = "password";
private static final String MYSQL_HOST = "host";
private static final String MYSQL_USER = "user";
private static final String MYSQL_PORT = "port";
private static String databaseType;
private static String database;
private static String password;
private static String host;
private static String username;
private static int port;
public static void load(ConfigurationNode source) {
//ConfigurationNode databaseSettings = source.node(DATABASE_SETTINGS_PATH);
databaseType = source.node(DATABASE_TYPE_PATH).getString();
ConfigurationNode mySql = source.node(MYSQL_DATABASE_SETTINGS);
database = mySql.node(MYSQL_DATABASE).getString();
password = mySql.node(MYSQL_PASSWORD).getString();
host = mySql.node(MYSQL_HOST).getString();
username = mySql.node(MYSQL_USER).getString();
port = mySql.node(MYSQL_PORT).getInt();
}
public static String getDatabaseType() {
return databaseType;
}
public static String getDatabase() {
return database;
}
public static String getPassword() {
return password;
}
public static String getHost() {
return host;
}
public static String getUsername() {
return username;
}
public static int getPort() {
return port;
}
}

View File

@@ -1,7 +1,10 @@
package com.hibiscusmc.hmccosmetics.database;
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
import com.hibiscusmc.hmccosmetics.config.DatabaseSettings;
import com.hibiscusmc.hmccosmetics.database.types.Data;
import com.hibiscusmc.hmccosmetics.database.types.InternalData;
import com.hibiscusmc.hmccosmetics.database.types.MySQLData;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import java.util.UUID;
@@ -11,10 +14,20 @@ public class Database {
private static Data data;
private static InternalData INTERNAL_DATA = new InternalData();
private static MySQLData MYSQL_DATA = new MySQLData();
public Database() {
this.data = INTERNAL_DATA;
// To be replaced when multiple systems exist
String databaseType = DatabaseSettings.getDatabaseType();
switch (databaseType) {
case "INTERNAL_DATA":
data = INTERNAL_DATA;
case "MYSQL":
data = MYSQL_DATA;
default:
data = INTERNAL_DATA;
HMCCosmeticsPlugin.getInstance().getLogger().severe("No Valid Datatype detected! Defaulting to internal data...");
}
setup();
}
public static void setup() {

View File

@@ -1,19 +1,21 @@
package com.hibiscusmc.hmccosmetics.database.types;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import org.jetbrains.annotations.Nullable;
import java.util.UUID;
public class Data {
public void setup() {
// Override
}
public void save(CosmeticUser user) {
// Override
}
@Nullable
public CosmeticUser get(UUID uniqueId) {
// Override
return null;

View File

@@ -0,0 +1,30 @@
package com.hibiscusmc.hmccosmetics.database.types;
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import java.sql.Connection;
import java.util.UUID;
public class MySQLData extends Data {
private Connection connection;
@Override
public void setup() {
// TODO
HMCCosmeticsPlugin plugin = HMCCosmeticsPlugin.getInstance();
}
@Override
public void save(CosmeticUser user) {
// TODO
}
@Override
public CosmeticUser get(UUID uniqueId) {
// TODO
return null;
}
}

View File

@@ -1,4 +1,12 @@
default-menu: main
database-settings:
type: INTERNAL # INTERNAL, MYSQL
mysql:
database: database
password: cherryBomb
port: 3306
host: localhost
user: username
cosmetic-settings:
require-empty-helmet: false
require-empty-off-hand: false