Skip to content

Commit

Permalink
CollectionSetting backwards compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
rfresh2 committed Mar 9, 2023
1 parent b60e697 commit 804c197
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ object InventoryManager : Module(
private val pauseMovement by setting("Pause Movement", true)
private val delay by setting("Delay Ticks", 1, 0..20, 1, unit = " ticks")
private val helpMend by setting("Help Mend", false, description = "Helps mending items by replacing the offhand item with low HP items of the same type")
val ejectList = setting(CollectionSetting("Eject List", defaultEjectList, String::class.java))
val ejectList = setting(CollectionSetting("Eject List", defaultEjectList))

enum class State {
IDLE, SAVING_ITEM, HELPING_MEND, REFILLING_BUILDING, REFILLING, EJECTING
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ object Scaffold : Module(
private val thickness by setting("Outline Thickness", 2f, .25f..4f, .25f, { outline && page == Page.RENDER }, description = "Changes thickness of the outline")
private val pendingBlockColor by setting("Pending Color", ColorHolder(0, 0, 255), visibility = { page == Page.RENDER })

val blockSelectionWhitelist = setting(CollectionSetting("BlockWhitelist", linkedSetOf("minecraft:obsidian"), String::class.java, { false }))
val blockSelectionBlacklist = setting(CollectionSetting("BlockBlacklist", blockBlacklist.map { it.registryName.toString() }.toMutableSet(), String::class.java, { false }))
val blockSelectionWhitelist = setting(CollectionSetting("BlockWhitelist", linkedSetOf("minecraft:obsidian"), { false }))
val blockSelectionBlacklist = setting(CollectionSetting("BlockBlacklist", blockBlacklist.map { it.registryName.toString() }.toMutableSet(), { false }))

private enum class Page {
GENERAL, RENDER
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,10 @@ object Search : Module(
private val hideF1 by setting("Hide on F1", true)

var overrideWarning by setting("Override Warning", false, { false })
val blockSearchList = setting(CollectionSetting("Search List", defaultSearchList, String::class.java, { false }))
val entitySearchList = setting(CollectionSetting("Entity Search List", linkedSetOf(EntityList.getKey((EntityItemFrame::class.java))!!.path), String::class.java, { false }))
val blockSearchDimensionFilter = setting(CollectionSetting("Block Dimension Filter", linkedSetOf(), DimensionFilter::class.java, { false }))
val entitySearchDimensionFilter = setting(CollectionSetting("Entity Dimension Filter", linkedSetOf(), DimensionFilter::class.java, { false }))
val blockSearchList = setting(CollectionSetting("Search List", defaultSearchList, { false }))
val entitySearchList = setting(CollectionSetting("Entity Search List", linkedSetOf(EntityList.getKey((EntityItemFrame::class.java))!!.path), { false }))
val blockSearchDimensionFilter = setting(CollectionSetting("Block Dimension Filter", linkedSetOf(), entryType = DimensionFilter::class.java, visibility = { false }))
val entitySearchDimensionFilter = setting(CollectionSetting("Entity Dimension Filter", linkedSetOf(), entryType = DimensionFilter::class.java, visibility = { false }))

private val blockRenderer = ESPRenderer()
private val entityRenderer = ESPRenderer()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ object Xray : Module(
) {
private val defaultVisibleList = linkedSetOf("minecraft:diamond_ore", "minecraft:iron_ore", "minecraft:gold_ore", "minecraft:portal", "minecraft:cobblestone")

val visibleList = setting(CollectionSetting("Visible List", defaultVisibleList, String::class.java, { false }))
val visibleList = setting(CollectionSetting("Visible List", defaultVisibleList, { false }))

@JvmStatic
fun shouldReplace(state: IBlockState): Boolean {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,25 @@ import com.lambda.client.setting.settings.ImmutableSetting
class CollectionSetting<E : Any, T : MutableCollection<E>>(
name: String,
override val value: T,
entryType: Class<E>,
visibility: () -> Boolean = { true },
description: String = "",
unit: String = ""
) : ImmutableSetting<T>(name, value, visibility, { _, input -> input }, description, unit), MutableCollection<E> by value {

constructor(
name: String,
value: T,
visibility: () -> Boolean = { true },
description: String = "",
unit: String = "",
entryType: Class<E>, // type must be set if the default collection is empty
) : this(name, value, visibility, description, unit) {
this.entryType = entryType
}

private var entryType: Class<E>? = null
override val defaultValue: T = valueClass.newInstance()
private val lockObject = Any()
private val type = TypeToken.getArray(entryType).type
val editListeners = ArrayList<() -> Unit>()

init {
Expand All @@ -41,7 +51,7 @@ class CollectionSetting<E : Any, T : MutableCollection<E>>(

override fun read(jsonElement: JsonElement?) {
jsonElement?.asJsonArray?.let {
val cacheArray = gson.fromJson<Array<E>>(it, type)
val cacheArray = gson.fromJson<Array<E>>(it, TypeToken.getArray(entryType ?: value.first().javaClass).type)
synchronized(lockObject) {
value.clear()
value.addAll(cacheArray)
Expand Down

0 comments on commit 804c197

Please sign in to comment.