diff --git a/gradle.properties b/gradle.properties index f96891f3..caa5b921 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled javaVersion=25 mcVersion=26.1.2 group=dev.slne.surf.api -version=3.13.0 +version=3.14.0 relocationPrefix=dev.slne.surf.api.libs snapshot=false diff --git a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/bridges/V1_21_11SurfPaperNmsPlayerBridgeImpl.kt b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/bridges/V1_21_11SurfPaperNmsPlayerBridgeImpl.kt index 12a2b35a..be118bdf 100644 --- a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/bridges/V1_21_11SurfPaperNmsPlayerBridgeImpl.kt +++ b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v1-21-11/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v1_21_11/bridges/V1_21_11SurfPaperNmsPlayerBridgeImpl.kt @@ -45,6 +45,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack import org.bukkit.entity.Player import org.bukkit.inventory.EquipmentSlot import org.bukkit.inventory.ItemStack +import java.io.File import java.util.* import java.util.concurrent.CompletableFuture import kotlin.io.path.createTempFile @@ -232,6 +233,10 @@ class V1_21_11SurfPaperNmsPlayerBridgeImpl : SurfPaperNmsPlayerBridge { saveInventoryEdit(server, rootPathElement, currentTag, nameAndId, inventoryEdit) } + override fun getPlayerDataDir(): File { + return MinecraftServer.getServer().playerDataStorage.playerDir + } + private suspend fun loadPlayerTag(server: MinecraftServer, nameAndId: NameAndId): CompoundTag { val dataStorage = server.playerDataStorage return withContext(Dispatchers.IO) { diff --git a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/bridges/V26_1SurfPaperNmsPlayerBridgeImpl.kt b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/bridges/V26_1SurfPaperNmsPlayerBridgeImpl.kt index 0e54a00b..c1e00390 100644 --- a/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/bridges/V26_1SurfPaperNmsPlayerBridgeImpl.kt +++ b/surf-api-paper/surf-api-paper-nms/surf-api-paper-nms-v26-1/src/main/kotlin/dev/slne/surf/api/paper/server/nms/v26_1/bridges/V26_1SurfPaperNmsPlayerBridgeImpl.kt @@ -45,6 +45,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack import org.bukkit.entity.Player import org.bukkit.inventory.EquipmentSlot import org.bukkit.inventory.ItemStack +import java.io.File import java.util.concurrent.CompletableFuture import kotlin.io.path.createTempFile import kotlin.jvm.optionals.getOrNull @@ -231,6 +232,10 @@ class V26_1SurfPaperNmsPlayerBridgeImpl : SurfPaperNmsPlayerBridge { saveInventoryEdit(server, rootPathElement, currentTag, nameAndId, inventoryEdit) } + override fun getPlayerDataDir(): File { + return MinecraftServer.getServer().playerDataStorage.playerDir + } + private suspend fun loadPlayerTag(server: MinecraftServer, nameAndId: NameAndId): CompoundTag { val dataStorage = server.playerDataStorage return withContext(Dispatchers.IO) { diff --git a/surf-api-paper/surf-api-paper/api/surf-api-paper.api b/surf-api-paper/surf-api-paper/api/surf-api-paper.api index 9486fac9..b0fce3a0 100644 --- a/surf-api-paper/surf-api-paper/api/surf-api-paper.api +++ b/surf-api-paper/surf-api-paper/api/surf-api-paper.api @@ -1715,6 +1715,7 @@ public abstract interface class dev/slne/surf/api/paper/nms/bridges/SurfPaperNms public static synthetic fun createPlayerChatMessageMirrorFromAdventure$default (Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge;Lnet/kyori/adventure/chat/SignedMessage;Lnet/kyori/adventure/text/Component;ILjava/lang/Object;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/PlayerChatMessageMirror; public abstract fun editOfflineInventory (Lcom/destroystokyo/paper/profile/PlayerProfile;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getPaperRawChatType ()Lnet/kyori/adventure/chat/ChatType; + public abstract fun getPlayerDataDir ()Ljava/io/File; public abstract fun getRemoteChatSessionData (Lorg/bukkit/entity/Player;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData; public abstract fun increaseNextChatIndex (Lorg/bukkit/entity/Player;)Ljava/lang/Integer; public abstract fun runOnChatMessageChain (Lorg/bukkit/entity/Player;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function1;)V @@ -1728,6 +1729,7 @@ public final class dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge$ public fun editOfflineInventory (Lcom/destroystokyo/paper/profile/PlayerProfile;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun getINSTANCE ()Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge; public fun getPaperRawChatType ()Lnet/kyori/adventure/chat/ChatType; + public fun getPlayerDataDir ()Ljava/io/File; public fun getRemoteChatSessionData (Lorg/bukkit/entity/Player;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData; public fun increaseNextChatIndex (Lorg/bukkit/entity/Player;)Ljava/lang/Integer; public fun runOnChatMessageChain (Lorg/bukkit/entity/Player;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function1;)V diff --git a/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge.kt b/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge.kt index c64f1377..99f89f20 100644 --- a/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge.kt +++ b/surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge.kt @@ -14,6 +14,7 @@ import org.bukkit.entity.Player import org.bukkit.inventory.EntityEquipment import org.bukkit.inventory.ItemStack import org.jetbrains.annotations.ApiStatus +import java.io.File @NmsUseWithCaution @ApiStatus.NonExtendable @@ -76,6 +77,13 @@ interface SurfPaperNmsPlayerBridge { val equipment: EntityEquipment ) + /** + * Retrieves the directory where player data is stored. + * + * @return a [File] representing the directory used for storing player data + */ + fun getPlayerDataDir(): File + companion object : SurfPaperNmsPlayerBridge by playerBridge { val INSTANCE get() = playerBridge }