diff --git a/pom.xml b/pom.xml
index 137d1e8..170701d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,17 @@
com.softwarerat
HomesAPI
- 1.1-SNAPSHOT
+ 1.3-SNAPSHOT
+
+
+
+
+
+ forgejo
+ Forgejo Maven
+ http://heimserver.local:36107/api/packages/minecraft/maven
+
+
18
@@ -32,5 +42,9 @@
papermc-repo
https://repo.papermc.io/repository/maven-public/
+
+ gitea
+ http://heimserver.local:36107/api/packages/minecraft/maven
+
diff --git a/src/main/java/com/softwarerat/SQL/Homes.java b/src/main/java/com/softwarerat/SQL/Homes.java
deleted file mode 100644
index 17e0e7e..0000000
--- a/src/main/java/com/softwarerat/SQL/Homes.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.softwarerat.SQL;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Homes {
-
-
- private final Yaml yaml;
-
- public Homes(Yaml yaml) {
- this.yaml = yaml;
- }
-
- // Add or update a player home
- public void addHome(String name, String uuid, String world, int x, int y, int z) {
- String basePath = "homes." + name;
- yaml.set(basePath + ".UUID", uuid);
- yaml.set(basePath + ".World", world);
- yaml.set(basePath + ".x", x);
- yaml.set(basePath + ".y", y);
- yaml.set(basePath + ".z", z);
- }
-
- // Get a PlayerHome by name
- public PlayerHome getHomeByName(String name) {
- String basePath = "homes." + name;
- if (!yaml.getConfig().contains(basePath)) return null;
-
- String uuid = yaml.getString(basePath + ".UUID");
- String world = yaml.getString(basePath + ".World");
- int x = yaml.getInt(basePath + ".x");
- int y = yaml.getInt(basePath + ".y");
- int z = yaml.getInt(basePath + ".z");
-
- return new PlayerHome(name, uuid, world, x, y, z);
- }
-
- // Get all homes for a player by UUID
- public List getPlayerHomes(String uuid) {
- List homes = new ArrayList<>();
- if (!yaml.getConfig().contains("homes")) return homes;
-
- for (String homeName : yaml.getConfig().getConfigurationSection("homes").getKeys(false)) {
- String homeUUID = yaml.getString("homes." + homeName + ".UUID");
- if (homeUUID != null && homeUUID.equals(uuid)) {
- homes.add(getHomeByName(homeName));
- }
- }
- return homes;
- }
-
- // Delete a home by name
- public void deleteHome(String name) {
- if (yaml.getConfig().contains("homes." + name)) {
- yaml.set("homes." + name, null);
- }
- }
-
- // Check if a home exists
- public boolean homeExists(String name) {
- return yaml.getConfig().contains("homes." + name);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/com/softwarerat/Main.java b/src/main/java/com/softwarerat/homeAPI/HomesAPI.java
similarity index 59%
rename from src/main/java/com/softwarerat/Main.java
rename to src/main/java/com/softwarerat/homeAPI/HomesAPI.java
index ef001d3..8e5cdce 100644
--- a/src/main/java/com/softwarerat/Main.java
+++ b/src/main/java/com/softwarerat/homeAPI/HomesAPI.java
@@ -1,15 +1,17 @@
-package com.softwarerat;
+package com.softwarerat.homeAPI;
-import com.softwarerat.SQL.Homes;
-import com.softwarerat.SQL.Yaml;
+import com.softwarerat.homeAPI.SQL.Homes;
+import com.softwarerat.homeAPI.SQL.Yaml;
import lombok.Getter;
@Getter
-public class Main {
+public class HomesAPI {
Yaml yaml;
Homes homes;
+
+
public void enableAPI(String path, String filename){
yaml = new Yaml(path, filename);
homes = new Homes(yaml);
diff --git a/src/main/java/com/softwarerat/homeAPI/SQL/Homes.java b/src/main/java/com/softwarerat/homeAPI/SQL/Homes.java
new file mode 100644
index 0000000..3c239b6
--- /dev/null
+++ b/src/main/java/com/softwarerat/homeAPI/SQL/Homes.java
@@ -0,0 +1,79 @@
+package com.softwarerat.homeAPI.SQL;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Homes {
+
+
+ private final Yaml yaml;
+
+ public Homes(Yaml yaml) {
+ this.yaml = yaml;
+ }
+
+ /**
+ * Retrieves a specific home by name for a specific player.
+ */
+/**
+ * Retrieves a home by name only.
+ * In this version, the Name is the unique identifier.
+ */
+ public PlayerHome getHomeByName(String name) {
+ if (!yaml.getConfig().contains(name)) {
+ return null;
+ }
+
+ // The path is now just "Name.key"
+ String uuid = yaml.getConfig().getString(name + ".uuid");
+ String world = yaml.getConfig().getString(name + ".world");
+ int x = yaml.getConfig().getInt(name + ".x");
+ int y = yaml.getConfig().getInt(name + ".y");
+ int z = yaml.getConfig().getInt(name + ".z");
+
+ return new PlayerHome(name, uuid, world, x, y, z);
+ }
+
+ /**
+ * Saves a new home or updates an existing one.
+ */
+ public void createNewHome(PlayerHome playerHome) {
+ String path = playerHome.getUUID() + "." + playerHome.getName();
+
+ yaml.getConfig().set(path + ".world", playerHome.getWorld());
+ yaml.getConfig().set(path + ".x", playerHome.getX());
+ yaml.getConfig().set(path + ".y", playerHome.getY());
+ yaml.getConfig().set(path + ".z", playerHome.getZ());
+
+ yaml.save(); // Write changes to disk
+ }
+
+ /**
+ * Removes a home from the YAML file.
+ */
+ public void deleteHome(String uuid, String name) {
+ String path = uuid + "." + name;
+ if (yaml.getConfig().contains(path)) {
+ yaml.getConfig().set(path, null); // Setting to null removes the key
+ yaml.save();
+ }
+ }
+
+ /**
+ * Gets all homes associated with a specific Player UUID.
+ */
+ public List getPlayerHomes(String uuid) {
+ List homes = new ArrayList<>();
+
+ // Loop through every top-level key (every home name in the file)
+ for (String homeName : yaml.getConfig().getKeys(false)) {
+ String ownerUUID = yaml.getConfig().getString(homeName + ".uuid");
+
+ if (uuid.equals(ownerUUID)) {
+ homes.add(getHomeByName(homeName));
+ }
+ }
+
+ return homes;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/softwarerat/SQL/PlayerHome.java b/src/main/java/com/softwarerat/homeAPI/SQL/PlayerHome.java
similarity index 85%
rename from src/main/java/com/softwarerat/SQL/PlayerHome.java
rename to src/main/java/com/softwarerat/homeAPI/SQL/PlayerHome.java
index 6420bc5..cc6ec67 100644
--- a/src/main/java/com/softwarerat/SQL/PlayerHome.java
+++ b/src/main/java/com/softwarerat/homeAPI/SQL/PlayerHome.java
@@ -1,4 +1,4 @@
-package com.softwarerat.SQL;
+package com.softwarerat.homeAPI.SQL;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/com/softwarerat/SQL/Yaml.java b/src/main/java/com/softwarerat/homeAPI/SQL/Yaml.java
similarity index 97%
rename from src/main/java/com/softwarerat/SQL/Yaml.java
rename to src/main/java/com/softwarerat/homeAPI/SQL/Yaml.java
index 2e0d24c..5cb3b1c 100644
--- a/src/main/java/com/softwarerat/SQL/Yaml.java
+++ b/src/main/java/com/softwarerat/homeAPI/SQL/Yaml.java
@@ -1,4 +1,4 @@
-package com.softwarerat.SQL;
+package com.softwarerat.homeAPI.SQL;