Skip to content

Commit dbe3cc0

Browse files
committed
feat: integrate inventory framework and add test inventory functionality
- Added `InventoryLoader` for managing inventory framework lifecycle. - Implemented `ViewFrameAccessor` to interact with the inventory framework. - Introduced `TestInventoryView` and `InventoryTest` for testing inventory UI. - Updated dependencies to include the new inventory framework version. - Registered inventory views and lifecycle handling in `BukkitInstance`. - Bumped version to 1.21.10-2.40.0.
1 parent 72cddf8 commit dbe3cc0

File tree

17 files changed

+2280
-10
lines changed

17 files changed

+2280
-10
lines changed

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=21
88
mcVersion=1.21.10
99
group=dev.slne.surf
10-
version=1.21.10-2.39.2
10+
version=1.21.10-2.40.0
1111
relocationPrefix=dev.slne.surf.surfapi.libs
1212
snapshot=false

gradle/libs.versions.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ reflection-remapper = "0.1.3"
5151
brigadier = "1.0.18"
5252
configurate = "4.2.0"
5353
more-persistent-data-types = "2.4.0"
54-
inventoryframework = "0.11.3"
54+
stefvanschie-if = "0.11.3"
55+
inventory-framework = "3.5.4"
5556
flogger = "0.9"
5657
aide-reflection = "1.3"
5758
auto-service = "1.1.1"
@@ -139,7 +140,9 @@ configurate-yaml = { module = "org.spongepowered:configurate-yaml", version.ref
139140
configurate-jackson = { module = "org.spongepowered:configurate-jackson", version.ref = "configurate" }
140141
configurate-kotlin = { module = "org.spongepowered:configurate-extra-kotlin", version.ref = "configurate" }
141142
more-persistent-data-types = { module = "com.jeff_media:MorePersistentDataTypes", version.ref = "more-persistent-data-types" }
142-
inventoryframework = { module = "com.github.stefvanschie.inventoryframework:IF", version.ref = "inventoryframework" }
143+
stefvanschie-if = { module = "com.github.stefvanschie.inventoryframework:IF", version.ref = "stefvanschie-if" }
144+
inventory-framework-platform-paper = { module = "me.devnatan:inventory-framework-platform-paper", version.ref = "inventory-framework" }
145+
inventory-framework-platform-bukkit = { module = "me.devnatan:inventory-framework-platform-bukkit", version.ref = "inventory-framework" }
143146
flogger = { module = "com.google.flogger:flogger", version.ref = "flogger" }
144147
flogger-slf4j-backend = { module = "com.google.flogger:flogger-slf4j-backend", version.ref = "flogger" }
145148
aide-reflection = { module = "tech.hiddenproject:aide-reflection", version.ref = "aide-reflection" }
@@ -174,4 +177,5 @@ kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", versi
174177
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp-version" }
175178

176179
[bundles]
177-
ktor-client = ["ktor-client-core", "ktor-client-okhttp", "ktor-client-content-negotiation", "ktor-serialization-kotlinx-json"]
180+
ktor-client = ["ktor-client-core", "ktor-client-okhttp", "ktor-client-content-negotiation", "ktor-serialization-kotlinx-json"]
181+
inventory-framework = ["inventory-framework-platform-paper", "inventory-framework-platform-bukkit"]

surf-api-bukkit/surf-api-bukkit-api/api/surf-api-bukkit-api.api

Lines changed: 2088 additions & 0 deletions
Large diffs are not rendered by default.

surf-api-bukkit/surf-api-bukkit-api/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ dependencies {
1111
compileOnlyApi(libs.commandapi.paper)
1212
compileOnlyApi(libs.reflection.remapper)
1313
compileOnlyApi(libs.more.persistent.data.types)
14-
compileOnlyApi(libs.inventoryframework)
14+
compileOnlyApi(libs.stefvanschie.`if`)
15+
api(libs.bundles.inventory.framework)
1516

1617
api(libs.commandapi.bukkit.kotlin)
1718
compileOnlyApi(libs.mccoroutine.folia.api)

surf-api-bukkit/surf-api-bukkit-api/src/main/kotlin/dev/slne/surf/surfapi/bukkit/api/builder/item-stack.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import net.kyori.adventure.text.Component
66
import net.kyori.adventure.text.format.TextDecoration
77
import org.bukkit.Material
88
import org.bukkit.inventory.ItemStack
9+
import org.bukkit.inventory.ItemType
910
import org.bukkit.inventory.meta.ItemMeta
1011

1112
@Target(AnnotationTarget.TYPE, AnnotationTarget.CLASS)
@@ -17,7 +18,17 @@ inline fun buildItem(
1718
amount: Int = 1,
1819
init: (@ItemDsl ItemStack).() -> Unit,
1920
): ItemStack {
20-
val item = ItemStack(material, amount)
21+
val item = ItemStack.of(material, amount)
22+
item.init()
23+
return item
24+
}
25+
26+
inline fun buildItem(
27+
type: ItemType,
28+
amount: Int = 1,
29+
init: (@ItemDsl ItemStack).() -> Unit,
30+
): ItemStack {
31+
val item = type.createItemStack(amount)
2132
item.init()
2233
return item
2334
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package dev.slne.surf.surfapi.bukkit.api.inventory.framework
2+
3+
import dev.slne.surf.surfapi.core.api.util.requiredService
4+
import me.devnatan.inventoryframework.ViewFrame
5+
import org.jetbrains.annotations.ApiStatus
6+
7+
@ApiStatus.NonExtendable
8+
interface ViewFrameAccessor {
9+
fun viewFrame(): ViewFrame
10+
11+
companion object {
12+
val instance = requiredService<ViewFrameAccessor>()
13+
}
14+
}
15+
16+
val viewFrame: ViewFrame
17+
get() = ViewFrameAccessor.instance.viewFrame()
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
@file:JvmName("InventoryFrameworkExtensions")
2+
3+
package dev.slne.surf.surfapi.bukkit.api.inventory.framework
4+
5+
import dev.slne.surf.surfapi.core.api.messages.builder.SurfComponentBuilder
6+
import me.devnatan.inventoryframework.View
7+
import me.devnatan.inventoryframework.ViewConfigBuilder
8+
import me.devnatan.inventoryframework.context.OpenContext
9+
import org.bukkit.entity.Player
10+
11+
fun View.register() {
12+
viewFrame.with(this)
13+
}
14+
15+
fun View.unregister() {
16+
viewFrame.remove(this)
17+
}
18+
19+
fun View.open(player: Player) {
20+
viewFrame.open(javaClass, player)
21+
}
22+
23+
fun View.open(player: Player, data: Any) {
24+
viewFrame.open(javaClass, player, data)
25+
}
26+
27+
fun View.open(players: Collection<Player>) {
28+
viewFrame.open(javaClass, players)
29+
}
30+
31+
fun View.open(players: Collection<Player>, data: Any) {
32+
viewFrame.open(javaClass, players, data)
33+
}
34+
35+
inline fun ViewConfigBuilder.titleBuilder(title: SurfComponentBuilder.() -> Unit): ViewConfigBuilder =
36+
this.title(SurfComponentBuilder(title))
37+
38+
inline fun OpenContext.modifyConfig(modifier: ViewConfigBuilder.() -> Unit) =
39+
this.modifyConfig().apply(modifier)

surf-api-bukkit/surf-api-bukkit-plugin-test/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ tasks {
5353

5454
downloadPlugins {
5555
hangar("CommandAPI", libs.versions.commandapi.get())
56-
modrinth("packetevents", "2.9.1+spigot")
56+
// modrinth("packetevents", libs.versions.packetevents.plugin.get() + "spigot")
57+
url("https://ci.codemc.io/job/retrooper/job/packetevents/770/artifact/build/libs/packetevents-spigot-2.10.0-SNAPSHOT.jar")
5758
}
5859
}
5960
}

surf-api-bukkit/surf-api-bukkit-plugin-test/src/main/java/dev/slne/surf/surfapi/bukkit/test/BukkitPluginMain.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package dev.slne.surf.surfapi.bukkit.test;
22

33
import dev.jorel.commandapi.CommandAPI;
4+
import dev.slne.surf.surfapi.bukkit.api.inventory.framework.InventoryFrameworkExtensions;
45
import dev.slne.surf.surfapi.bukkit.api.packet.listener.SurfBukkitPacketListenerApi;
56
import dev.slne.surf.surfapi.bukkit.test.command.SurfApiTestCommand;
7+
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.inventory.TestInventoryView;
68
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.reflection.Reflection;
79
import dev.slne.surf.surfapi.bukkit.test.listener.ChatListener;
810
import org.bukkit.plugin.java.JavaPlugin;
@@ -18,7 +20,7 @@ public class BukkitPluginMain extends JavaPlugin {
1820
@Override
1921
public void onLoad() {
2022
SurfBukkitPacketListenerApi.Companion.getInstance().registerListeners(new ChatListener());
21-
23+
InventoryFrameworkExtensions.register(TestInventoryView.INSTANCE);
2224
// TestConfig config = SurfCore#Api.getCore()
2325
// .createModernYamlConfig(TestConfig.class, getDataFolder().toPath(), "test.yml");
2426
// TestConfig2 config2 = SurfCoreApi.getCore()

surf-api-bukkit/surf-api-bukkit-plugin-test/src/main/java/dev/slne/surf/surfapi/bukkit/test/command/SurfApiTestCommand.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dev.jorel.commandapi.CommandAPICommand;
44
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.CommandExceptionTest;
55
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.GlowingTest;
6+
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.InventoryTest;
67
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.MaxStacksizeTest;
78
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.PacketEntityTest;
89
import dev.slne.surf.surfapi.bukkit.test.command.subcommands.PacketLoreTest;
@@ -33,7 +34,8 @@ public SurfApiTestCommand() {
3334
new MaxStacksizeTest("maxstacksize"),
3435
new VisualizerTest("visualizer"),
3536
new GlowingTest("glowing"),
36-
new PaginationTest("pagination")
37+
new PaginationTest("pagination"),
38+
new InventoryTest("inventory")
3739
);
3840
}
3941
}

0 commit comments

Comments
 (0)