aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/commands/rome.kt
diff options
context:
space:
mode:
authornea <nea@nea.moe>2023-09-06 03:10:44 +0200
committernea <nea@nea.moe>2023-09-06 03:11:59 +0200
commit0f9ec29648e1b9840813b24587b8a660f6ab4531 (patch)
tree3edd1ff739d9a8268680a94709a264bff0ddb09b /src/main/kotlin/moe/nea/firmament/commands/rome.kt
parent12292270511d5d37e9c21307fb1e09d400ae1ff4 (diff)
downloadFirmament-0f9ec29648e1b9840813b24587b8a660f6ab4531.tar.gz
Firmament-0f9ec29648e1b9840813b24587b8a660f6ab4531.tar.bz2
Firmament-0f9ec29648e1b9840813b24587b8a660f6ab4531.zip
Add command for toggling config options
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/commands/rome.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/commands/rome.kt69
1 files changed, 60 insertions, 9 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/commands/rome.kt b/src/main/kotlin/moe/nea/firmament/commands/rome.kt
index be2aefd..3d62408 100644
--- a/src/main/kotlin/moe/nea/firmament/commands/rome.kt
+++ b/src/main/kotlin/moe/nea/firmament/commands/rome.kt
@@ -9,21 +9,18 @@ package moe.nea.firmament.commands
import com.mojang.brigadier.CommandDispatcher
import com.mojang.brigadier.arguments.StringArgumentType.string
import io.ktor.client.statement.*
-import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource
-import net.minecraft.text.Text
import moe.nea.firmament.apis.UrsaManager
import moe.nea.firmament.features.inventory.storageoverlay.StorageOverlayScreen
import moe.nea.firmament.features.world.FairySouls
import moe.nea.firmament.gui.config.AllConfigsGui
+import moe.nea.firmament.gui.config.BooleanHandler
+import moe.nea.firmament.gui.config.ManagedOption
import moe.nea.firmament.gui.profileviewer.ProfileViewer
import moe.nea.firmament.repo.HypixelStaticData
import moe.nea.firmament.repo.RepoManager
-import moe.nea.firmament.util.FirmFormatters
-import moe.nea.firmament.util.MC
-import moe.nea.firmament.util.SBData
-import moe.nea.firmament.util.ScreenUtil
-import moe.nea.firmament.util.SkyblockId
-import moe.nea.firmament.util.unformattedString
+import moe.nea.firmament.util.*
+import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource
+import net.minecraft.text.Text
fun firmamentCommand() = literal("firmament") {
@@ -31,11 +28,65 @@ fun firmamentCommand() = literal("firmament") {
thenExecute {
AllConfigsGui.showAllGuis()
}
+ thenLiteral("toggle") {
+ thenArgument("config", string()) { config ->
+ suggestsList {
+ AllConfigsGui.allConfigs.asSequence().map { it.name }.asIterable()
+ }
+ thenArgument("property", string()) { property ->
+ suggestsList {
+ (AllConfigsGui.allConfigs.find { it.name == this[config] }?:return@suggestsList listOf())
+ .allOptions.entries.asSequence().filter { it.value.handler is BooleanHandler }.map { it.key }
+ .asIterable()
+ }
+ thenExecute {
+ val config = this[config]
+ val property = this[property]
+
+ val configObj = AllConfigsGui.allConfigs.find { it.name == config }
+ if (configObj == null) {
+ source.sendFeedback(Text.translatable("firmament.command.toggle.no-config-found", config))
+ return@thenExecute
+ }
+ val propertyObj = configObj.allOptions[property]
+ if (propertyObj == null) {
+ source.sendFeedback(
+ Text.translatable(
+ "firmament.command.toggle.no-property-found",
+ property
+ )
+ )
+ return@thenExecute
+ }
+ if (propertyObj.handler !is BooleanHandler) {
+ source.sendFeedback(
+ Text.translatable(
+ "firmament.command.toggle.not-a-toggle",
+ property
+ )
+ )
+ return@thenExecute
+ }
+ propertyObj as ManagedOption<Boolean>
+ propertyObj.value = !propertyObj.value
+ configObj.save()
+ source.sendFeedback(
+ Text.translatable(
+ "firmament.command.toggle.toggled",
+ configObj.labelText,
+ propertyObj.labelText,
+ Text.translatable("firmament.toggle.${propertyObj.value}")
+ )
+ )
+ }
+ }
+ }
+ }
}
thenLiteral("storage") {
thenExecute {
ScreenUtil.setScreenLater(StorageOverlayScreen())
- MC.player?.networkHandler?.sendChatCommand("ec")
+ MC.player?.networkHandler?.sendChatCommand("storage")
}
}
thenLiteral("repo") {