Skip to content

Commit 9a45bc3

Browse files
committed
feat: add ItemStackProvider to paper module
1 parent 9a77d3f commit 9a45bc3

4 files changed

Lines changed: 39 additions & 2 deletions

File tree

gradle/libs.versions.toml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
[versions]
22
kotlin = "2.3.10"
33
kotlinx-serialization = "1.10.0"
4-
adventure = "4.26.1"
4+
minecraft-serialization = "1.0.0-R0.8-SNAPSHOT"
55
kaml = "0.104.0"
6+
adventure = "4.26.1"
7+
paper = "1.21.11-R0.1-SNAPSHOT"
68

79
[plugins]
810
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
@@ -11,5 +13,7 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi
1113
[libraries]
1214
kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" }
1315
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
16+
minecraft-serialization-paper = { module = "net.azisaba.serialization:paper", version.ref = "minecraft-serialization" }
17+
kaml = { module = "com.charleskorn.kaml:kaml", version.ref = "kaml" }
1418
adventure-api = { module = "net.kyori:adventure-api", version.ref = "adventure" }
15-
kaml = { module = "com.charleskorn.kaml:kaml", version.ref = "kaml" }
19+
paper-api = { module = "io.papermc.paper:paper-api", version.ref = "paper" }

modules/paper/build.gradle.kts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
plugins {
2+
alias(libs.plugins.kotlin.serialization)
3+
}
4+
5+
repositories {
6+
maven { url = uri("https://repo.azisaba.net/repository/maven-snapshots/") }
7+
maven { url = uri("https://repo.papermc.io/repository/maven-public/") }
8+
}
9+
10+
dependencies {
11+
api(project(":modules:core"))
12+
api(libs.minecraft.serialization.paper)
13+
compileOnly(libs.kotlinx.serialization.core)
14+
compileOnly(libs.paper.api)
15+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package net.azisaba.data
2+
3+
import kotlinx.serialization.Serializable
4+
import net.azisaba.serialization.ItemTypeSerializer
5+
import org.bukkit.inventory.ItemStack
6+
import org.bukkit.inventory.ItemType
7+
import kotlin.random.Random
8+
9+
@Serializable
10+
data class ItemStackProvider(
11+
@Serializable(with = ItemTypeSerializer::class)
12+
val type: ItemType,
13+
val count: IntProvider,
14+
) {
15+
fun create(random: Random = Random.Default): ItemStack =
16+
type.createItemStack(count.sample(random))
17+
}

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ rootProject.name = "data-driven"
66

77
include(":modules:core")
88
include(":modules:json")
9+
include(":modules:paper")
910
include(":modules:yaml")

0 commit comments

Comments
 (0)