WIP Allow overriding offerSingle and removeSingle #3930
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a very rough draft just to show some outlines.
Tries to solve the problem that offerSingle retrieves the whole list, modifies it and then offers it back as a set. This works fine for most things but it gets a bit awkward for potion effects as they can contain attributes which are reset, for example absorption. This causes you to get new set of absorption hearts every time new potion effects are offered. This is also a performance improvement in a sense.
I tried to go the alternative route which was to compare if the same effects are offered but it feels a bit awkward and clumsy.
Some open questions are:
instanceof
checks?