Skip to content

Commit

Permalink
impl example
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt-MX committed Jul 4, 2024
1 parent 3961e0c commit 223cc07
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 45 deletions.
2 changes: 1 addition & 1 deletion api/.gradle/caches/paperweight/taskCache/reobfJar.log
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Command: C:\Program Files\Java\jdk-17\bin\java.exe -Xmx1G -classpath C:\Users\Mangr\.gradle\caches\modules-2\files-2.1\net.fabricmc\tiny-remapper\0.10.1\c293b2384ae12af74f407fa3aaa553bba4ac6763\tiny-remapper-0.10.1-fat.jar net.fabricmc.tinyremapper.Main D:\PC\Projects\KtBukkitGui\api\build\libs\ktgui-2.4.1-dev-all.jar D:\PC\Projects\KtBukkitGui\api\build\libs\api-2.4.1.jar C:\Users\Mangr\.gradle\caches\paperweight-userdev\ff775525efc29c3503a07d1006e63e5695a742b7505cf63e157d49d32419c69f\module\io.papermc.paper\dev-bundle\1.20.4-R0.1-SNAPSHOT\paperweight\setupCache\extractDevBundle.dir\data\mojang+yarn-spigot-reobf.tiny mojang+yarn spigot C:\Users\Mangr\.gradle\caches\paperweight-userdev\ff775525efc29c3503a07d1006e63e5695a742b7505cf63e157d49d32419c69f\module\io.papermc.paper\dev-bundle\1.20.4-R0.1-SNAPSHOT\paperweight\setupCache\applyMojangMappedPaperclipPatch.jar --threads=1
Finished after 2836.52 ms.
Finished after 2771.45 ms.
Original file line number Diff line number Diff line change
Expand Up @@ -54,22 +54,4 @@ class GuiCramMultiPageScreen(
}

fun cramMultiPageScreen(title: Component, rows: Int = 6, block: GuiCramMultiPageScreen.() -> Unit) =
GuiCramMultiPageScreen(title, rows).apply(block)

fun main() {
val gui = cramMultiPageScreen(!"Materials") {
reserve(last() - 8..last())

button(Material.SPECTRAL_ARROW) {
named(!"&aNext")
click.left { navigateNextPage() }
} slot last()

button(Material.SPECTRAL_ARROW) {
named(!"&cLast")
click.left { navigatePreviousPage() }
} slot last() - 8

+Material.values().map { button(it) {} }
}
}
GuiCramMultiPageScreen(title, rows).apply(block)
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.mattmx.ktgui.event.EventCallback
import com.mattmx.ktgui.utils.not
import net.kyori.adventure.text.Component
import org.bukkit.Material
import org.bukkit.entity.Player
import java.util.*
import kotlin.math.max
import kotlin.math.min
Expand All @@ -23,6 +24,10 @@ open class GuiMultiPageScreen(
val pageChange = EventCallback<Int>()
val pages = Collections.synchronizedList(arrayListOf<GuiScreen>())

override fun open(player: Player) {
TODO()
}

infix fun page(block: GuiScreen.() -> Unit) = page(null, block)
open fun page(index: Int? = null, block: GuiScreen.() -> Unit) = apply {
val sub = GuiScreen(Component.empty(), rows).apply(block)
Expand All @@ -43,26 +48,4 @@ open class GuiMultiPageScreen(
}

fun multiPageGui(title: Component, rows: Int = 6, block: GuiMultiPageScreen.() -> Unit) =
GuiMultiPageScreen(title, rows).apply(block)

fun main() {
val gui = multiPageGui(!"Test") {
button(Material.SPECTRAL_ARROW) {
named(!"&aLast")
click.left { navigatePreviousPage() }
} slot last()

button(Material.SPECTRAL_ARROW) {
named(!"&aNext")
click.left { navigateNextPage() }
} slot last()

page {

}

page {

}
}
}
GuiMultiPageScreen(title, rows).apply(block)
2 changes: 1 addition & 1 deletion plugin/.gradle/caches/paperweight/taskCache/reobfJar.log
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
Command: C:\Program Files\Java\jdk-17\bin\java.exe -Xmx1G -classpath C:\Users\Mangr\.gradle\caches\modules-2\files-2.1\net.fabricmc\tiny-remapper\0.10.1\c293b2384ae12af74f407fa3aaa553bba4ac6763\tiny-remapper-0.10.1-fat.jar net.fabricmc.tinyremapper.Main D:\PC\Projects\KtBukkitGui\plugin\build\libs\ktgui-plugin-2.4.1-dev-all.jar D:\PC\Projects\KtBukkitGui\plugin\build\libs\plugin-unspecified.jar C:\Users\Mangr\.gradle\caches\paperweight-userdev\ff775525efc29c3503a07d1006e63e5695a742b7505cf63e157d49d32419c69f\module\io.papermc.paper\dev-bundle\1.20.4-R0.1-SNAPSHOT\paperweight\setupCache\extractDevBundle.dir\data\mojang+yarn-spigot-reobf.tiny mojang+yarn spigot C:\Users\Mangr\.gradle\caches\paperweight-userdev\ff775525efc29c3503a07d1006e63e5695a742b7505cf63e157d49d32419c69f\module\io.papermc.paper\dev-bundle\1.20.4-R0.1-SNAPSHOT\paperweight\setupCache\applyMojangMappedPaperclipPatch.jar --threads=1
Finished after 2562.93 ms.
Finished after 1940.16 ms.
4 changes: 3 additions & 1 deletion plugin/src/main/kotlin/com/mattmx/ktgui/KotlinGui.kt
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ class KotlinGui : JavaPlugin() {
"java-new" to { JavaUpdateExample() },
"refresh" to { RefreshBlockExample() },
"config-gui" to { GuiConfigExample() },
"refresh-scoreboard" to { signalScoreboardExample }
"refresh-scoreboard" to { signalScoreboardExample },
"new-multi-screen-cram" to { NewCramMultiPageExample() },
"new-multi-screen" to { NewMultiPageExample() }
)
GuiHookExample.registerListener(this)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.mattmx.ktgui.examples

import com.mattmx.ktgui.components.screen.pagination.cramMultiPageScreen
import com.mattmx.ktgui.dsl.button
import com.mattmx.ktgui.utils.not
import org.bukkit.Material