summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
authorCalMWolfs <94038482+CalMWolfs@users.noreply.github.com>2023-11-18 09:44:42 +1100
committerGitHub <noreply@github.com>2023-11-17 23:44:42 +0100
commit65a2c5625f5f07e7c7e354e4a1397282032c9ae0 (patch)
treed710597e8278d15780b67e4afca7aae286970b28 /src/main/java/at/hannibal2/skyhanni/data
parentab4aadf4a6c8564b3bddde6b9b9ecfcabe4254a7 (diff)
downloadskyhanni-65a2c5625f5f07e7c7e354e4a1397282032c9ae0.tar.gz
skyhanni-65a2c5625f5f07e7c7e354e4a1397282032c9ae0.tar.bz2
skyhanni-65a2c5625f5f07e7c7e354e4a1397282032c9ae0.zip
Split storage into more files plus code cleanup (#695)
Extracted sacks, friends, known features and jacob contests in to their separate files. #695
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt50
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt3
2 files changed, 20 insertions, 33 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt
index bca06d18c..224522c06 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/FriendAPI.kt
@@ -1,6 +1,7 @@
package at.hannibal2.skyhanni.data
-import at.hannibal2.skyhanni.config.ConfigManager
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.config.ConfigFileType
import at.hannibal2.skyhanni.events.HypixelJoinEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
import at.hannibal2.skyhanni.test.command.ErrorManager
@@ -11,13 +12,9 @@ import at.hannibal2.skyhanni.utils.jsonobjects.FriendsJson
import at.hannibal2.skyhanni.utils.jsonobjects.FriendsJson.PlayerFriends.Friend
import net.minecraft.util.ChatStyle
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
-import java.io.File
-import java.io.FileReader
import java.util.UUID
-class FriendAPI {
- private val file = File("config/skyhanni/friends.json")
-
+object FriendAPI {
// TODO USE SH-REPO
private val removedFriendPattern =
".*\n§r§eYou removed §r(?<name>.*)§e from your friends list!§r§9§m\n.*".toPattern()
@@ -25,42 +22,31 @@ class FriendAPI {
private val noBestFriendPattern = ".*\n§r(?<name>.*)§e is no longer a best friend!§r§9§m\n.*".toPattern()
private val bestFriendPattern = ".*\n(?<name>.*)§a is now a best friend!§r§9§m\n.*".toPattern()
- companion object {
-
- private var friendsJson: FriendsJson? = null
-
- private fun getFriends(): MutableMap<UUID, Friend> {
- val friendsJson = friendsJson ?: error("savedFriends not loaded yet!")
- return friendsJson.players.getOrPut(LorenzUtils.getRawPlayerUuid()) {
- FriendsJson.PlayerFriends().also { it.friends = mutableMapOf() }
- }.friends
- }
-
- private val tempFriends = mutableListOf<Friend>()
+ private val tempFriends = mutableListOf<Friend>()
- fun getAllFriends(): List<Friend> {
- val list = mutableListOf<Friend>()
- list.addAll(getFriends().values)
- list.addAll(tempFriends)
- return list
- }
+ private fun getFriends(): MutableMap<UUID, Friend> {
+ return SkyHanniMod.friendsData.players.getOrPut(LorenzUtils.getRawPlayerUuid()) {
+ FriendsJson.PlayerFriends().also { it.friends = mutableMapOf() }
+ }.friends
}
@SubscribeEvent
fun onHypixelJoin(event: HypixelJoinEvent) {
- if (file.isFile) {
- friendsJson = ConfigManager.gson.fromJson(FileReader(file), FriendsJson::class.java)
- }
- if (friendsJson == null) {
- file.parentFile.mkdirs()
- file.createNewFile()
- friendsJson = FriendsJson().also { it.players = mutableMapOf() }
+ if (SkyHanniMod.friendsData.players == null) {
+ SkyHanniMod.friendsData.players = mutableMapOf()
saveConfig()
}
}
+ fun getAllFriends(): List<Friend> {
+ val list = mutableListOf<Friend>()
+ list.addAll(getFriends().values)
+ list.addAll(tempFriends)
+ return list
+ }
+
fun saveConfig() {
- file.writeText(ConfigManager.gson.toJson(friendsJson))
+ SkyHanniMod.configManager.saveConfig(ConfigFileType.FRIENDS, "Save file")
}
@SubscribeEvent
diff --git a/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt
index 8417bc786..7079ae6fd 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt
@@ -1,6 +1,7 @@
package at.hannibal2.skyhanni.data
import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.config.ConfigFileType
import at.hannibal2.skyhanni.events.InventoryCloseEvent
import at.hannibal2.skyhanni.events.InventoryFullyOpenedEvent
import at.hannibal2.skyhanni.events.LorenzChatEvent
@@ -303,7 +304,7 @@ object SackAPI {
private fun saveSackData() {
ProfileStorageData.sackProfiles?.sackContents = sackData
- SkyHanniMod.configManager.saveSackData("saving-data")
+ SkyHanniMod.configManager.saveConfig(ConfigFileType.SACKS, "saving-data")
}
data class SackGemstone(