1. Improve reliability of Shapeless Recipe logic (commit: 47c6e17) (details)
  2. Strip extra Sign data to/from client - Fixes #1876 (commit: b2d7ef4) (details)
  3. Fix a sign memory leak (commit: 906684f) (details)
  4. Fix BlockState hashCode optimization patch performance bug (commit: 2f8bdbf) (details)
Commit 47c6e17d45886549bf32ef53cb67ddf24222c799 by Daniel Ennis
Improve reliability of Shapeless Recipe logic
per feedback from @liach about a bug with vanillas previous logic that
we essentially just reverted to. complex recipes could run into cases
where a recipe that does have enough items can be unsatisfied if the
items are in certain orders, making them not truely shapeless.
this scenario doesn't occur in vanilla, but users can load custom
this improves the logic to do some sorting on the lists to improve
chances of matching the recipes harder ingredients before the easier to
satisfy ingredients.
the likelyhood of someone adding a recipe that still fails this is too
extreme to care about. i doubt mojangs implementation is perfect either.
we can improve this logic more later if we actually get bug reports on
(commit: 47c6e17)
The file was modifiedSpigot-Server-Patches/0418-Fix-Custom-Shapeless-Custom-Crafting-Recipes.patch (diff)
Commit b2d7ef4f3cf309eb55db388fb2d1c5a7bdb1d24d by Daniel Ennis
Strip extra Sign data to/from client - Fixes #1876
modified clients can send abnormally large data from the client to the
server and it would get stored on the sign as sent.
the client can barely render around 16 characters as-is, but formatting
codes can get it to be more than 16 actual length.
Set a limit of 80 which should give an average of 16 characters 2 sets
of legacy formatting codes which should be plenty for all uses.
This does not strip any existing data from the NBT as plugins may use
this for storing data out of the rendered area.
it only impacts data sent to and from the client.
Set -DPaper.maxSignLength=XX to change limit or -1 to disable
(commit: b2d7ef4)
The file was addedSpigot-Server-Patches/0419-Strip-extra-Sign-data-to-from-client.patch
The file was addedSpigot-Server-Patches/0420-Fix-sign-edit-memory-leak.patch
Commit 2f8bdbfde84cea2e385aad576ca466c3516db0be by Daniel Ennis
Fix BlockState hashCode optimization patch performance bug
we missed something in updating this patch and accidently left hashCode
as a 0 value. This caused a pretty nasty performance hit for
BlockStateEnum instances as they would be all a hash collision.
This update fixes that and also promotes the optimizations to cover ALL
cases of Block States, not just enums.
While mojang cached hashCode in 1.13, we can still just use a simple
large prime based hashCode that auto increments guaranteeing no overlap.
Additionally, replace all equals with an identity check.
(commit: 2f8bdbf)
The file was removedSpigot-Server-Patches/0130-Optimise-BlockStateEnum-hashCode-and-equals.patch
The file was addedSpigot-Server-Patches/0130-Optimise-BlockState-s-hashCode-equals.patch