Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from PaperMC:master #1081

Closed
wants to merge 129 commits into from
Closed

[pull] master from PaperMC:master #1081

wants to merge 129 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Sep 23, 2024

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

electronicboy and others added 30 commits July 26, 2024 13:43
Long ago we discovered that the default thread pools would not increase
the number of threads running the pool until queue addition failed.
Bumping the core size mitigates an issue with spark-paper, and in general,
keeping async threads around generally beats having to spin new ones
everytime we want to execute a periodic async task.
The server validates incoming interaction packets by ensuring the player
sending them is inside their interaction range. For this, the server adds
a magic value, by default 1.0, to the original interaction range to
account for latency issues.

This value however may be too low in high latency environments.
The patch exposes a new configuration option to configure said value.
Now the only tracker field is from the entity tracker
optimisations.
Accidentally dropped this check last commit. It is possible
that this is called while the entity is not tracked.
Allowing chunk loading to occur at any point via purgeUnload()
introduces possible undesirable behavior to occur recursively
inside the chunk system.
Mojang missed these in their mapping. Since the entity data
is used when spawning the bucketed mob, we need to have these
inside the id map to ensure that the entity data is converted
correctly if the entity id is missing.
…11172)

primarily, this allows us to ensure that appenders are flushed, console, log files
before the JVM exits to avoid issues such as error messages disappearing
The common changes from Moonrise should be entirely in MCUtils
… API (#11184)

* Preserve command node when re-registering modern commands through old API

* make fix more targeted

mainly because it didn't work for vanilla commands :)
This is to allow the call to work properly when on Folia,
as Folia does not have a main thread.
The function assumed that the current resize chain pointed to
the previous table, when in fact it pointed to the current table.

The function is supposed to restore the resize chain to the previous
table, previous increment, and previous index + new increment.
The issue the patch was initially added for has already been fixed and filling stacktraces can be expensive
* fix incorrect hash in PR builds

* only apply ref on pull_request triggers
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
2ec53f4 PR-1050: Fix empty result check for Complex Recipes
1067101 PR-1044: Add CrafterCraftEvent
4d87ffe Use correct method in JavaDoc
ae5e581 SPIGOT-7850: Add API for Bogged shear state
46b6d44 SPIGOT-7837: Support data pack banner patterns
d5d0cef Fix JavaDoc error
b3c2b83 PR-1036: Add API for InventoryView derivatives
1fe2c75 SPIGOT-7809: Add ShieldMeta

CraftBukkit Changes:
8ee6fd1 SPIGOT-7857: Improve ItemMeta block data deserialization
8f26c30 SPIGOT-7857: Fix spurious internal NBT tag when deserializing BlockStateMeta
759061b SPIGOT-7855: Fire does not spread or burn blocks
00fc9fb SPIGOT-7853: AnvilInventory#getRepairCost() always returns 0
7501e2e PR-1450: Add CrafterCraftEvent
8c51673 SPIGOT-5731: PortalCreateEvent#getEntity returns null for nether portals ignited by flint and steel
d53d0d0 PR-1456: Fix inverted logic in CraftCrafterView#setSlotDisabled
682a678 SPIGOT-7850: Add API for Bogged shear state
fccf524 SPIGOT-7837: Support data pack banner patterns
9c3bd43 PR-1431: Add API for InventoryView derivatives
0cc6acb SPIGOT-7849: Fix FoodComponent serialize with "using-converts-to" using null
2c54749 Don't rely on tags for CraftItemMetas
20d107e SPIGOT-7846: Fix ItemMeta for hanging signs
76f59e3 Remove redundant clone in Dropper InventoryMoveItemEvent
e61a53d SPIGOT-7817: Call InventoryMoveItemEvent for Crafters
894682e SPIGOT-7839: Remove redundant Java version checks
2c12b21 SPIGOT-7809: Add ShieldMeta and fix setting shield base colours

Spigot Changes:
fb8fb722 Rebuild patches
34bd42b7 SPIGOT-7835: Fix issue with custom hopper settings
* Fix tag key generator output inconsistencies

* use NonNull instead of NotNull for generated api

---------

Co-authored-by: Jake Potrebic <[email protected]>
kennytv and others added 27 commits September 8, 2024 20:39
If you segfault, update your jre/jdk:tm:
* wip tags

* use generics in tag registrars

* comment out varargs methods for now

* split up patch

* cache loaded service provider

* finish renames

* use builderWithExpectedSize

* finalize
* Item serialization as json

* Add ItemStackAdapter for Gson

* A javadoc note at #serialize() and #deserialize()

* Rebase

* Move serialize closer to deserialize

* Add explaining comment about SERIALIZE_CUSTOM_AS_SNBT usage

* Apply lynxplay requests

* Forgot `@NotNull`

* Very important diff was removed

* Rebase

* Javadocs

---------

Co-authored-by: Bjarne Koll <[email protected]>
Upstream has released updates that appear to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
1fc1020 PR-1049: Add MenuType API
8ae2e3b PR-1055: Expand riptiding API
cac68bf SPIGOT-7890: AttributeModifier#getUniqueId() doesn't match the UUID passed to its constructor
7004fcf SPIGOT-7886: Fix mistake in AttributeModifier UUID shim
1ac7f95 PR-1054: Add FireworkMeta#hasPower
4cfb565 SPIGOT-7873: Add powered state for skulls

CraftBukkit Changes:
bbb30e7 SPIGOT-7894: NPE when sending tile entity update
ba21e94 SPIGOT-7895: PlayerItemBreakEvent not firing
0fb24bb SPIGOT-7875: Fix PlayerItemConsumeEvent cancellation causing client-side desync
8150664 SPIGOT-7891: Can't remove second ingredient of MerchantRecipe
45c206f PR-1458: Add MenuType API
19c8ef9 SPIGOT-7867: Merchant instanceof AbstractVillager always returns false
4e006d2 PR-1468: Expand riptiding API
bd8aded Ignore checks in CraftPlayerProfile for ResolvableProfile used in profile components
8679620 SPIGOT-7889: Fix tool component deserialisation without speed and/or correct-for-drops
8d52226 SPIGOT-7882, PR-1467: Fix conversion of name in Profile Component to empty if it is missing
63f9166 SPIGOT-7887: Remove duplicate ProjectileHitEvent for fireballs
7070de8 SPIGOT-7878: Server#getLootTable does not return null on invalid loot table
060ee6c SPIGOT-7876: Can't kick player or disconnect player in PlayerLoginEvent when checking for cookies
7ccb86c PR-1465: Add FireworkMeta#hasPower
804ad64 SPIGOT-7873: Add powered state for skulls
f9610cd Improve minecart movement

Spigot Changes:
a759b629 Rebuild patches

Co-authored-by: Jake Potrebic <[email protected]>
In the recent upstream update, the paper player profile was updated to
correctly return null for both name and id if constructed as such. This
change however broke the serialisation logic, as it depended on the name
never being null.

The commit moves the checks over to the newly introduced emptyName/UUID
fields that track if the profile was constructed with a null name or
uuid to differentiate it against an empty string or the NIL_UUID.
* Only mark decorations dirty if a removal actually occurs

Vanilla calls this method blindly inside of a loop which erroniously marks
map data files as being dirty even if nothing has actually changed.

* Merge into existing patch

---------

Co-authored-by: Bjarne Koll <[email protected]>
Spigot still maintains some partial implementation of "tick skipping", a
practice in which the MinecraftServer.currentTick field is updated not
by an increment of one per actual tick, but instead set to
System.currentTimeMillis() / 50. This behaviour means that the tracked
tick may "skip" a tick value in case a previous tick took more than the
expected 50ms.

To compensate for this in important paths, spigot/craftbukkit
implements "wall-time". Instead of incrementing/decrementing ticks on
block entities/entities by one for each call to their tick() method,
they instead increment/decrement important values, like
an ItemEntity's age or pickupDelay, by the difference of
`currentTick - lastTick`, where `lastTick` is the value of
`currentTick` during the last tick() call.

These "fixes" however do not play nicely with minecraft's simulation
distance as entities/block entities implementing the above behaviour
would "catch up" their values when moving from a non-ticking chunk to a
ticking one as their `lastTick` value remains stuck on the last tick in
a ticking chunk and hence lead to a large "catch up" once ticked again.

Paper completely removes the "tick skipping" behaviour (See patch
"Further-improve-server-tick-loop"), making the above precautions
completely unnecessary, which also rids paper of the previous described
incompatibility with non-ticking chunks.
The Bukkit#getRegistry(Class) method contract specifies that it returns
null for unknown registry types. The current implementation however
requires the passed class to be mappable to a known registry key.

For types like Material, which have a SimpleRegistry in bukkit's
Registry interface, no server side registry exists and such the type
cannot be mapped to a registry key.

The commit correctly returns null for types that are not mappable to a
registry key instead of throwing a NullPointerException.
The launch API on LivingEntity only respected the WindCharge type, not
its near-clone BreezeWindCharge.

This commit correctly accounts for BreezeWindCharge in
CraftLivingEntity.
Adds a missing interface to centralize getSnapshotInventory methods.
While BlockType is still marked as internal, it mirrors the already
paper-deprecated method #isInteractable.

The commit marks said method as deprecated if/when BlockType becomes
experimental/non-internal.
Previously, the velocity forwarding secret could only be configured via
the configuration option in the global paper configuration.
This makes configuring/passing such a value rather difficult for
containerized/orchestrated servers as these configuration files are
usually part of the server data volume itself and hence cannot be
sourced from a secret.

This commit enables administrators to define the PAPER_VELOCITY_SECRET
environment variable, which will override any potentially configured
velocity secret.
* fix: check datatype of particles rather than particle-type

* feature: add ARGB channels

It keeps the functionality of the original color(int).

* fix: order

* fixes

---------

Co-authored-by: Jake Potrebic <[email protected]>
* Expand out datapack API

* add getTitle

* better enable check
Copy link

Please do not open pull requests from the master branch, create a new branch instead.

@github-actions github-actions bot closed this Sep 23, 2024
@pull pull bot added the ⤵️ pull label Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.