client icon indicating copy to clipboard operation
client copied to clipboard

bug: CollectionSettings do not trigger a value listener

Open 5HT2 opened this issue 3 years ago • 3 comments

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.

5HT2 avatar Apr 19 '21 01:04 5HT2

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

5HT2 avatar Apr 19 '21 01:04 5HT2

Theoretically the valueListeners should also work for this as well, when this is fixed

5HT2 avatar Apr 19 '21 02:04 5HT2

A temporary workaround has been added to CollectionSetting by #2186, I don't know of a better way of doing it

5HT2 avatar Apr 19 '21 03:04 5HT2