From be86314dafaae5a3f1449465a6b93bcaa117f369 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Thu, 11 Jul 2024 21:23:51 -0500 Subject: [PATCH] feat: add none database type --- .../hmccosmetics/database/Database.java | 25 +++++++++++------ .../hmccosmetics/database/types/NoneData.java | 28 +++++++++++++++++++ common/src/main/resources/config.yml | 2 +- 3 files changed, 46 insertions(+), 9 deletions(-) create mode 100644 common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/NoneData.java diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java index 3e92942b..fc47ea12 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/Database.java @@ -3,6 +3,7 @@ package com.hibiscusmc.hmccosmetics.database; import com.hibiscusmc.hmccosmetics.config.DatabaseSettings; import com.hibiscusmc.hmccosmetics.database.types.Data; import com.hibiscusmc.hmccosmetics.database.types.MySQLData; +import com.hibiscusmc.hmccosmetics.database.types.NoneData; import com.hibiscusmc.hmccosmetics.database.types.SQLiteData; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.CosmeticUsers; @@ -11,6 +12,7 @@ import lombok.Getter; import org.bukkit.entity.Player; import java.util.UUID; +import java.util.logging.Level; public class Database { @@ -18,18 +20,25 @@ public class Database { private static Data data; private static final MySQLData MYSQL_DATA = new MySQLData(); private static final SQLiteData SQLITE_DATA = new SQLiteData(); + private static final NoneData NONE_DATA = new NoneData(); public Database() { String databaseType = DatabaseSettings.getDatabaseType(); - data = SQLITE_DATA; // default - if (databaseType.equalsIgnoreCase("MySQL")) { - data = MYSQL_DATA; + data = SQLITE_DATA; // default to SQLite, then check if it's anything different + switch (databaseType.toLowerCase()) { + case "mysql": + data = MYSQL_DATA; + break; + case "sqlite": + // already the default + break; + case "none": + data = NONE_DATA; + MessagesUtil.sendDebugMessages("Database is set to none. Data will not be saved.", Level.WARNING); + break; + default: + MessagesUtil.sendDebugMessages("Invalid database type. Defaulting to SQLite.", Level.WARNING); } - /* SQLite is the default database. Might change in the future, so keep code here in case. - if (databaseType.equalsIgnoreCase("sqlite")) { - data = SQLITE_DATA; - } - */ MessagesUtil.sendDebugMessages("Database is " + data); setup(); diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/NoneData.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/NoneData.java new file mode 100644 index 00000000..2cc472b2 --- /dev/null +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/NoneData.java @@ -0,0 +1,28 @@ +package com.hibiscusmc.hmccosmetics.database.types; + +import com.hibiscusmc.hmccosmetics.user.CosmeticUser; +import org.jetbrains.annotations.Nullable; + +import java.util.UUID; + +public class NoneData extends Data { + @Override + public void setup() { + // Nothing + } + + @Override + public void save(CosmeticUser user) { + // Nothing + } + + @Override + public @Nullable CosmeticUser get(UUID uniqueId) { + return new CosmeticUser(uniqueId); + } + + @Override + public void clear(UUID uniqueId) { + // Nothing + } +} diff --git a/common/src/main/resources/config.yml b/common/src/main/resources/config.yml index 692962f1..f2640854 100644 --- a/common/src/main/resources/config.yml +++ b/common/src/main/resources/config.yml @@ -6,7 +6,7 @@ config-version: 1 default-menu: defaultmenu debug-mode: false database-settings: - type: sqlite #MYSQL, SQLite + type: sqlite # SQLite (Default), MYSQL, NONE mysql: database: database password: cherryBomb