Skip to content

Add RegistryRetriever for future use in registry API#12635

Draft
Machine-Maker wants to merge 92 commits intomainfrom
feature/RegistryRetriever
Draft

Add RegistryRetriever for future use in registry API#12635
Machine-Maker wants to merge 92 commits intomainfrom
feature/RegistryRetriever

Conversation

@Machine-Maker
Copy link
Member

No description provided.

lynxplay and others added 30 commits May 28, 2025 13:23
Initial move of patches to rejected and non rejected source patches to
publish to patch-roulette.
ExperienceOrb award methods were consolidated to avoid this large of a
conflict in future versions for what is a single override.
Callers are expected to now pass null to the 3rd overload param as well.
Note that a method was removed on Armorstand for a bug fix that makes literally zero sense, probably very old.
Also added and fixed the logic for leashes, as any entity can hold leashes but anything can be leashed.

Also very sad hack used to detect if the value was set.

/net/minecraft/world/level/block/entity/trialspawner/

/net/minecraft/server/network
Some blocks

LayeredCauldronBlock.java.patch has strange diff-- the comment seems to be a red herring.

net/minecraft/network/protocol/login/
net/minecraft/world/entity/vehicle/

Nothing much to note, reworked the loot table inventory serialization a bit

net/minecraft/world/level/

net/minecraft/world/entity/player
net/minecraft/core/dispenser/
random other server classes

Note: Scoreboards may need handling for the waypoints.

/net/minecraft/world/entity/animal/wolf

Also properly mark the item dropped when shearing as force drops
Additionally, add some identifying messages to paper comments added by
our more junior developer during the update process.
- Changes:
Turtle now included in the experience orb dropped
- Todo: See what spigot does for CraftEquippableComponent serialization
Mostly around the fact that player inventories now properly support
setting and getting the BODY and SADDLE equipment slot. The slots are
exposed to the API via the extra contents array.
EAR yields immunity to entities that are not on the ground and are not
"flying entities". What this "flying entity" filter actually entails
however is undocumented. The previous implementation checked for
FlyingMob, which only covered ghasts and phantoms, leaving entities like
the blaze and wither untouched for *some* reason.

To be improved by consulting the elders (cat).
Owen1212055 and others added 24 commits June 7, 2025 15:01
DataConverter changes the output of these, but order of the components is generally undefined so just change this for now.
The underlying components seem to still be appended in a different order compared to vanilla but that is fine as the order does not really matter in an ItemStack's component map.

However, 'hidden_components' seem to have defined order that must be respected. We use a hashset and keep the fixing order that is on the vanilla datafixer.
alternative to 320f25c, this commit has the side effect of
not including the waterlogged block into the block list for the later event. Generally this logic is fragile and should be handled by
the BlockStateListPopulator in the future.
…tateListPopulator

As seen in #12645, the BlockStateListPopulator always destroy
block entity data when the block state change. However this is something that should be supported
so plugin can retrieve block entity data of captured blocks.
Additionally only create snapshots at the end of the capture so we don't need to refresh block entity
data for decorator like the beehive, this is possible since multiple capture
at the same position is not supported and will overwrite the previous data anyway.
If an exception is thrown during decompress then the read process
would be started again, which of course would eventually throw in
the decompress process.
- fix a regression for minecart entity type's class
- stable alphanumeric order for fields and data holder fields for CraftBlockData
- properly register bed and conduit block entity metas
If the index is shifted for slots after the saddle slot in the setter
then it should be in the getter to stay consistent.
* catch destroyBlock calls in the populator, this is needed when sponge
absorb water around plants.
Some of them are destroyed in the process and can only live underwater and plugin
should get the final state in that case and not the not waterlogged state.
* handle drying process for waterlogged blocks on the living world at the end,
while the populator will catch any block changes, it will however not trigger
the particle effects done in destroyBlock
* always try to set block entity data even if the underlying block state doesn't
change for snapshot exposed by the events
this might be something we do in the future but it should be consistent with the rest too
closes #12662
Mojang moved the adjustSpawnLocation call from the ServerPlayer constructor
to where we do it normally making it duplicate
@Machine-Maker Machine-Maker force-pushed the feature/RegistryRetriever branch from 97db45b to 89059c2 Compare June 14, 2025 17:57
@Machine-Maker Machine-Maker changed the base branch from main to dev/1.21.6 June 14, 2025 17:57
Base automatically changed from dev/1.21.6 to main June 17, 2025 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Awaiting review

Development

Successfully merging this pull request may close these issues.

8 participants