summaryrefslogtreewikicommitdiff
path: root/bukkit/src/Inventory.kt
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2026-03-26 23:15:33 -0400
committerFreya Murphy <freya@freyacat.org>2026-03-27 23:09:23 -0400
commitf8322cd21cde68a72b05efbad3a05b8e67c0bdd0 (patch)
treed7e60bc8fedadc8fa7ae725571cad1f398eaf6dc /bukkit/src/Inventory.kt
downloadkenshinshideandseek2-f8322cd21cde68a72b05efbad3a05b8e67c0bdd0.tar.gz
kenshinshideandseek2-f8322cd21cde68a72b05efbad3a05b8e67c0bdd0.tar.bz2
kenshinshideandseek2-f8322cd21cde68a72b05efbad3a05b8e67c0bdd0.zip
initial
Diffstat (limited to 'bukkit/src/Inventory.kt')
-rw-r--r--bukkit/src/Inventory.kt59
1 files changed, 59 insertions, 0 deletions
diff --git a/bukkit/src/Inventory.kt b/bukkit/src/Inventory.kt
new file mode 100644
index 0000000..2a1d7ea
--- /dev/null
+++ b/bukkit/src/Inventory.kt
@@ -0,0 +1,59 @@
+package cat.freya.khs.bukkit
+
+import cat.freya.khs.player.Inventory as KhsInventory
+import cat.freya.khs.player.PlayerInventory as KhsPlayerInventory
+import cat.freya.khs.world.Item
+import org.bukkit.inventory.Inventory as BukkitInventory
+import org.bukkit.inventory.PlayerInventory as BukkitPlayerInventory
+
+open class BukkitKhsInventory(
+ open val shim: BukkitKhsShim,
+ open val inner: BukkitInventory,
+ open override val title: String?,
+) : KhsInventory {
+ override fun get(index: UInt): Item? = inner.getItem(index.toInt())?.let { toKhsItem(it) }
+
+ override fun set(index: UInt, item: Item) =
+ inner.setItem(index.toInt(), (item as BukkitKhsItem).inner)
+
+ override fun remove(item: Item) = inner.remove((item as BukkitKhsItem).inner)
+
+ override var contents: List<Item?>
+ get() = inner.contents.map { toKhsItem(it) }
+ set(contents: List<Item?>) =
+ inner.setContents(contents.map { (it as BukkitKhsItem).inner }.toTypedArray())
+
+ override fun clear() {
+ inner.clear()
+ }
+}
+
+class BukkitKhsPlayerInventory(
+ override val shim: BukkitKhsShim,
+ override val inner: BukkitPlayerInventory,
+ override val title: String?,
+) : BukkitKhsInventory(shim, inner, title), KhsPlayerInventory {
+ override var helmet: Item?
+ get() = toKhsItem(inner.helmet)
+ set(item: Item?) {
+ inner.helmet = (item as? BukkitKhsItem)?.inner
+ }
+
+ override var chestplate: Item?
+ get() = toKhsItem(inner.chestplate)
+ set(item: Item?) {
+ inner.chestplate = (item as? BukkitKhsItem)?.inner
+ }
+
+ override var leggings: Item?
+ get() = toKhsItem(inner.leggings)
+ set(item: Item?) {
+ inner.leggings = (item as? BukkitKhsItem)?.inner
+ }
+
+ override var boots: Item?
+ get() = toKhsItem(inner.boots)
+ set(item: Item?) {
+ inner.boots = (item as? BukkitKhsItem)?.inner
+ }
+}