NamespacedKey based plugin chunk tickets#4173
Conversation
Proximyst
left a comment
There was a problem hiding this comment.
Looks pretty good so far!
aikar
left a comment
There was a problem hiding this comment.
good bit of changes needed. overall dont want to expose actual numeric levels, and want to improve the api signatures more than spigot used.
and while the system supports putting multiple tickets of the same key at different levels, dont want to support it over api as we cant guarantee that, and it also makes it more complicated.
if people want to have multiple tickets at different levels, they can use multiple keys to achieve that.
|
Thanks for the review, I shall make these changes. |
|
I apologize for the delays, I finally made the requested changes. There is one thing that's definitely not finished yet (they produce a compile error at the moment): there are two getter methods that list chunks that have these keyed plugin chunk tickets. What should they return?
Another questionable implementation is All of these WIP / not finished methods have TODOs in them, that's an easy way to find them. |
|
I think you have a slight bit of confusion. TickingLevel.NONE is still going to be returned in Loaded Chunks. These chunks will be loaded, just at BORDER status. TickingLevel.NONE = Border |
|
They will be loaded, but only asynchronously as far as I know, but I might be wrong. So the getter method might catch them when they are not yet loaded, just being loaded. In this case a |
|
Hmm I see, in that this API is meant to return chunks that have a plugin ticket but since they are loaded async does present a window they havent finished yet. Returning a collection of Long's does make more sense than chunks, and people can re-map it to Chunk objects and filter by loaded status on their own if needed. Or even provide a .getKeyedPluginChunkTicketLoadedChunks that does the filtering for you. |
|
Thank you for your response, I shall make the necessary changes and finalize the PR. |
|
I am considering this done, apart from testing: I am yet to actually test these additions in action. Ignore the failed GitHub Actions check. It worked fine locally on WSL and on Git Bash (on 2 separate PCs) and Z750 also believes that GitHub Actions is the culprit here. |
|
I have finished testing, everything seems to be in order, I am marking this PR as ready, non-draft. For possible future uses, this is what I used for testing: https://pastebin.com/S1B4NKAC |
|
The CI does not seem to be in order, actually :p |
Have you read the 2nd paragraph of this comment of mine? #4173 (comment) |
|
Tried forcepushing to have GH Actions retry? We can't merge without it passing 😅 |
f0a97c8 to
0952726
Compare
|
CI is having none of it by the looks of it |
|
Well that's because it's trying to merge 1.16.3 code into 1.16.4; there will quite often be some kind of issue. I've rebased your PR for you. |
0952726 to
feb5843
Compare
|
Makes sense, thank you. |
…SimplePluginManager
|
I have improved the JavaDocs. There was some outdated stuff in there, I removed that. I improved the wording here and there. I also documented what happens when chunk tickets are added to unloaded chunks (the chunk gets loaded async). I have also moved the I have moved the Still awaiting review. |
|
Closing PR, as it seems that this has gone inactive. If you're still interested in continuing this PR, feel free to leave a comment and we can reopen it for you. 😄 |
|
I am still interested in continuing this PR. I am just waiting for a review. |
Would you be able to rebase it? 😄 |
|
See above, if you are still interested in continuing, please feel free to rebase this pr. 😄 |
A work-in-progress (at the time of creation) implementation of NamespacedKey based plugin chunk tickets. The reasoning behind the creation of this API can be found in #4147
State of draft PR:
yet to be testedyet to receive JavaDocs