Skip to content

Commit 1ba3e35

Browse files
committed
optional reach circle around the player in Printer. Adjustable height, color, width, depth test, etc
1 parent beb9ed4 commit 1ba3e35

25 files changed

Lines changed: 124 additions & 72 deletions

src/main/kotlin/com/lambda/config/Config.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,11 @@ abstract class Config(
397397
}
398398
}
399399

400+
if (currentLayer is ConfigBlockLayer.Root)
401+
throw IllegalStateException("Config block registered at the Root level. The Root config block should never be linked to any specific block")
402+
400403
return ConfigBlockWrapper(configBlock, currentLayer)
404+
.also { currentLayer.blockWrapper = it }
401405
}
402406

403407
@ConfigEntryDsl

src/main/kotlin/com/lambda/config/ConfigEditor.kt

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@ object ConfigEditor {
7171

7272
@ConfigEditorD5l
7373
context(editContext: EditContext.ConfigEditContext)
74-
fun hideAllBlocksExcept(
75-
vararg except: ConfigBlockProperty<ConfigBlock>,
74+
fun hideAllExcept(
75+
vararg except: KProperty0<*>,
7676
recursive: Boolean = true
77-
) = internalHideAllBlocksExcept(editContext.c.configBlockLayers, *except, recursive = recursive)
77+
) = internalHideAllExcept(editContext.c.configBlockLayers, *except, recursive = recursive)
7878

7979
@ConfigEditorD5l
8080
context(editContext: EditContext.BlockEditContext)
@@ -96,10 +96,10 @@ object ConfigEditor {
9696

9797
@ConfigEditorD5l
9898
context(editContext: EditContext.BlockEditContext)
99-
fun hideAllBlocksExcept(
100-
vararg except: ConfigBlockProperty<ConfigBlock>,
99+
fun hideAllExcept(
100+
vararg except: KProperty0<*>,
101101
recursive: Boolean = true
102-
) = internalHideAllBlocksExcept(editContext.block.layer, *except, recursive = recursive)
102+
) = internalHideAllExcept(editContext.block.layer, *except, recursive = recursive)
103103

104104
@ConfigEditorD5l
105105
context(_: EditContext)
@@ -148,7 +148,7 @@ object ConfigEditor {
148148

149149
@ConfigEditorD5l
150150
context(_: EditContext)
151-
fun <T : ConfigBlock> hideBlock(configBlock: ConfigBlockProperty<T>) {
151+
fun hideBlock(configBlock: ConfigBlockProperty<ConfigBlock>) {
152152
configBlock.configBlock.layer.settingLayers.forEach(::internalHide)
153153
}
154154

@@ -159,23 +159,11 @@ object ConfigEditor {
159159

160160
@ConfigEditorD5l
161161
context(_: EditContext)
162-
fun <T : ConfigBlock> hideBlockExcept(
163-
configBlock: ConfigBlockProperty<T>,
164-
vararg except: ConfigEntryProperty<*>,
162+
fun hideBlockExcept(
163+
configBlock: ConfigBlockProperty<ConfigBlock>,
164+
vararg except: KProperty0<*>,
165165
recursive: Boolean = true
166-
) {
167-
val exceptEntries = except.map<ConfigEntryProperty<*>, ConfigEntry<*>> { it.configEntry }
168-
fun processBlock(blockLayer: ConfigBlockLayer) {
169-
blockLayer.settingLayers.forEach { single ->
170-
if (single.entry !in exceptEntries) internalHide(single)
171-
}
172-
blockLayer.propertyLayers.forEach { single ->
173-
if (single.entry !in exceptEntries) internalHide(single)
174-
}
175-
if (recursive) blockLayer.layers.forEach(::processBlock)
176-
}
177-
processBlock(configBlock.configBlock.layer)
178-
}
166+
) { internalHideAllExcept(configBlock.configBlock.layer, *except, recursive = recursive) }
179167

180168
interface BasicEditBuilder {
181169
val entries: Collection<ConfigEntry<*>>
@@ -234,16 +222,23 @@ object ConfigEditor {
234222
}
235223
}
236224

237-
private fun internalHideAllBlocksExcept(
225+
private fun internalHideAllExcept(
238226
root: ConfigBlockLayer,
239-
vararg except: ConfigBlockProperty<ConfigBlock>,
227+
vararg except: KProperty0<*>,
240228
recursive: Boolean
241229
) {
242-
val exceptBlocks = except.map { it.configBlock.layer }
243-
fun processBlock(configBlockLayer: ConfigBlockLayer) {
244-
val unProtected = configBlockLayer !in exceptBlocks
245-
if (unProtected) configBlockLayer.settingLayers.forEach(::internalHide)
246-
if (unProtected || !recursive) configBlockLayer.layers.forEach(::processBlock)
230+
val exceptEntries = except.map { it.delegate }
231+
if (root.blockWrapper in exceptEntries) return
232+
fun processBlock(blockLayer: ConfigBlockLayer) {
233+
blockLayer.settingLayers.forEach { single ->
234+
if (single.entry !in exceptEntries) internalHide(single)
235+
}
236+
blockLayer.propertyLayers.forEach { single ->
237+
if (single.entry !in exceptEntries) internalHide(single)
238+
}
239+
if (recursive) blockLayer.layers.forEach { blockLayer ->
240+
if (blockLayer.blockWrapper !in exceptEntries) processBlock(blockLayer)
241+
}
247242
}
248243
processBlock(root)
249244
}

src/main/kotlin/com/lambda/config/EntryLayer.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ interface EntryLayer<T : ConfigEntry<*>> : Nameable {
7777
enum class MultipleLayerType { Root, Tab, Group }
7878

7979
sealed class ConfigBlockLayer {
80+
var blockWrapper: ConfigBlockWrapper<*>? = null
8081
open val parent: ConfigBlockLayer? = null
8182
val layers = mutableListOf<Block>()
8283
val settingLayers = mutableListOf<EntryLayer.Single<Setting<*>>>()

src/main/kotlin/com/lambda/config/settings/blocks/BuildSettings.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ class BuildSettings(override val c: Config) : BuildConfig, ConfigBlock {
4747
@Group(PACKET_LIMITS_GROUP) override val interactionLimit by c.setting("Interaction Limit", 9, 1..20, 1, "The maximum allowed interaction packets to be sent to the server per given timeframe")
4848
@Group(PACKET_LIMITS_GROUP) override val inventoryLimit by c.setting("Inventory Limit", 5, 1..100, 1, "The maximum allowed inventory packets to be sent to the server per given timeframe")
4949

50-
@Group(REACH_GROUP) override var blockReach by c.setting("Interact Reach", 4.5, 1.0..7.0, 0.01, "Maximum block interaction distance")
51-
@Group(REACH_GROUP) override var entityReach by c.setting("Attack Reach", 3.0, 1.0..7.0, 0.01, "Maximum entity interaction distance")
50+
@Group(REACH_GROUP) override var blockReach by c.setting("Block Reach", 4.5, 1.0..7.0, 0.01, "Maximum block interaction distance")
51+
@Group(REACH_GROUP) override var entityReach by c.setting("Entity Reach", 3.0, 1.0..7.0, 0.01, "Maximum entity interaction distance")
5252
override val scanReach: Double get() = max(entityReach, blockReach)
5353

5454
@Group(SCAN_GROUP) override val checkSideVisibility by c.setting("Visibility Check", false, "Whether to check if an AABB side is visible")

src/main/kotlin/com/lambda/module/modules/combat/AutoArmor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package com.lambda.module.modules.combat
1919

20-
import com.lambda.config.ConfigEditor.hideAllBlocksExcept
20+
import com.lambda.config.ConfigEditor.hideAllExcept
2121
import com.lambda.config.automation.AutomationConfig.Companion.setDefaultAutomationConfig
2222
import com.lambda.config.settings.complex.Bind
2323
import com.lambda.config.settings.complex.KeybindSetting.Companion.onPress
@@ -98,7 +98,7 @@ object AutoArmor : Module(
9898
init {
9999
setDefaultAutomationConfig()
100100
.withEdits {
101-
hideAllBlocksExcept(::inventoryConfig)
101+
hideAllExcept(::inventoryConfig)
102102
}
103103

104104
listen<TickEvent.Pre> {

src/main/kotlin/com/lambda/module/modules/combat/AutoTotem.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package com.lambda.module.modules.combat
1919

20-
import com.lambda.config.ConfigEditor.hideAllBlocksExcept
20+
import com.lambda.config.ConfigEditor.hideAllExcept
2121
import com.lambda.config.automation.AutomationConfig.Companion.setDefaultAutomationConfig
2222
import com.lambda.config.withEdits
2323
import com.lambda.context.SafeContext
@@ -58,7 +58,7 @@ object AutoTotem : Module(
5858
init {
5959
setDefaultAutomationConfig()
6060
.withEdits {
61-
hideAllBlocksExcept(::inventoryConfig)
61+
hideAllExcept(::inventoryConfig)
6262
}
6363

6464
listen<TickEvent.Pre> {

src/main/kotlin/com/lambda/module/modules/combat/CrystalAura.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
package com.lambda.module.modules.combat
1919

2020
import com.lambda.config.ConfigEditor.hide
21-
import com.lambda.config.ConfigEditor.hideAllBlocksExcept
21+
import com.lambda.config.ConfigEditor.hideAllExcept
2222
import com.lambda.config.Tab
2323
import com.lambda.config.automation.AutomationConfig.Companion.setDefaultAutomationConfig
2424
import com.lambda.config.settings.blocks.TargetingSettings
@@ -148,7 +148,7 @@ object CrystalAura : Module(
148148
init {
149149
setDefaultAutomationConfig()
150150
.withEdits {
151-
hideAllBlocksExcept(::buildConfig, ::rotationConfig, ::hotbarConfig, ::inventoryConfig)
151+
hideAllExcept(::buildConfig, ::rotationConfig, ::hotbarConfig, ::inventoryConfig)
152152
buildConfig.apply {
153153
hide(
154154
::pathing, ::stayInRange, ::collectDrops, ::spleefEntities,

src/main/kotlin/com/lambda/module/modules/combat/KillAura.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package com.lambda.module.modules.combat
1919

2020
import com.lambda.config.ConfigEditor.editSetting
2121
import com.lambda.config.ConfigEditor.hide
22-
import com.lambda.config.ConfigEditor.hideAllBlocksExcept
22+
import com.lambda.config.ConfigEditor.hideAllExcept
2323
import com.lambda.config.Tab
2424
import com.lambda.config.automation.AutomationConfig.Companion.setDefaultAutomationConfig
2525
import com.lambda.config.settings.blocks.TargetingSettings
@@ -90,7 +90,7 @@ object KillAura : Module(
9090
init {
9191
setDefaultAutomationConfig()
9292
.withEdits {
93-
hideAllBlocksExcept(::buildConfig, ::hotbarConfig, ::rotationConfig)
93+
hideAllExcept(::buildConfig, ::hotbarConfig, ::rotationConfig)
9494
buildConfig.apply {
9595
hide(
9696
::pathing, ::stayInRange, ::collectDrops,

src/main/kotlin/com/lambda/module/modules/debug/SilentSwap.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package com.lambda.module.modules.debug
1919

20-
import com.lambda.config.ConfigEditor.hideAllBlocksExcept
20+
import com.lambda.config.ConfigEditor.hideAllExcept
2121
import com.lambda.config.automation.AutomationConfig.Companion.setDefaultAutomationConfig
2222
import com.lambda.config.withEdits
2323
import com.lambda.event.events.PlayerEvent
@@ -35,7 +35,7 @@ object SilentSwap : Module(
3535
init {
3636
setDefaultAutomationConfig()
3737
.withEdits {
38-
hideAllBlocksExcept(::hotbarConfig)
38+
hideAllExcept(::hotbarConfig)
3939
}
4040

4141
listen<PlayerEvent.Attack.Block> {

src/main/kotlin/com/lambda/module/modules/movement/BetterFirework.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ package com.lambda.module.modules.movement
2020
import com.lambda.Lambda
2121
import com.lambda.Lambda.mc
2222
import com.lambda.config.ConfigEditor.editSetting
23-
import com.lambda.config.ConfigEditor.hideAllBlocksExcept
23+
import com.lambda.config.ConfigEditor.hideAllExcept
2424
import com.lambda.config.automation.AutomationConfig.Companion.setDefaultAutomationConfig
2525
import com.lambda.config.settings.complex.Bind
2626
import com.lambda.config.settings.complex.KeybindSetting.Companion.onPress
@@ -103,7 +103,7 @@ object BetterFirework : Module(
103103
init {
104104
setDefaultAutomationConfig()
105105
.withEdits {
106-
hideAllBlocksExcept(::hotbarConfig, ::inventoryConfig)
106+
hideAllExcept(::hotbarConfig, ::inventoryConfig)
107107
hotbarConfig::tickStageMask.editSetting { defaultValue(mutableSetOf(TickEvent.Pre)) }
108108
inventoryConfig::tickStageMask.editSetting { defaultValue(mutableSetOf(TickEvent.Pre)) }
109109
}

0 commit comments

Comments
 (0)