[fix] SetCommand not displaying the correct value after changing

closes #1831
This commit is contained in:
Xiaro 2021-01-09 18:25:20 -05:00
parent bad2346f36
commit bf4c97c2f6
No known key found for this signature in database
GPG Key ID: 996D265D6E155377
3 changed files with 12 additions and 28 deletions

@ -1 +1 @@
Subproject commit c9be6984ec7f6aba0dcf0b5ea3abe3d1004e4ee6
Subproject commit 62cbb2de30be66dd9fc9b3e279203311d4f3a299

View File

@ -7,8 +7,6 @@ import me.zeroeightsix.kami.setting.settings.impl.primitive.EnumSetting
import me.zeroeightsix.kami.util.text.MessageSendHelper
import me.zeroeightsix.kami.util.text.format
import me.zeroeightsix.kami.util.text.formatValue
import me.zeroeightsix.kami.util.threads.onMainThread
import me.zeroeightsix.kami.util.threads.onMainThreadW
import net.minecraft.util.text.TextFormatting
object SetCommand : ClientCommand(
@ -20,27 +18,23 @@ object SetCommand : ClientCommand(
module("module") { moduleArg ->
string("setting") { settingArg ->
literal("toggle") {
executeAsync {
execute {
val module = moduleArg.value
val settingName = settingArg.value
val setting = module.fullSettingList.find { it.name.equals(settingName, true) }
if (setting == null) {
sendUnknownSettingMessage(module.name, settingName)
return@executeAsync
return@execute
}
when (setting) {
is BooleanSetting -> {
onMainThread {
setting.value = !setting.value
}
setting.value = !setting.value
}
is EnumSetting -> {
onMainThread {
setting.nextValue()
}
setting.nextValue()
}
else -> {
@ -53,23 +47,21 @@ object SetCommand : ClientCommand(
}
greedy("value") { valueArg ->
executeAsync("Set the value of a module's setting") {
execute("Set the value of a module's setting") {
val module = moduleArg.value
val settingName = settingArg.value
val setting = module.fullSettingList.find { it.name.equals(settingName, true) }
if (setting == null) {
sendUnknownSettingMessage(module.name, settingName)
return@executeAsync
return@execute
}
try {
val value = valueArg.value
onMainThreadW {
setting.setValue(value)
MessageSendHelper.sendChatMessage("Set ${formatValue(setting.name)} to ${formatValue(value)}.")
}
setting.setValue(value)
MessageSendHelper.sendChatMessage("Set ${formatValue(setting.name)} to ${formatValue(value)}.")
} catch (e: Exception) {
MessageSendHelper.sendChatMessage("Unable to set value! ${TextFormatting.RED format e.message.toString()}")
KamiMod.LOG.info("Unable to set value!", e)
@ -77,14 +69,14 @@ object SetCommand : ClientCommand(
}
}
executeAsync("Show the value of a setting") {
execute("Show the value of a setting") {
val module = moduleArg.value
val settingName = settingArg.value
val setting = module.fullSettingList.find { it.name.equals(settingName, true) }
if (setting == null) {
sendUnknownSettingMessage(module.name, settingName)
return@executeAsync
return@execute
}
MessageSendHelper.sendChatMessage("${formatValue(settingName)} is a " +
@ -94,7 +86,7 @@ object SetCommand : ClientCommand(
}
}
executeAsync("List settings for a module") {
execute("List settings for a module") {
val module = moduleArg.value
val settingList = module.fullSettingList

View File

@ -1,7 +1,5 @@
package me.zeroeightsix.kami.util.text
import me.zeroeightsix.kami.KamiMod
interface Detector {
infix fun detect(input: CharSequence): Boolean
@ -23,9 +21,6 @@ interface PrefixDetector : Detector, RemovableDetector {
override fun removedOrNull(input: CharSequence) = prefixes.firstOrNull(input::startsWith)?.let {
input.removePrefix(it)
} ?: run {
KamiMod.LOG.debug("Could not replace type ${this.javaClass.simpleName} for message \"$input\"")
null
}
}
@ -38,8 +33,5 @@ interface RegexDetector : Detector, RemovableDetector {
override fun removedOrNull(input: CharSequence): CharSequence? = matchedRegex(input)?.let { regex ->
input.replace(regex, "").takeIf { it.isNotBlank() }
} ?: run {
KamiMod.LOG.debug("Could not replace type ${this.javaClass.simpleName} for message \"$input\"")
null
}
}