Skip to content

Commit b2a4e0c

Browse files
authored
Add getPlayerDataDir method for player data retrieval (#356)
2 parents f2e0a1c + a61f70f commit b2a4e0c

5 files changed

Lines changed: 21 additions & 1 deletion

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
77
javaVersion=25
88
mcVersion=26.1.2
99
group=dev.slne.surf.api
10-
version=3.13.0
10+
version=3.14.0
1111
relocationPrefix=dev.slne.surf.api.libs
1212
snapshot=false

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack
4545
import org.bukkit.entity.Player
4646
import org.bukkit.inventory.EquipmentSlot
4747
import org.bukkit.inventory.ItemStack
48+
import java.io.File
4849
import java.util.*
4950
import java.util.concurrent.CompletableFuture
5051
import kotlin.io.path.createTempFile
@@ -232,6 +233,10 @@ class V1_21_11SurfPaperNmsPlayerBridgeImpl : SurfPaperNmsPlayerBridge {
232233
saveInventoryEdit(server, rootPathElement, currentTag, nameAndId, inventoryEdit)
233234
}
234235

236+
override fun getPlayerDataDir(): File {
237+
return MinecraftServer.getServer().playerDataStorage.playerDir
238+
}
239+
235240
private suspend fun loadPlayerTag(server: MinecraftServer, nameAndId: NameAndId): CompoundTag {
236241
val dataStorage = server.playerDataStorage
237242
return withContext(Dispatchers.IO) {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack
4545
import org.bukkit.entity.Player
4646
import org.bukkit.inventory.EquipmentSlot
4747
import org.bukkit.inventory.ItemStack
48+
import java.io.File
4849
import java.util.concurrent.CompletableFuture
4950
import kotlin.io.path.createTempFile
5051
import kotlin.jvm.optionals.getOrNull
@@ -231,6 +232,10 @@ class V26_1SurfPaperNmsPlayerBridgeImpl : SurfPaperNmsPlayerBridge {
231232
saveInventoryEdit(server, rootPathElement, currentTag, nameAndId, inventoryEdit)
232233
}
233234

235+
override fun getPlayerDataDir(): File {
236+
return MinecraftServer.getServer().playerDataStorage.playerDir
237+
}
238+
234239
private suspend fun loadPlayerTag(server: MinecraftServer, nameAndId: NameAndId): CompoundTag {
235240
val dataStorage = server.playerDataStorage
236241
return withContext(Dispatchers.IO) {

surf-api-paper/surf-api-paper/api/surf-api-paper.api

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,6 +1715,7 @@ public abstract interface class dev/slne/surf/api/paper/nms/bridges/SurfPaperNms
17151715
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;
17161716
public abstract fun editOfflineInventory (Lcom/destroystokyo/paper/profile/PlayerProfile;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
17171717
public abstract fun getPaperRawChatType ()Lnet/kyori/adventure/chat/ChatType;
1718+
public abstract fun getPlayerDataDir ()Ljava/io/File;
17181719
public abstract fun getRemoteChatSessionData (Lorg/bukkit/entity/Player;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData;
17191720
public abstract fun increaseNextChatIndex (Lorg/bukkit/entity/Player;)Ljava/lang/Integer;
17201721
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$
17281729
public fun editOfflineInventory (Lcom/destroystokyo/paper/profile/PlayerProfile;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
17291730
public final fun getINSTANCE ()Ldev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge;
17301731
public fun getPaperRawChatType ()Lnet/kyori/adventure/chat/ChatType;
1732+
public fun getPlayerDataDir ()Ljava/io/File;
17311733
public fun getRemoteChatSessionData (Lorg/bukkit/entity/Player;)Ldev/slne/surf/api/paper/nms/bridges/data/chat/RemoteChatSessionData;
17321734
public fun increaseNextChatIndex (Lorg/bukkit/entity/Player;)Ljava/lang/Integer;
17331735
public fun runOnChatMessageChain (Lorg/bukkit/entity/Player;Lkotlinx/coroutines/CoroutineScope;Lkotlin/jvm/functions/Function1;)V

surf-api-paper/surf-api-paper/src/main/kotlin/dev/slne/surf/api/paper/nms/bridges/SurfPaperNmsPlayerBridge.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import org.bukkit.entity.Player
1414
import org.bukkit.inventory.EntityEquipment
1515
import org.bukkit.inventory.ItemStack
1616
import org.jetbrains.annotations.ApiStatus
17+
import java.io.File
1718

1819
@NmsUseWithCaution
1920
@ApiStatus.NonExtendable
@@ -76,6 +77,13 @@ interface SurfPaperNmsPlayerBridge {
7677
val equipment: EntityEquipment
7778
)
7879

80+
/**
81+
* Retrieves the directory where player data is stored.
82+
*
83+
* @return a [File] representing the directory used for storing player data
84+
*/
85+
fun getPlayerDataDir(): File
86+
7987
companion object : SurfPaperNmsPlayerBridge by playerBridge {
8088
val INSTANCE get() = playerBridge
8189
}

0 commit comments

Comments
 (0)