feat: Add /firm search command
This commit is contained in:
@@ -4,6 +4,12 @@ import io.github.notenoughupdates.moulconfig.observer.ObservableList
|
||||
import io.github.notenoughupdates.moulconfig.xml.Bind
|
||||
import net.minecraft.client.gui.screen.Screen
|
||||
import net.minecraft.text.Text
|
||||
import moe.nea.firmament.annotations.Subscribe
|
||||
import moe.nea.firmament.commands.RestArgumentType
|
||||
import moe.nea.firmament.commands.get
|
||||
import moe.nea.firmament.commands.thenArgument
|
||||
import moe.nea.firmament.commands.thenExecute
|
||||
import moe.nea.firmament.events.CommandEvent
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.MoulConfigUtils
|
||||
import moe.nea.firmament.util.ScreenUtil.setScreenLater
|
||||
@@ -66,7 +72,7 @@ object AllConfigsGui {
|
||||
return MoulConfigUtils.loadScreen("config/main", CategoryView(), parent)
|
||||
}
|
||||
|
||||
fun makeScreen(parent: Screen? = null): Screen {
|
||||
fun makeScreen(search: String? = null, parent: Screen? = null): Screen {
|
||||
val wantedKey = when {
|
||||
ConfigConfig.enableMoulConfig -> "moulconfig"
|
||||
ConfigConfig.enableYacl -> "yacl"
|
||||
@@ -74,10 +80,23 @@ object AllConfigsGui {
|
||||
}
|
||||
val provider = FirmamentConfigScreenProvider.providers.find { it.key == wantedKey }
|
||||
?: FirmamentConfigScreenProvider.providers.first()
|
||||
return provider.open(parent)
|
||||
return provider.open(search, parent)
|
||||
}
|
||||
|
||||
fun showAllGuis() {
|
||||
setScreenLater(makeScreen())
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun registerCommands(event: CommandEvent.SubCommand) {
|
||||
event.subcommand("search") {
|
||||
thenArgument("search", RestArgumentType) { search ->
|
||||
thenExecute {
|
||||
val search = this[search]
|
||||
setScreenLater(makeScreen(search = search))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ class BuiltInConfigScreenProvider : FirmamentConfigScreenProvider {
|
||||
override val key: String
|
||||
get() = "builtin"
|
||||
|
||||
override fun open(parent: Screen?): Screen {
|
||||
override fun open(search: String?, parent: Screen?): Screen {
|
||||
return AllConfigsGui.makeBuiltInScreen(parent)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ interface FirmamentConfigScreenProvider {
|
||||
val key: String
|
||||
val isEnabled: Boolean get() = true
|
||||
|
||||
fun open(parent: Screen?): Screen
|
||||
fun open(search: String?, parent: Screen?): Screen
|
||||
|
||||
companion object : CompatLoader<FirmamentConfigScreenProvider>(FirmamentConfigScreenProvider::class) {
|
||||
val providers by lazy {
|
||||
|
||||
Reference in New Issue
Block a user