client
client copied to clipboard
bug: CollectionSettings do not trigger a value listener
Code example:
visibleList.listeners.add {
MessageSendHelper.sendRawChatMessage(visibleList.value.toString())
mc.renderGlobal.loadRenderers()
}
This code is never triggered when calling visibleList.add()
, or something similar.
You also cannot do visibleList.value = someNewList
due to value
being a val
.
Here (https://github.com/kami-blue/client/blob/1dd4db30f390d3d8b0d2359878e6d7597167ba94/src/main/kotlin/org/kamiblue/client/setting/settings/MutableSetting.kt#L36) is the gremlin responsible. It assumes you're always setting the value by doing setting.value = something
, which clearly isn't the case for a Collection
Theoretically the valueListeners should also work for this as well, when this is fixed
A temporary workaround has been added to CollectionSetting by #2186, I don't know of a better way of doing it