From b03678a0a07e92a995e3bd8167490ac2609d56a1 Mon Sep 17 00:00:00 2001 From: Lexi Date: Mon, 13 Jun 2022 02:21:46 -0400 Subject: [PATCH] Updated Upstream (Paper) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@cb05aa6 Prepare for 1.19 dev PaperMC/Paper@56e6424 Patch cleanup PaperMC/Paper@028e2d9 API patches PaperMC/Paper@a9c5073 First server patches PaperMC/Paper@2710efc More patches PaperMC/Paper@1669c6b More more patches PaperMC/Paper@cac4deb More more more patches PaperMC/Paper@88f74d1 Fix some api compilation errors PaperMC/Paper@13fe886 API now compiles successfully PaperMC/Paper@c321ca5 fix unmerged diff PaperMC/Paper@aac58bb More more more more patches PaperMC/Paper@3773770 Fix more errors PaperMC/Paper@7d7779a Fix even more errors PaperMC/Paper@addf9c9 More more more more more patches PaperMC/Paper@4e13355 some server compile fixes PaperMC/Paper@58133bd Update PreCreatureSpawnEvent patch PaperMC/Paper@3a0b948 temporary fixes for adventure chat PaperMC/Paper@87ca0fa hate jmp and his gradle PaperMC/Paper@32c195b i love jmp PaperMC/Paper@c515eb9 rebuild after rebase PaperMC/Paper@a16970a Fix CanPlaceOn/CanDestroy API issues PaperMC/Paper@68b585f Fix cook speed patch PaperMC/Paper@a27b508 i really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really love jmp PaperMC/Paper@26ea040 i really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really love jmp PaperMC/Paper@515da2f update reobf-mappings-patch.tiny PaperMC/Paper@d41a026 few more server decompile fixes PaperMC/Paper@7bbeef2 i really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really really reall… PaperMC/Paper@c5db537 Fix more issues PaperMC/Paper@f371b4e <3 jmp PaperMC/Paper@f04e64d moar patches PaperMC/Paper@c3fc3de even moar patches PaperMC/Paper@dc12a6e a bunch more patches done PaperMC/Paper@0745f97 bunch o' patches PaperMC/Paper@2304bb3 bundle o' patches PaperMC/Paper@feca8d2 bouquet o' patches PaperMC/Paper@89c3c31 bag o' patches PaperMC/Paper@a1d0432 batch o' patches PaperMC/Paper@aabbfcd Updated Upstream (Bukkit/CraftBukkit/Spigot) PaperMC/Paper@cc7979a bale o' patches PaperMC/Paper@b464e02 Misc. 1.19 fixes (#7881) PaperMC/Paper@0e06c77 More more more more more more patches PaperMC/Paper@f0e575f More more more more more more more patches PaperMC/Paper@82f712c More more more more more more more more patches PaperMC/Paper@8d5407b Things, and DataConverter (maybe) PaperMC/Paper@d28b209 Things, and Starlight (maybe) PaperMC/Paper@2f0b2b9 Add missing DataConverter and fix some imports PaperMC/Paper@391e65f more misc compile fixes PaperMC/Paper@301cf57 More more more more more more more more more patches PaperMC/Paper@2259098 Misc fixes (#7883) PaperMC/Paper@beab8a3 More more more more more more more more more more patches PaperMC/Paper@55d7f56 More more more more more more more more more more more patches PaperMC/Paper@b1f5e70 Moar 1.19 fixes (#7884) PaperMC/Paper@7ece945 Use biome source method to prevent loading chunks (#7885) PaperMC/Paper@b561fd8 Compilation error fixes PaperMC/Paper@1d5b298 More compilation error fixes PaperMC/Paper@af4b5ee add back removed kelp modifier patch PaperMC/Paper@d5216d8 Add back Fix NotePlayEvent patch PaperMC/Paper@9ab6893 Add back Fix locateNearestStructure patch PaperMC/Paper@913d2ae Fix PaperMC/Paper@a6bc17b IT COMPILES BOIS PaperMC/Paper@7a165c9 Add back fix swamp hut deadlock patch PaperMC/Paper@02804a4 Fix tests PaperMC/Paper@8399e10 fix reobf issues around randomsource impls PaperMC/Paper@a02874e Remove painting desync (#7886) PaperMC/Paper@57dfcdf Reorder some patches PaperMC/Paper@b3b63d3 Fix tests (again?) PaperMC/Paper@222391f Check if is light status or above / isLightOn / starlight version fits (#7888) PaperMC/Paper@bd134f8 Update Alternate Current patch (#7890) PaperMC/Paper@4c1b338 Remove level propagator patch for now PaperMC/Paper@44ccc15 Port Fix missing chunks due to integer overflow to 1.19 (#7891) PaperMC/Paper@d1e1217 Only send empty chunk when player is dead PaperMC/Paper@897cc27 Remove no longer needed patch PaperMC/Paper@e24a250 correct patch description PaperMC/Paper@a93aa05 Wrap NBTOps in RegistryOps (#7892) PaperMC/Paper@29e9189 Fix structures issues/api (#7895) PaperMC/Paper@86c1650 Dont resent entity on art update (#7887) PaperMC/Paper@11c2705 Slightly untrash Spigot chat handling PaperMC/Paper@cbb47ca Add missing spawn eggs (#7896) PaperMC/Paper@9107753 (1.19) Make timings link clickable (#7897) PaperMC/Paper@467a166 fallback to default locate logic if no API found PaperMC/Paper@da80273 Deprecate origin for vibrations (#7898) PaperMC/Paper@172d260 Move to configurate for paper.yml (#7609) PaperMC/Paper@d7cc306 Update Optimise general POI access (#7903) PaperMC/Paper@ffddec5 Updated Upstream (CraftBukkit) PaperMC/Paper@7be0194 Readd dummy PaperConfig and PaperWorldConfig classes PaperMC/Paper@b26d590 Fixes PaperMC/Paper@e1c2939 Update configurable feature seed patch PaperMC/Paper@d385af0 Updated Upstream (Bukkit/CraftBukkit) PaperMC/Paper@a3a0390 Fix config migration error preventing server startup PaperMC/Paper@84434e6 Don't validate chunk before it's been run through DataConverter (#7907) PaperMC/Paper@e47848f Correctly handle ElderGuardianAppearanceEvent canceling (#7902) PaperMC/Paper@2e68ecc more configuration fixes/changes PaperMC/Paper@d9fcf39 Remove locname (#7909) PaperMC/Paper@f27aa33 catch IAE from empty transformation builder PaperMC/Paper@acd50c5 Keyed cat Type (#7901) PaperMC/Paper@c34a306 Remove old config options (#7908) PaperMC/Paper@c946526 minimessage conversion PaperMC/Paper@5052a45 Minor patch changes PaperMC/Paper@09c9215 Add sendRichMessage and sendPlainMessage methods PaperMC/Paper@ad51c40 Fix don't lookup profiles for blank names patch PaperMC/Paper@3f1c6a4 move commands out of configuration PaperMC/Paper@e5ed99a fix compile issue PaperMC/Paper@77de07a fix more config migration issues PaperMC/Paper@6249dd5 remove more unused config options PaperMC/Paper@181a847 Make slime spawn checks use tag again and rename config option (#7910) PaperMC/Paper@0a21166 Update player chunk loader patch, re-add ticket level propagator patch PaperMC/Paper@ade44f3 Remove todo PaperMC/Paper@7c55e62 Fix tests PaperMC/Paper@d833c0c Update starlight + read null light data (#7912) PaperMC/Paper@5ac29fc Fix migration of packet limiter PaperMC/Paper@4a51a54 Don't use deprecated permission message method PaperMC/Paper@83e2a35 Fix light (#7917) PaperMC/Paper@cfe3ad1 Updated Upstream (Bukkit/CraftBukkit/Spigot) PaperMC/Paper@02b5ec4 fix 2 more migration issues PaperMC/Paper@dd6a8e9 couple more migration issues PaperMC/Paper@8141349 improve packet config serializer (#7920) PaperMC/Paper@9a75a79 Readd PlayerAnimationEvent constructor removed by upstream PaperMC/Paper@0754819 Updated Upstream (CraftBukkit) PaperMC/Paper@9b6fb2f Remove bad warning PaperMC/Paper@cf384f5 Don't print stacktrace when client with invalid signature logs in PaperMC/Paper@a8a01bb port Significantly improve performance of the end generation (#7919) PaperMC/Paper@8bca919 Remove unneeded patch PaperMC/Paper@698b315 Improve migration file errors (#7929) PaperMC/Paper@99aa5f2 Fixes parsing tags in selectors in command functions PaperMC/Paper@76f81ae Keep default keys in some maps PaperMC/Paper@5a2973f Correct dataconverter diff PaperMC/Paper@ee7d161 Make starlight light read non-fatal if it throws PaperMC/Paper@f8beab5 correct argument check in PlayerHandshakeEvent#setFailMessage(String) (#7940) PaperMC/Paper@c80df84 Readd remove vec allocations diff (#7930) PaperMC/Paper@1ccff4f Readd mc-4 fix PaperMC/Paper@d7165b0 Fix some references to obfuscated code PaperMC/Paper@55201f0 Updated Upstream (Bukkit/CraftBukkit) (#7936) PaperMC/Paper@46954ee Don't explode on light data in the nether PaperMC/Paper@dfc1044 Fix keep spawn loaded patch PaperMC/Paper@9ad94dc Adjust config headers PaperMC/Paper@c044b14 Add support for Velocity forwarding v2 PaperMC/Paper@6c52b5e Ensure that Log4J is shutdown when stopping the server (Fixes #7932) PaperMC/Paper@ee4916d Fire kick event for out-of-order chat on main thread (#7942) PaperMC/Paper@8b6f4dd Add paper-settings-directory cl argument (#7949) PaperMC/Paper@4797e3a Dont reassign the hiddenConfigs field in TimingsManager (#7951) PaperMC/Paper@3690440 Update paperweight to 1.3.7 PaperMC/Paper@90050ff Update Adventure to 4.11.0 and implement ComponentLogger (#7937) PaperMC/Paper@e4f5e1c Bump netty --- build.gradle.kts | 18 +- gradle.properties | 6 +- patches/api/0001-Add-Getter-interfaces.patch | 24 +- patches/api/0002-Add-SoundEvent.patch | 715 +++++++++--------- .../api/0005-Expanded-Adventure-support.patch | 8 +- .../api/0008-Expose-MCUtil-Executors.patch | 4 +- patches/server/0001-Build-changes.patch | 26 +- patches/server/0003-Add-SoundEvent.patch | 308 +++++--- ...location-to-EntityDamageByBlockEvent.patch | 35 +- .../0007-Expose-EntityType-Ordinals.patch | 8 +- .../0008-Add-Player-setGameProfile.patch | 12 +- .../server/0009-Expose-MCUtil-Executors.patch | 4 +- .../0011-Add-BlockDropResourcesEvent.patch | 26 +- .../server/0012-Add-Furnace-Recipe-API.patch | 4 +- ...3-Disable-sleep-status-announcements.patch | 6 +- 15 files changed, 646 insertions(+), 558 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 90f8ef0..741ec55 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { java `maven-publish` id("com.github.johnrengelman.shadow") version "7.1.2" apply false - id("io.papermc.paperweight.patcher") version "1.3.6" + id("io.papermc.paperweight.patcher") version "1.3.7" } repositories { @@ -16,7 +16,7 @@ repositories { dependencies { remapper("net.fabricmc:tiny-remapper:0.8.2:fat") - decompiler("net.minecraftforge:forgeflower:1.5.498.12") + decompiler("net.minecraftforge:forgeflower:1.5.605.7") paperclip("io.papermc:paperclip:3.0.2") } @@ -79,13 +79,13 @@ tasks.generateDevelopmentBundle { apiCoordinates.set("gg.projecteden.parchment:parchment-api") mojangApiCoordinates.set("io.papermc.paper:paper-mojangapi") libraryRepositories.set( - listOf( - "https://repo.maven.apache.org/maven2/", - "https://libraries.minecraft.net/", - "https://papermc.io/repo/repository/maven-public/", - "https://maven.quiltmc.org/repository/release/", - "https://sonatype.projecteden.gg/repository/maven-public/" - ) + listOf( + "https://repo.maven.apache.org/maven2/", + "https://libraries.minecraft.net/", + "https://papermc.io/repo/repository/maven-public/", + "https://maven.quiltmc.org/repository/release/", + "https://sonatype.projecteden.gg/repository/maven-public/" + ) ) } diff --git a/gradle.properties b/gradle.properties index 21920f4..e50168c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ group = gg.projecteden.parchment -version = 1.18.2-R0.1-SNAPSHOT +version = 1.19-R0.1-SNAPSHOT -mcVersion = 1.18.2 -paperRef = 3925a53dd0fbe6bb99c15228b618dddd67017dcd +mcVersion = 1.19 +paperRef = e4f5e1c9ab867701eb4b3347280ad2dc099b7db0 org.gradle.caching=true org.gradle.parallel=true diff --git a/patches/api/0001-Add-Getter-interfaces.patch b/patches/api/0001-Add-Getter-interfaces.patch index 4e2c1a6..5b2cc47 100644 --- a/patches/api/0001-Add-Getter-interfaces.patch +++ b/patches/api/0001-Add-Getter-interfaces.patch @@ -60,7 +60,7 @@ index abeb24fccda2acfdb0dfdadacb8fe688bd97cf78..890069604ca78a9a3f3b4c5f40969a45 private boolean cancelled = false; @NotNull private final Location location; diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java -index a79aa4834e700f845a625e9ab15760690726e81c..fd51dfa9218065b2ace87a92eedf4ec4584a7393 100644 +index 59ae7bc3a0a2079fe4b3a92d777aca682a58e4e3..6aac09818b847ca6b25514a109f9b0e902840167 100644 --- a/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java +++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerHandshakeEvent.java @@ -20,7 +20,7 @@ import java.util.UUID; @@ -115,10 +115,10 @@ index 4dcf6242c9acc62d030a94f67b78729ed29f8c85..d09aecb0b45f2ccf9badd308ef3e472b /** * Sets the UUID for this player name. This will skip the initial API call to find the players UUID. diff --git a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java -index 4cd97cb102e1ec53b3fe1a451b65b4b640fde099..871ff8bae4ac50049a6e23a0cd1263121f8fbad1 100644 +index 9be64a95c2345433b6142d611077dedadcef9f5d..e3cea810881868fb5869de72f331733e6893fcee 100644 --- a/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java +++ b/src/main/java/com/destroystokyo/paper/event/server/AsyncTabCompleteEvent.java -@@ -48,7 +48,7 @@ import org.jetbrains.annotations.Nullable; +@@ -47,7 +47,7 @@ import org.jetbrains.annotations.Nullable; * * Only 1 process will be allowed to provide completions, the Async Event, or the standard process. */ @@ -593,7 +593,7 @@ index ef0cb00ca4cb7d2f5e4ec1c950cce036566d1ae4..df53183beb4c438ea3c821e1ffd8e271 * Sets the world that this location resides in * diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java -index 23e853bae0e051cd43deb9eb24c54e74a56d8ab0..20cb99c906725ba3a67d2a71338ba8cacfe5072c 100644 +index a7d1f1e701f23e851f735584a30bedadb0d8b9bd..7b37b6f596b4ac6b8049c7bd195139ac03ba63bc 100644 --- a/src/main/java/org/bukkit/OfflinePlayer.java +++ b/src/main/java/org/bukkit/OfflinePlayer.java @@ -10,7 +10,7 @@ import org.bukkit.profile.PlayerProfile; @@ -633,10 +633,10 @@ index 983a8c20a06d2b509602b27f49c090598b8ecc42..46dd8496f5a2c792ee7811e33c424e88 /** * Get whether this raid started. diff --git a/src/main/java/org/bukkit/Vibration.java b/src/main/java/org/bukkit/Vibration.java -index 8d568d21fcbf706f55cda087bd7222ac60889c0a..8bc5b7a0df5c8f5e5d973c2d2b348968f5b759b2 100644 +index 209a302c3a2ed333780ed760314a6ed352fc0767..9d29f1c5af56954bc452fa251d6bc0215ab3fe79 100644 --- a/src/main/java/org/bukkit/Vibration.java +++ b/src/main/java/org/bukkit/Vibration.java -@@ -64,7 +64,7 @@ public class Vibration { +@@ -74,7 +74,7 @@ public class Vibration { } } @@ -646,7 +646,7 @@ index 8d568d21fcbf706f55cda087bd7222ac60889c0a..8bc5b7a0df5c8f5e5d973c2d2b348968 private final Location block; diff --git a/src/main/java/org/bukkit/attribute/AttributeModifier.java b/src/main/java/org/bukkit/attribute/AttributeModifier.java -index ff8f1231f3e2e71740fd24fa8d4dac5d0e550ae7..ee19d7fd5bb1851af39320f1edd858e1f7bdd1cc 100644 +index d124768378d6f0c5573f28ee815ea3886fe74868..e790878186b64422dc4a3f52f4c7611441c82589 100644 --- a/src/main/java/org/bukkit/attribute/AttributeModifier.java +++ b/src/main/java/org/bukkit/attribute/AttributeModifier.java @@ -14,7 +14,7 @@ import org.jetbrains.annotations.Nullable; @@ -724,7 +724,7 @@ index 8bc6876c82935988436597161fa0ec94c032174b..ffd5fbc3e14be5439f1334c567b573c3 /** * Gets the entity's current position diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java -index e8b6cfe7e454c666b4d60b702a3b211dab238830..b9196b22e5bf4dea7466d6a691f93969a2c72843 100644 +index 5dbbeb92aec212d2e849d16320ed9c084b99fc35..32e5150b14f5d7d19d82d15631065db376814e25 100644 --- a/src/main/java/org/bukkit/entity/HumanEntity.java +++ b/src/main/java/org/bukkit/entity/HumanEntity.java @@ -19,7 +19,15 @@ import org.jetbrains.annotations.Nullable; @@ -1109,10 +1109,10 @@ index 128e43cf12205f82f2b119a773208502cdccfdd4..ca1fed3081e2b0a3271a2dfa0f49cce7 private static final HandlerList handlers = new HandlerList(); // diff --git a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java -index f96c4ba53ab41ea66d4f9a4d54eeabb63f992b58..fdc3114adb18108ccd8acbab458bacededed4767 100644 +index 4a3451af454295ac3e1b688e6665cad9fc594c82..b88cebb219577d59cc338be89c6f391d10702095 100644 --- a/src/main/java/org/bukkit/event/server/TabCompleteEvent.java +++ b/src/main/java/org/bukkit/event/server/TabCompleteEvent.java -@@ -21,7 +21,7 @@ import org.jetbrains.annotations.Nullable; +@@ -19,7 +19,7 @@ import org.jetbrains.annotations.NotNull; * advised to ensure the client does not have permission for the relevant * commands, or use {@link PlayerCommandSendEvent}. */ @@ -1122,7 +1122,7 @@ index f96c4ba53ab41ea66d4f9a4d54eeabb63f992b58..fdc3114adb18108ccd8acbab458baced private static final HandlerList handlers = new HandlerList(); // diff --git a/src/main/java/org/bukkit/event/world/GenericGameEvent.java b/src/main/java/org/bukkit/event/world/GenericGameEvent.java -index 1746b66510e7b9c8708018582034b04714c29867..9c1c1acb91fc36e8811c27f7a6d8347249d95c16 100644 +index 2a2a329877d8da45c2d6afecf78ce88d52635cad..22cdf3662b02fb5751ac6d913d781084cd7eee5b 100644 --- a/src/main/java/org/bukkit/event/world/GenericGameEvent.java +++ b/src/main/java/org/bukkit/event/world/GenericGameEvent.java @@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; @@ -1174,7 +1174,7 @@ index 2448e70d75ae7a678c6befac4506c103edb78875..65ca144618f74bc8e317a4b9c2732ad5 /** * Represents various extra properties of certain inventory windows. diff --git a/src/main/java/org/bukkit/loot/LootContext.java b/src/main/java/org/bukkit/loot/LootContext.java -index e307f9fc45a4e5d742b78c4cda9a41d7f259a515..a66d59321915b0dc76f8e2dd95f01f9e3adaefa6 100644 +index 71b7aa9d675e1714e286e6fd4015ead036d912e0..95e120068a7c5c96b1b8553df9cf8654ba63a325 100644 --- a/src/main/java/org/bukkit/loot/LootContext.java +++ b/src/main/java/org/bukkit/loot/LootContext.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0002-Add-SoundEvent.patch b/patches/api/0002-Add-SoundEvent.patch index 2fcc353..9fc1bac 100644 --- a/patches/api/0002-Add-SoundEvent.patch +++ b/patches/api/0002-Add-SoundEvent.patch @@ -4,383 +4,313 @@ Date: Sat, 19 Jun 2021 22:55:10 -0400 Subject: [PATCH] Add SoundEvent -diff --git a/src/main/java/gg/projecteden/parchment/event/sound/EntitySoundEvent.java b/src/main/java/gg/projecteden/parchment/event/sound/EntitySoundEvent.java -new file mode 100644 -index 0000000000000000000000000000000000000000..5b74910e441a943597d3170ff00a9b9debab1d38 ---- /dev/null -+++ b/src/main/java/gg/projecteden/parchment/event/sound/EntitySoundEvent.java -@@ -0,0 +1,49 @@ -+package gg.projecteden.parchment.event.sound; -+ -+import org.apache.commons.lang.Validate; -+import org.bukkit.Sound; -+import org.bukkit.SoundCategory; -+import org.bukkit.World; -+import org.bukkit.entity.Entity; -+import org.bukkit.entity.HumanEntity; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; -+ -+/** -+ * Called when an entity sound is sent to a player. Cancelling this event will prevent the packet from sending. -+ *

-+ * This type of sound represents one that will follow the {@link #origin} entity. -+ */ -+public class EntitySoundEvent extends NamedSoundEvent { -+ private @NotNull Entity origin; -+ -+ public EntitySoundEvent(@Nullable HumanEntity receiver, @NotNull Entity origin, @NotNull Sound sound, @NotNull SoundCategory category, float volume, float pitch) { -+ super(receiver, sound, category, volume, pitch); -+ Validate.notNull(origin, "origin cannot be null"); -+ this.origin = origin; -+ } -+ -+ /** -+ * Gets the entity that the sound is originating from -+ * @return originating entity -+ */ -+ public @NotNull Entity getOrigin() { -+ return origin; -+ } -+ -+ /** -+ * Sets the entity that the sound will originate from -+ * @param origin originating entity -+ */ -+ public void setOrigin(@NotNull Entity origin) { -+ Validate.notNull(origin, "origin cannot be null"); -+ if (!this.origin.getWorld().equals(origin.getWorld())) -+ throw new IllegalArgumentException("Entity must be in same world as originating location"); -+ this.origin = origin; -+ } -+ -+ @Override -+ public @org.jetbrains.annotations.NotNull World getWorld() { -+ return origin.getWorld(); -+ } -+} -diff --git a/src/main/java/gg/projecteden/parchment/event/sound/LocationCustomSoundEvent.java b/src/main/java/gg/projecteden/parchment/event/sound/LocationCustomSoundEvent.java -new file mode 100644 -index 0000000000000000000000000000000000000000..eed6098d16e051484129396c694b9cfbb8172fce ---- /dev/null -+++ b/src/main/java/gg/projecteden/parchment/event/sound/LocationCustomSoundEvent.java -@@ -0,0 +1,95 @@ -+package gg.projecteden.parchment.event.sound; -+ -+import gg.projecteden.parchment.HasLocation; -+import org.apache.commons.lang.Validate; -+import org.bukkit.Keyed; -+import org.bukkit.Location; -+import org.bukkit.NamespacedKey; -+import org.bukkit.SoundCategory; -+import org.bukkit.World; -+import org.bukkit.entity.HumanEntity; -+import org.bukkit.util.Vector; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; -+ -+import static com.google.common.base.Preconditions.checkNotNull; -+ -+/** -+ * Called when a sound not available in {@link org.bukkit.Sound} is sent to a player from a {@link Location}. Cancelling this event will prevent the packet from sending. -+ */ -+public class LocationCustomSoundEvent extends SoundEvent implements Keyed, HasLocation { -+ private @NotNull Vector vector; -+ private @NotNull NamespacedKey key; -+ private @NotNull final World world; -+ -+ public LocationCustomSoundEvent(@Nullable HumanEntity receiver, @NotNull World world, @NotNull Vector vector, @NotNull NamespacedKey key, @NotNull SoundCategory category, float volume, float pitch) { -+ super(receiver, category, volume, pitch); -+ Validate.notNull(world, "world cannot be null"); -+ Validate.notNull(vector, "vector cannot be null"); -+ Validate.notNull(key, "key cannot be null"); -+ this.world = world; -+ this.vector = vector; -+ this.key = key; -+ } -+ -+ public LocationCustomSoundEvent(@Nullable HumanEntity receiver, @NotNull Location location, @NotNull NamespacedKey key, @NotNull SoundCategory category, float volume, float pitch) { -+ this(receiver, checkNotNull(location, "location").getWorld(), location.toVector(), key, category, volume, pitch); -+ } -+ -+ public LocationCustomSoundEvent(@NotNull HumanEntity receiver, @NotNull Vector vector, @NotNull NamespacedKey key, @NotNull SoundCategory category, float volume, float pitch) { -+ this(checkNotNull(receiver, "receiver"), receiver.getWorld(), vector, key, category, volume, pitch); -+ } -+ -+ public LocationCustomSoundEvent(@NotNull HumanEntity receiver, @NotNull NamespacedKey key, @NotNull SoundCategory category, float volume, float pitch) { -+ this(checkNotNull(receiver, "receiver"), receiver.getLocation().toVector(), key, category, volume, pitch); -+ } -+ -+ /** -+ * Gets the position in the world of the sound -+ * @return position in the world -+ */ -+ public @NotNull Vector getVector() { -+ return vector; -+ } -+ -+ /** -+ * Gets the resource pack key of the sound -+ * @return asset key -+ */ -+ public @NotNull NamespacedKey getKey() { -+ return key; -+ } -+ -+ @Override -+ public @NotNull World getWorld() { -+ return world; -+ } -+ -+ /** -+ * Gets the location of the sound being played -+ * @return copy of sound location -+ * @see #getVector() -+ * @see #setVector(Vector) -+ */ -+ public @NotNull Location getLocation() { -+ return new Location(world, vector.getX(), vector.getY(), vector.getZ()); -+ } -+ -+ /** -+ * Sets the position in the world of the sound -+ * @param vector position in the world -+ */ -+ public void setVector(@NotNull Vector vector) { -+ Validate.notNull(vector, "vector cannot be null"); -+ this.vector = vector; -+ } -+ -+ /** -+ * Sets the resource pack key of the sound -+ * @param key asset key -+ */ -+ public void setKey(@NotNull NamespacedKey key) { -+ Validate.notNull(key, "key cannot be null"); -+ this.key = key; -+ } -+} -diff --git a/src/main/java/gg/projecteden/parchment/event/sound/LocationNamedSoundEvent.java b/src/main/java/gg/projecteden/parchment/event/sound/LocationNamedSoundEvent.java -new file mode 100644 -index 0000000000000000000000000000000000000000..0872f3850860fe7cca28aeabed6235cc2a805c94 ---- /dev/null -+++ b/src/main/java/gg/projecteden/parchment/event/sound/LocationNamedSoundEvent.java -@@ -0,0 +1,72 @@ -+package gg.projecteden.parchment.event.sound; -+ -+import gg.projecteden.parchment.HasLocation; -+import org.apache.commons.lang.Validate; -+import org.bukkit.Location; -+import org.bukkit.Sound; -+import org.bukkit.SoundCategory; -+import org.bukkit.World; -+import org.bukkit.entity.HumanEntity; -+import org.bukkit.util.Vector; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; -+ -+import static com.google.common.base.Preconditions.checkNotNull; -+ -+/** -+ * Called when a sound available in {@link Sound} is sent to a player from a {@link Location}. Cancelling this event will prevent the packet from sending. -+ */ -+public class LocationNamedSoundEvent extends NamedSoundEvent implements HasLocation { -+ private @NotNull Vector vector; -+ private @NotNull final World world; -+ -+ public LocationNamedSoundEvent(@Nullable HumanEntity receiver, @NotNull World world, @NotNull Vector vector, @NotNull Sound sound, @NotNull SoundCategory category, float volume, float pitch) { -+ super(receiver, sound, category, volume, pitch); -+ this.world = checkNotNull(world, "world"); -+ this.vector = checkNotNull(vector, "vector"); -+ } -+ -+ public LocationNamedSoundEvent(@Nullable HumanEntity receiver, @NotNull Location location, @NotNull Sound sound, @NotNull SoundCategory category, float volume, float pitch) { -+ this(receiver, checkNotNull(location, "location").getWorld(), location.toVector(), sound, category, volume, pitch); -+ } -+ -+ public LocationNamedSoundEvent(@NotNull HumanEntity receiver, @NotNull Vector vector, @NotNull Sound sound, @NotNull SoundCategory category, float volume, float pitch) { -+ this(checkNotNull(receiver, "receiver"), receiver.getWorld(), vector, sound, category, volume, pitch); -+ } -+ -+ public LocationNamedSoundEvent(@NotNull HumanEntity receiver, @NotNull Sound sound, @NotNull SoundCategory category, float volume, float pitch) { -+ this(checkNotNull(receiver, "receiver"), receiver.getLocation().toVector(), sound, category, volume, pitch); -+ } -+ -+ /** -+ * Gets the position in the world of the sound -+ * @return position in the world -+ */ -+ public @NotNull Vector getVector() { -+ return vector; -+ } -+ -+ @Override -+ public @NotNull World getWorld() { -+ return world; -+ } -+ -+ /** -+ * Gets the location of the sound being played -+ * @return copy of sound location -+ * @see #getVector() -+ * @see #setVector(Vector) -+ */ -+ public @NotNull Location getLocation() { -+ return new Location(world, vector.getX(), vector.getY(), vector.getZ()); -+ } -+ -+ /** -+ * Sets the position in the world of the sound -+ * @param vector position in the world -+ */ -+ public void setVector(@NotNull Vector vector) { -+ Validate.notNull(vector, "vector cannot be null"); -+ this.vector = vector; -+ } -+} -diff --git a/src/main/java/gg/projecteden/parchment/event/sound/NamedSoundEvent.java b/src/main/java/gg/projecteden/parchment/event/sound/NamedSoundEvent.java -new file mode 100644 -index 0000000000000000000000000000000000000000..9c2e257de3487a73d4f5b796177061d8fea4c0f7 ---- /dev/null -+++ b/src/main/java/gg/projecteden/parchment/event/sound/NamedSoundEvent.java -@@ -0,0 +1,38 @@ -+package gg.projecteden.parchment.event.sound; -+ -+import org.apache.commons.lang.Validate; -+import org.bukkit.Sound; -+import org.bukkit.SoundCategory; -+import org.bukkit.entity.HumanEntity; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; -+ -+/** -+ * Called when a sound available in {@link Sound} is sent to a player. Cancelling this event will prevent the packet from sending. -+ */ -+public abstract class NamedSoundEvent extends SoundEvent { -+ private @NotNull Sound sound; -+ -+ public NamedSoundEvent(@Nullable HumanEntity receiver, @NotNull Sound sound, @NotNull SoundCategory category, float volume, float pitch) { -+ super(receiver, category, volume, pitch); -+ Validate.notNull(sound, "sound cannot be null"); -+ this.sound = sound; -+ } -+ -+ /** -+ * Gets the sound being played -+ * @return sound to play -+ */ -+ public @NotNull Sound getSound() { -+ return sound; -+ } -+ -+ /** -+ * Sets the sound yo played -+ * @param sound sound to play -+ */ -+ public void setSound(@NotNull Sound sound) { -+ Validate.notNull(sound, "sound cannot be null"); -+ this.sound = sound; -+ } -+} diff --git a/src/main/java/gg/projecteden/parchment/event/sound/SoundEvent.java b/src/main/java/gg/projecteden/parchment/event/sound/SoundEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..0506c9e461296aeb12da23b476b9b1c57702b7e1 +index 0000000000000000000000000000000000000000..427161356c432b5dc5d69a53801c1cd3540d7c38 --- /dev/null +++ b/src/main/java/gg/projecteden/parchment/event/sound/SoundEvent.java -@@ -0,0 +1,123 @@ +@@ -0,0 +1,380 @@ +package gg.projecteden.parchment.event.sound; + +import gg.projecteden.parchment.OptionalHumanEntity; -+import org.apache.commons.lang.Validate; -+import org.bukkit.SoundCategory; -+import org.bukkit.World; ++import net.kyori.adventure.sound.Sound; ++import org.bukkit.Location; ++import org.bukkit.entity.Entity; +import org.bukkit.entity.HumanEntity; ++import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; ++import org.slf4j.Logger; ++ ++import java.util.ArrayList; ++import java.util.List; ++import java.util.Objects; ++import java.util.function.Function; + +/** -+ * Called when a sound is sent to a player. Cancelling this event will prevent the packet from sending. ++ * Called when a sound is sent to a player. ++ * Cancelling this event will prevent the packet from sending. + */ -+public abstract class SoundEvent extends Event implements Cancellable, OptionalHumanEntity { -+ private @Nullable final HumanEntity receiver; -+ private @NotNull SoundCategory category; -+ private float volume; -+ private float pitch; ++public final class SoundEvent extends Event implements Cancellable, OptionalHumanEntity { ++ private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(SoundEvent.class); + -+ public SoundEvent(@Nullable HumanEntity receiver, @NotNull SoundCategory category, float volume, float pitch) { -+ super(true); -+ Validate.notNull(category, "category cannot be null"); -+ this.receiver = receiver; -+ this.category = category; -+ this.volume = volume; -+ this.pitch = pitch; -+ } -+ -+ /** -+ * Gets the player that this sound will be sent to. May be null if the sound is being played to several players. -+ * @return player receiving the sound -+ */ -+ @Override -+ public @Nullable HumanEntity getPlayer() { -+ return receiver; -+ } -+ -+ /** -+ * Gets the category of sounds this will be played with. -+ * @return category of sounds -+ */ -+ public @NotNull SoundCategory getCategory() { -+ return category; -+ } -+ -+ /** -+ * Gets the volume of the sound to be played. Should be non-negative. -+ * @return sound volume -+ */ -+ public float getVolume() { -+ return volume; -+ } -+ -+ /** -+ * Gets the pitch of the sound to be played. Should be within the range [0,2]. -+ * @return sound pitch -+ */ -+ public float getPitch() { -+ return pitch; -+ } -+ -+ /** -+ * Sets the category of sounds this will be played with. -+ * @param category category of sounds -+ */ -+ public void setCategory(@NotNull SoundCategory category) { -+ Validate.notNull(category, "category cannot be null"); -+ this.category = category; -+ } -+ -+ /** -+ * Sets the volume of the sound to be played. Must be non-negative. -+ * @param volume sound volume -+ */ -+ public void setVolume(float volume) { -+ Validate.isTrue(volume >= 0, "volume should be non-negative"); -+ this.volume = volume; -+ } -+ -+ /** -+ * Sets the pitch of the sound to be played. Must be within the range [0,2]. -+ * @param pitch sound pitch -+ */ -+ public void setPitch(float pitch) { -+ Validate.isTrue(pitch >= 0 && pitch <= 2, "pitch should be within range [0,2]"); -+ this.pitch = pitch; -+ } -+ -+ // boilerplate ++ private static final org.bukkit.event.HandlerList handlers = new org.bukkit.event.HandlerList(); ++ public static final @NotNull Function DEFAULT_DISTANCE_FUNCTION = event -> event.volume() > 1.0F ? (double) (16.0F * event.volume()) : 16.0D; ++ public static final @NotNull Function> DEFAULT_RECIPIENTS_FUNCTION = new WrappedRecipientsFunction(event -> { ++ final double distance = event.calculateDistance(); ++ final Location loc = event.getEmitter().location(); ++ return loc.getWorld().getPlayers().stream() ++ .filter(player -> { ++ Location pl = player.getLocation(); ++ double x = loc.getX() - pl.getX(); ++ double y = loc.getY() - pl.getY(); ++ double z = loc.getZ() - pl.getZ(); ++ return x * x + y * y + z * z < distance * distance; ++ }) ++ .toList(); ++ }); + ++ private @Nullable HumanEntity except; ++ private @NotNull Function<@NotNull Sound, @NotNull Double> distanceFunction; ++ private @NotNull Function<@NotNull SoundEvent, @NotNull List<@NotNull Player>> recipientsFunction; // TODO replace with Player -> Nullable Sound function ? ++ private @NotNull Sound sound; ++ private @NotNull Emitter emitter; + private boolean cancelled; ++ private long seed; ++ private @Nullable Function<@NotNull Player, @Nullable Sound> soundOverrideFunction; ++ private @Nullable Function<@NotNull Player, @Nullable Emitter> emitterOverrideFunction; ++ ++ public SoundEvent(@Nullable HumanEntity except, @NotNull Sound sound, @NotNull Emitter emitter, long seed, @Nullable Function distanceFunction, @Nullable Function> recipientsFunction) { ++ super(true); ++ this.except = except; ++ this.sound = Objects.requireNonNull(sound, "sound cannot be null"); ++ this.emitter = Objects.requireNonNull(emitter, "emitter cannot be null"); ++ this.seed = seed; ++ this.distanceFunction = Objects.requireNonNullElse(distanceFunction, DEFAULT_DISTANCE_FUNCTION); ++ this.recipientsFunction = wrapRecipientsFunction(Objects.requireNonNullElse(recipientsFunction, DEFAULT_RECIPIENTS_FUNCTION)); ++ } ++ ++ /** ++ * Gets the player that won't be receiving this sound. ++ * ++ * @return player excluded from receiving this sound ++ * @deprecated use {@link #getException()} for more clarity ++ */ ++ @Override ++ @Deprecated ++ public @Nullable HumanEntity getPlayer() { ++ return getException(); ++ } ++ ++ /** ++ * Gets the player that won't be receiving this sound. ++ * ++ * @return player excluded from receiving this sound ++ */ ++ public @Nullable HumanEntity getException() { ++ return except; ++ } ++ ++ /** ++ * Sets the player that won't be receiving this sound. ++ * ++ * @param except player excluded from receiving this sound ++ */ ++ public void setException(@Nullable HumanEntity except) { ++ this.except = except; ++ } ++ ++ /** ++ * Gets the sound that will be sent. ++ * ++ * @return sound that will be sent ++ */ ++ public @NotNull Sound getSound() { ++ return sound; ++ } ++ ++ /** ++ * Sets the sound that will be sent. ++ * ++ * @param sound sound that will be sent ++ */ ++ public void setSound(@NotNull Sound sound) { ++ this.sound = Objects.requireNonNull(sound, "sound cannot be null"); ++ } ++ ++ /** ++ * Gets the emitter which determines how and where the sound will be played from. ++ * ++ * @return emitter which determines how and where the sound will be played from ++ */ ++ public @NotNull Emitter getEmitter() { ++ return emitter; ++ } ++ ++ /** ++ * Sets the emitter which determines how and where the sound will be played from. ++ * ++ * @param emitter emitter which determines how and where the sound will be played from ++ */ ++ public void setEmitter(@NotNull Emitter emitter) { ++ this.emitter = Objects.requireNonNull(emitter, "emitter cannot be null"); ++ } ++ ++ /** ++ * Gets the seed used to generate the sound. ++ * ++ * @return seed used to generate the sound ++ */ ++ public long getSeed() { ++ return seed; ++ } ++ ++ /** ++ * Sets the seed used to generate the sound. ++ * ++ * @param seed seed used to generate the sound ++ */ ++ public void setSeed(long seed) { ++ this.seed = seed; ++ } ++ ++ /** ++ * Calculates the distance of the sound. ++ *

++ * The distance value is dynamically calculated using a ++ * {@link Function Function<SoundEvent, Double>}. ++ * In vanilla Minecraft, the default function is {@link #DEFAULT_DISTANCE_FUNCTION} ++ * ({@code event -> event.getVolume() > 1.0F ? (double) (16.0F * event.getVolume()) : 16.0D}). ++ *

++ * This is used by the vanilla implementation of {@link #calculateRecipients()}, though custom ++ * implementations won't always use this method. ++ * ++ * @return calculated distance ++ * @see #getDistanceFunction() ++ * @see #setDistanceFunction(Function) ++ */ ++ public double calculateDistance() { ++ return distanceFunction.apply(sound); ++ } ++ ++ /** ++ * Gets the function that calculates the distance of the sound. ++ * ++ * @return distance function ++ * @see #calculateDistance() ++ * @see #setDistanceFunction(Function) ++ */ ++ public @NotNull Function<@NotNull Sound, @NotNull Double> getDistanceFunction() { ++ return distanceFunction; ++ } ++ ++ /** ++ * Sets the function that calculates the distance of the sound. ++ * ++ * @param distanceFunction distance function ++ * @see #calculateDistance() ++ * @see #getDistanceFunction() ++ */ ++ public void setDistanceFunction(@NotNull Function<@NotNull Sound, @NotNull Double> distanceFunction) { ++ this.distanceFunction = Objects.requireNonNull(distanceFunction, "distanceFunction cannot be null"); ++ } ++ ++ /** ++ * Determines which players will receive this sound packet. ++ * ++ * @return immutable list of players ++ * @see #getRecipientsFunction() ++ * @see #setRecipientsFunction(Function) ++ */ ++ public @NotNull List calculateRecipients() { ++ return recipientsFunction.apply(this); ++ } ++ ++ /** ++ * Gets the function that determines which players will receive the sound packet. ++ * ++ * @return recipients function ++ * @see #calculateRecipients() ++ * @see #setRecipientsFunction(Function) ++ */ ++ public @NotNull Function<@NotNull SoundEvent, @NotNull List<@NotNull Player>> getRecipientsFunction() { ++ return recipientsFunction; ++ } ++ ++ /** ++ * Sets the function that determines which players will receive the sound packet. ++ *

++ * This function does not need to query {@link #getException()} as this is done automatically. ++ * ++ * @param recipientsFunction recipients function ++ * @see #calculateRecipients() ++ * @see #getRecipientsFunction() ++ */ ++ public void setRecipientsFunction(@NotNull Function<@NotNull SoundEvent, @NotNull List<@NotNull Player>> recipientsFunction) { ++ this.recipientsFunction = wrapRecipientsFunction(Objects.requireNonNull(recipientsFunction, "recipientsFunction cannot be null")); ++ } ++ ++ /** ++ * Gets the function that overrides what {@link Sound} is sent to a {@link Player}. ++ * ++ * @return sound override function (or {@code null} if not overridden) ++ */ ++ public @Nullable Function<@NotNull Player, @Nullable Sound> getSoundOverrideFunction() { ++ return soundOverrideFunction; ++ } ++ ++ /** ++ * Sets the function that overrides what {@link Sound} is sent to a {@link Player}. ++ * ++ * @param soundOverrideFunction function which accepts a player and returns a sound ++ * (or {@code null} if the default sound should be used) ++ */ ++ public void setSoundOverrideFunction(@Nullable Function<@NotNull Player, @Nullable Sound> soundOverrideFunction) { ++ this.soundOverrideFunction = soundOverrideFunction; ++ } ++ ++ /** ++ * Calculates the sound that will be sent to a {@link Player}. ++ * ++ * @param player player to calculate the sound for ++ * @return sound that will be sent to the player ++ */ ++ public @NotNull Sound calculateSound(@NotNull Player player) { ++ if (soundOverrideFunction != null) { ++ try { ++ Sound override = soundOverrideFunction.apply(player); ++ if (override != null) { ++ return override; ++ } ++ } catch (Throwable e) { ++ LOGGER.error("Error while overriding sound for player " + player.getName(), e); ++ } ++ } ++ return sound; ++ } ++ ++ /** ++ * Gets the function that overrides what {@link Emitter} is used when playing this sound to a ++ * {@link Player}. ++ * ++ * @return emitter override function (or {@code null} if not overridden) ++ */ ++ public @Nullable Function<@NotNull Player, @Nullable Emitter> getEmitterOverrideFunction() { ++ return emitterOverrideFunction; ++ } ++ ++ /** ++ * Sets the function that overrides what {@link Emitter} is used when playing this sound to a ++ * {@link Player}. ++ * ++ * @param emitterOverrideFunction function which accepts a player and returns an emitter ++ * (or {@code null} if the default emitter should be used) ++ */ ++ public void setEmitterOverrideFunction(@Nullable Function<@NotNull Player, @Nullable Emitter> emitterOverrideFunction) { ++ this.emitterOverrideFunction = emitterOverrideFunction; ++ } ++ ++ /** ++ * Calculates the emitter that will be used when playing this sound to a {@link Player}. ++ * ++ * @param player player to calculate the emitter for ++ * @return emitter that will be used when playing the sound to the player ++ */ ++ public @NotNull Emitter calculateEmitter(@NotNull Player player) { ++ if (emitterOverrideFunction != null) { ++ try { ++ Emitter override = emitterOverrideFunction.apply(player); ++ if (override != null) { ++ return override; ++ } ++ } catch (Throwable e) { ++ LOGGER.error("Error while overriding emitter for player " + player.getName(), e); ++ } ++ } ++ return emitter; ++ } + + @Override + public boolean isCancelled() { @@ -392,22 +322,71 @@ index 0000000000000000000000000000000000000000..0506c9e461296aeb12da23b476b9b1c5 + this.cancelled = cancelled; + } + -+ /** -+ * Gets the world in which the sound is being played -+ * @return sound's world -+ */ + @NotNull -+ public abstract World getWorld(); -+ -+ private static final org.bukkit.event.HandlerList handlers = new org.bukkit.event.HandlerList(); ++ public static org.bukkit.event.HandlerList getHandlerList() { ++ return handlers; ++ } + + @Override + public @NotNull org.bukkit.event.HandlerList getHandlers() { + return handlers; + } + ++ private record WrappedRecipientsFunction(@NotNull Function> wrapped) implements Function> { ++ @Override ++ public List apply(SoundEvent event) { ++ List recipients = wrapped.apply(event); ++ HumanEntity except = event.getException(); ++ if (except != null) { ++ List filteredRecipients = new ArrayList<>(recipients.size()); ++ for (Player player : recipients) { ++ if (!player.getUniqueId().equals(except.getUniqueId())) ++ filteredRecipients.add(player); ++ } ++ return filteredRecipients; ++ } ++ return recipients; ++ } ++ } ++ + @NotNull -+ public static org.bukkit.event.HandlerList getHandlerList() { -+ return handlers; ++ private static Function> wrapRecipientsFunction(@NotNull Function> recipientsFunction) { ++ if (recipientsFunction instanceof WrappedRecipientsFunction) ++ return recipientsFunction; ++ else ++ return new WrappedRecipientsFunction(recipientsFunction); ++ } ++ ++ /** ++ * The class which determines where a sound will emit from. ++ */ ++ public sealed interface Emitter permits EntityEmitter, LocationEmitter { ++ /** ++ * Gets the location at which the sound will be played. ++ * ++ * @return sound's location ++ */ ++ @NotNull ++ Location location(); ++ } ++ ++ /** ++ * An emitter which plays a sound from an entity. ++ * ++ * @param entity the entity from which the sound will be played ++ */ ++ public record EntityEmitter(@NotNull Entity entity) implements Emitter { ++ @Override ++ public @NotNull Location location() { ++ return entity.getLocation(); ++ } ++ } ++ ++ /** ++ * An emitter which plays a sound from a location. ++ * ++ * @param location the location from which the sound will be played ++ */ ++ public record LocationEmitter(@NotNull Location location) implements Emitter { + } +} diff --git a/patches/api/0005-Expanded-Adventure-support.patch b/patches/api/0005-Expanded-Adventure-support.patch index 5751986..1d9e1a9 100644 --- a/patches/api/0005-Expanded-Adventure-support.patch +++ b/patches/api/0005-Expanded-Adventure-support.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Expanded Adventure support Adds support for Adventure in a few places where it was previously missing. diff --git a/src/main/java/org/bukkit/ChatColor.java b/src/main/java/org/bukkit/ChatColor.java -index 4594701d77c5d0f744bece871b98d9f6f73eb5a7..136f87f6cd2f3a56cfa645084fd6446a20f2e88e 100644 +index f6eb30f53dad684f156102cf7147b2f00c82c71e..1b4e9840f0e829be533ad0bd1c918489642245c2 100644 --- a/src/main/java/org/bukkit/ChatColor.java +++ b/src/main/java/org/bukkit/ChatColor.java @@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable; @@ -120,10 +120,10 @@ index 4594701d77c5d0f744bece871b98d9f6f73eb5a7..136f87f6cd2f3a56cfa645084fd6446a * Gets the char value associated with this color * diff --git a/src/main/java/org/bukkit/Color.java b/src/main/java/org/bukkit/Color.java -index deae003b7e9a96bbf1c0167d3e1d864e61b07f82..53afcd97fc34bceff741ee118f63226781f9c895 100644 +index d2f8f5a8e49f60422b6a41e51248a6710251d61b..40b09a861ba365b126c2b28bb7f18c8fb8b3e5b5 100644 --- a/src/main/java/org/bukkit/Color.java +++ b/src/main/java/org/bukkit/Color.java -@@ -13,7 +13,7 @@ import org.jetbrains.annotations.NotNull; +@@ -15,7 +15,7 @@ import org.jetbrains.annotations.NotNull; * but subject to change. */ @SerializableAs("Color") @@ -132,7 +132,7 @@ index deae003b7e9a96bbf1c0167d3e1d864e61b07f82..53afcd97fc34bceff741ee118f632267 private static final int BIT_MASK = 0xff; /** -@@ -242,6 +242,13 @@ public final class Color implements ConfigurationSerializable { +@@ -244,6 +244,13 @@ public final class Color implements ConfigurationSerializable { return getRed() << 16 | getGreen() << 8 | getBlue() << 0; } diff --git a/patches/api/0008-Expose-MCUtil-Executors.patch b/patches/api/0008-Expose-MCUtil-Executors.patch index 17bcbeb..dceba84 100644 --- a/patches/api/0008-Expose-MCUtil-Executors.patch +++ b/patches/api/0008-Expose-MCUtil-Executors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose MCUtil Executors diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 79b26045a68ebb9b01e5bd06abbccaaef5489777..da7d4eb2beea848e60d8c8cfe2a5abf0d6761950 100644 +index 30b49aed62fa67276e8964922ea3f84458d854bb..c78ca045a0a7fa651a34f76c802bb82cd6ac4d13 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java -@@ -2055,4 +2055,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi +@@ -2065,4 +2065,20 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi */ @NotNull org.bukkit.potion.PotionBrewer getPotionBrewer(); // Paper end diff --git a/patches/server/0001-Build-changes.patch b/patches/server/0001-Build-changes.patch index 155a679..01455a4 100644 --- a/patches/server/0001-Build-changes.patch +++ b/patches/server/0001-Build-changes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Build changes diff --git a/build.gradle.kts b/build.gradle.kts -index 0282e3b75470e1a68ea1fc228082483514ba432e..9c860b39f1131920ea747783423a736b8ca2c915 100644 +index 68b8f275f9c9e77a949ca29749a05b469bcdb910..82d6922ca22eee74de2140789787e6e5da51378c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,8 +9,8 @@ plugins { @@ -19,7 +19,7 @@ index 0282e3b75470e1a68ea1fc228082483514ba432e..9c860b39f1131920ea747783423a736b // Paper start implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("net.minecrell:terminalconsoleappender:1.3.0") -@@ -60,7 +60,7 @@ tasks.jar { +@@ -64,7 +64,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -28,7 +28,7 @@ index 0282e3b75470e1a68ea1fc228082483514ba432e..9c860b39f1131920ea747783423a736b "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -77,7 +77,27 @@ tasks.jar { +@@ -81,7 +81,27 @@ tasks.jar { publishing { publications.create("maven") { @@ -57,7 +57,7 @@ index 0282e3b75470e1a68ea1fc228082483514ba432e..9c860b39f1131920ea747783423a736b } } -@@ -148,7 +168,7 @@ fun TaskContainer.registerRunTask( +@@ -152,7 +172,7 @@ fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -67,7 +67,7 @@ index 0282e3b75470e1a68ea1fc228082483514ba432e..9c860b39f1131920ea747783423a736b standardInput = System.`in` workingDir = rootProject.layout.projectDirectory diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java -index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..52126870f1fc15a9ddce4452673b236ea692860f 100644 +index 7b1843e16745ca8db2244e17490d291401f22679..c340575e9c2a114f2165b74feb4481975821811c 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java @@ -73,7 +73,7 @@ public class Metrics { @@ -104,10 +104,10 @@ index bf42969859545a8a520923ef1836ffa4a5cc24a0..2532e265c5dade55f71c34fcab6d1e74 org.bukkit.Bukkit.getLogger().warning("Version: " + org.bukkit.Bukkit.getBukkitVersion()); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index da15a224b8b974e78b9d8d5f514229b3b2a5a63e..f2b5e78b3fe68c38e755b9b4a8f96077ac6800f2 100644 +index 32dc0cd20a4dd8fc02be1f7ba3d727db826dbe5d..d48ac4df6f9cde9ccdc068010e977206dd838eaf 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1696,7 +1696,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop DISTANCE_FUNCTION = sound -> { ++ Optional soundEvent = PaperAdventure.asVanillaSound(sound.name()); ++ if (soundEvent.isPresent()) ++ return Double.valueOf(soundEvent.get().getRange(sound.volume())); ++ return gg.projecteden.parchment.event.sound.SoundEvent.DEFAULT_DISTANCE_FUNCTION.apply(sound); ++ }; ++ ++ public static gg.projecteden.parchment.event.sound.SoundEvent.Emitter createEmitter(Level level, double x, double y, double z) { ++ return new gg.projecteden.parchment.event.sound.SoundEvent.LocationEmitter(new Location(level.getWorld(), x, y, z)); ++ } ++ ++ public static gg.projecteden.parchment.event.sound.SoundEvent.Emitter createEmitter(Entity entity) { ++ return new gg.projecteden.parchment.event.sound.SoundEvent.EntityEmitter(entity.getBukkitEntity()); ++ } ++} +diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java +index 3f25a9b1a74cfa0c9a4d0379ecda109d99f33db3..b954cda43afbfd367f7f8f436dca65f900706ccb 100644 +--- a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java ++++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java +@@ -302,6 +302,32 @@ public final class PaperAdventure { + return asVanilla(source); + } + ++ // Parchment start ++ public static Sound.Source asAdventure(final SoundSource source) { ++ return switch (source) { ++ case MASTER -> Sound.Source.MASTER; ++ case MUSIC -> Sound.Source.MUSIC; ++ case RECORDS -> Sound.Source.RECORD; ++ case WEATHER -> Sound.Source.WEATHER; ++ case BLOCKS -> Sound.Source.BLOCK; ++ case HOSTILE -> Sound.Source.HOSTILE; ++ case NEUTRAL -> Sound.Source.NEUTRAL; ++ case PLAYERS -> Sound.Source.PLAYER; ++ case AMBIENT -> Sound.Source.AMBIENT; ++ case VOICE -> Sound.Source.VOICE; ++ }; ++ } ++ ++ public static java.util.Optional asVanillaSound(final Key key) { ++ return net.minecraft.core.Registry.SOUND_EVENT.getOptional(asVanilla(key)); ++ } ++ ++ @SuppressWarnings("PatternValidation") ++ public static Key asAdventure(final ResourceLocation key) { ++ return Key.key(key.getNamespace(), key.getPath()); ++ } ++ // Parchment end ++ + // NBT + + public static @Nullable BinaryTagHolder asBinaryTagHolder(final @Nullable CompoundTag tag) { diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 98209532ad3e692d7e459640123f78bbd9a65889..53f5e22370f3bc0d29cc38641d67e869305ced86 100644 +index 0dc7a827aeacc7fae53b1f975f45883da7db6a0c..782be663520c27fccb58484ec56cc94def38f136 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1520,12 +1520,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1540,12 +1540,40 @@ public class ServerLevel extends Level implements WorldGenLevel { @Override - public void playSound(@Nullable Player except, double x, double y, double z, SoundEvent sound, SoundSource category, float volume, float pitch) { -- this.server.getPlayerList().broadcast(except, x, y, z, volume > 1.0F ? (double) (16.0F * volume) : 16.0D, this.dimension(), new ClientboundSoundPacket(sound, category, x, y, z, volume, pitch)); -+ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.LocationNamedSoundEvent(null, getWorld(), new org.bukkit.util.Vector(x, y, z), org.bukkit.craftbukkit.CraftSound.getBukkit(sound), org.bukkit.SoundCategory.valueOf(category.name()), volume, pitch), this.server, volume > 1.0F ? (double) (16.0F * volume) : 16.0D); // Parchment + public void playSeededSound(@Nullable Player except, double x, double y, double z, SoundEvent sound, SoundSource category, float volume, float pitch, long seed) { +- this.server.getPlayerList().broadcast(except, x, y, z, (double) sound.getRange(volume), this.dimension(), new ClientboundSoundPacket(sound, category, x, y, z, volume, pitch, seed)); ++ // Parchment start - sound event ++ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.SoundEvent( ++ except == null ? null : except.getBukkitEntity(), ++ net.kyori.adventure.sound.Sound.sound( ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(sound.getLocation()), ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(category), ++ volume, ++ pitch ++ ), ++ gg.projecteden.parchment.event.sound.ParchmentSoundEvent.createEmitter(this, x, y, z), ++ seed, ++ gg.projecteden.parchment.event.sound.ParchmentSoundEvent.DISTANCE_FUNCTION, ++ null ++ )); ++ // Parchment end } @Override - public void playSound(@Nullable Player except, Entity entity, SoundEvent sound, SoundSource category, float volume, float pitch) { -- this.server.getPlayerList().broadcast(except, entity.getX(), entity.getY(), entity.getZ(), volume > 1.0F ? (double) (16.0F * volume) : 16.0D, this.dimension(), new ClientboundSoundEntityPacket(sound, category, entity, volume, pitch)); -+ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.EntitySoundEvent(null, entity.getBukkitEntity(), org.bukkit.craftbukkit.CraftSound.getBukkit(sound), org.bukkit.SoundCategory.valueOf(category.name()), volume, pitch), this.server, volume > 1.0F ? (double) (16.0F * volume) : 16.0D); // Parchment + public void playSeededSound(@Nullable Player except, Entity entity, SoundEvent sound, SoundSource category, float volume, float pitch, long seed) { +- this.server.getPlayerList().broadcast(except, entity.getX(), entity.getY(), entity.getZ(), (double) sound.getRange(volume), this.dimension(), new ClientboundSoundEntityPacket(sound, category, entity, volume, pitch, seed)); ++ // Parchment start - sound event ++ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.SoundEvent( ++ except == null ? null : except.getBukkitEntity(), ++ net.kyori.adventure.sound.Sound.sound( ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(sound.getLocation()), ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(category), ++ volume, ++ pitch ++ ), ++ gg.projecteden.parchment.event.sound.ParchmentSoundEvent.createEmitter(entity), ++ seed, ++ gg.projecteden.parchment.event.sound.ParchmentSoundEvent.DISTANCE_FUNCTION, ++ null ++ )); ++ // Parchment end } @Override diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a6edf5117d4ae03d8294e7bb74dd2d77048895a5..0f29fd8768d4443211e85c96f624c12d60f488da 100644 +index c8057f98e16ba6e19640e0b250e5201e0f4f57db..f2048fe46e0231e877d4e61f30387406fef82d51 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -2195,7 +2195,7 @@ public class ServerPlayer extends Player { +@@ -2221,7 +2221,19 @@ public class ServerPlayer extends Player { @Override public void playNotifySound(SoundEvent event, SoundSource category, float volume, float pitch) { -- this.connection.send(new ClientboundSoundPacket(event, category, this.getX(), this.getY(), this.getZ(), volume, pitch)); -+ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.LocationNamedSoundEvent(getBukkitEntity(), org.bukkit.craftbukkit.CraftSound.getBukkit(event), org.bukkit.SoundCategory.valueOf(category.name()), volume, pitch), this); // Parchment +- this.connection.send(new ClientboundSoundPacket(event, category, this.getX(), this.getY(), this.getZ(), volume, pitch, this.random.nextLong())); ++ // Parchment start - sound event ++ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.SoundEvent( ++ null, ++ net.kyori.adventure.sound.Sound.sound( ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(event.getLocation()), ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(category), ++ volume, ++ pitch ++ ), ++ gg.projecteden.parchment.event.sound.ParchmentSoundEvent.createEmitter(level, getX(), getY(), getZ()), ++ this.random.nextLong(), sound -> 0d, soundEvent -> java.util.Collections.singletonList(getBukkitEntity()) ++ )); ++ // Parchment end } @Override diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 624946f48f0811c94d05174f28d0b1fc6d5e6a00..ebc22dc4729146f9e28830a64204daf0084018a3 100644 +index 20cdfdb3b9351f74e89bc45b3ab972384165659a..aaef762c95584103937955413629aa11f7cf2bd0 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -974,7 +974,7 @@ public abstract class PlayerList { +@@ -977,7 +977,7 @@ public abstract class PlayerList { if (flag2 && !isLocAltered) { BlockState data = worldserver1.getBlockState(blockposition); - worldserver1.setBlock(blockposition, data.setValue(RespawnAnchorBlock.CHARGE, data.getValue(RespawnAnchorBlock.CHARGE) - 1), 3); -- entityplayer1.connection.send(new ClientboundSoundPacket(SoundEvents.RESPAWN_ANCHOR_DEPLETE, SoundSource.BLOCKS, (double) location.getX(), (double) location.getY(), (double) location.getZ(), 1.0F, 1.0F)); -+ entityplayer1.playNotifySound(SoundEvents.RESPAWN_ANCHOR_DEPLETE, SoundSource.BLOCKS, 1.0F, 1.0F); // Parchment + worldserver1.setBlock(blockposition, data.setValue(net.minecraft.world.level.block.RespawnAnchorBlock.CHARGE, data.getValue(net.minecraft.world.level.block.RespawnAnchorBlock.CHARGE) - 1), 3); +- entityplayer1.connection.send(new ClientboundSoundPacket(SoundEvents.RESPAWN_ANCHOR_DEPLETE, SoundSource.BLOCKS, (double) location.getX(), (double) location.getY(), (double) location.getZ(), 1.0F, 1.0F, worldserver1.getRandom().nextLong())); ++ entityplayer1.playNotifySound(SoundEvents.RESPAWN_ANCHOR_DEPLETE, SoundSource.BLOCKS, 1.0F, 1.0F); // Parchment - use existing play sound method // Paper end } // Added from changeDimension diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 2483d7df7f1bf94344afd38b37602c645a4a2dff..ef8038587117829c84a237a52498496cd39ab91a 100644 +index cd9cbfa5ef94994b3f7f2ecdde843620e7e6c071..bc6bdc8752718777ac698cfda2a0e7f35fcf9896 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1849,7 +1849,7 @@ public abstract class Player extends LivingEntity { +@@ -1898,7 +1898,21 @@ public abstract class Player extends LivingEntity { private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { fromEntity.level.playSound(fromEntity, x, y, z, soundEffect, soundCategory, volume, pitch); // This will not send the effect to the entity himself if (fromEntity instanceof ServerPlayer) { -- ((ServerPlayer) fromEntity).connection.send(new ClientboundSoundPacket(soundEffect, soundCategory, x, y, z, volume, pitch)); -+ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.LocationNamedSoundEvent(fromEntity.getBukkitEntity(), new org.bukkit.util.Vector(x, y, z), org.bukkit.craftbukkit.CraftSound.getBukkit(soundEffect), org.bukkit.SoundCategory.valueOf(soundCategory.name()), volume, pitch), (ServerPlayer) fromEntity); // Parchment +- ((ServerPlayer) fromEntity).connection.send(new net.minecraft.network.protocol.game.ClientboundSoundPacket(soundEffect, soundCategory, x, y, z, volume, pitch, fromEntity.random.nextLong())); ++ // Parchment start - sound event ++ CraftEventFactory.playSoundEvent(new gg.projecteden.parchment.event.sound.SoundEvent( ++ null, ++ net.kyori.adventure.sound.Sound.sound( ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(soundEffect.getLocation()), ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(soundCategory), ++ volume, ++ pitch ++ ), ++ gg.projecteden.parchment.event.sound.ParchmentSoundEvent.createEmitter(fromEntity.level, x, y, z), ++ fromEntity.random.nextLong(), ++ sound -> 0d, ++ soundEvent -> java.util.Collections.singletonList(((ServerPlayer) fromEntity).getBukkitEntity()) ++ )); ++ // Parchment end } } // Paper end diff --git a/src/main/java/net/minecraft/world/entity/raid/Raid.java b/src/main/java/net/minecraft/world/entity/raid/Raid.java -index f50abfd058e3adf1cf8c0f4468a60bc04e8541e7..2ff60e8fa65626a9805597776b9163fd40e6807d 100644 +index 6a0a1731fd6804eb69d3641213712d31bce085b2..81819d12e0becde85b6d66f3b3ffedde847a72f6 100644 --- a/src/main/java/net/minecraft/world/entity/raid/Raid.java +++ b/src/main/java/net/minecraft/world/entity/raid/Raid.java -@@ -26,7 +26,7 @@ import net.minecraft.nbt.ListTag; - import net.minecraft.nbt.NbtUtils; - import net.minecraft.network.chat.Component; - import net.minecraft.network.chat.TranslatableComponent; --import net.minecraft.network.protocol.game.ClientboundSoundPacket; -+//import net.minecraft.network.protocol.game.ClientboundSoundPacket; // Parchment - import net.minecraft.server.level.ServerBossEvent; - import net.minecraft.server.level.ServerLevel; - import net.minecraft.server.level.ServerPlayer; -@@ -537,7 +537,7 @@ public class Raid { +@@ -526,7 +526,7 @@ public class Raid { + float f = 13.0F; + boolean flag = true; + Collection collection = this.raidEvent.getPlayers(); +- long i = this.random.nextLong(); ++ //long i = this.random.nextLong(); // Parchment - remove redundant variable + Iterator iterator = this.level.players().iterator(); + + while (iterator.hasNext()) { +@@ -538,7 +538,7 @@ public class Raid { double d2 = vec3d.z + 13.0D / d0 * (vec3d1.z - vec3d.z); if (d0 <= 64.0D || collection.contains(entityplayer)) { -- entityplayer.connection.send(new ClientboundSoundPacket(SoundEvents.RAID_HORN, SoundSource.NEUTRAL, d1, entityplayer.getY(), d2, 64.0F, 1.0F)); -+ entityplayer.playNotifySound(SoundEvents.RAID_HORN, SoundSource.NEUTRAL, 64.0F, 1.0F); // Parchment +- entityplayer.connection.send(new ClientboundSoundPacket(SoundEvents.RAID_HORN, SoundSource.NEUTRAL, d1, entityplayer.getY(), d2, 64.0F, 1.0F, i)); ++ entityplayer.playNotifySound(SoundEvents.RAID_HORN, SoundSource.NEUTRAL, 64.0F, 1.0F); // Parchment - use existing play sound method } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index ceacb62aef0dd0f73f1542a1898ceb62c3f4c367..70d445429fec455f8188341ffd401e83f6bdab1c 100644 +index 1d8ec0f85ec42f2dcd9405df83b526ae1c59de6f..1547cd54b805e46ebcf8d7a910533f29537c2c55 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1917,4 +1917,77 @@ public class CraftEventFactory { +@@ -2,7 +2,6 @@ package org.bukkit.craftbukkit.event; + + import com.google.common.base.Function; + import com.google.common.base.Functions; +-import com.google.common.collect.Lists; + import com.mojang.datafixers.util.Either; + import java.net.InetAddress; + import java.util.ArrayList; +@@ -1919,4 +1918,52 @@ public class CraftEventFactory { return event.callEvent(); } // Paper end + + // Parchment start -+ private static net.minecraft.network.protocol.Packet handleSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent _event) { -+ if (!_event.callEvent()) { -+ return null; -+ } else { -+ float volume = _event.getVolume(); -+ float pitch = _event.getPitch(); -+ net.minecraft.sounds.SoundSource source = net.minecraft.sounds.SoundSource.valueOf(_event.getCategory().name()); -+ -+ if (_event instanceof gg.projecteden.parchment.event.sound.NamedSoundEvent namedSoundEvent) { -+ net.minecraft.sounds.SoundEvent sound = org.bukkit.craftbukkit.CraftSound.getSoundEffect(namedSoundEvent.getSound()); -+ -+ if (_event instanceof gg.projecteden.parchment.event.sound.LocationNamedSoundEvent event) { -+ org.bukkit.util.Vector pos = event.getVector(); -+ return new net.minecraft.network.protocol.game.ClientboundSoundPacket(sound, source, pos.getX(), pos.getY(), pos.getZ(), volume, pitch); -+ } else { -+ gg.projecteden.parchment.event.sound.EntitySoundEvent event = (gg.projecteden.parchment.event.sound.EntitySoundEvent) _event; -+ return new net.minecraft.network.protocol.game.ClientboundSoundEntityPacket(sound, source, ((CraftEntity) event.getOrigin()).getHandle(), volume, pitch); -+ } -+ } else { -+ gg.projecteden.parchment.event.sound.LocationCustomSoundEvent event = (gg.projecteden.parchment.event.sound.LocationCustomSoundEvent) _event; -+ org.bukkit.util.Vector pos = event.getVector(); -+ return new net.minecraft.network.protocol.game.ClientboundCustomSoundPacket(CraftNamespacedKey.toMinecraft(event.getKey()), source, org.bukkit.craftbukkit.util.CraftVector.toNMS(pos), volume, pitch); ++ private static net.minecraft.network.protocol.@org.jetbrains.annotations.NotNull Packet handleSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event, CraftPlayer recipient) { ++ // init variables ++ net.kyori.adventure.sound.Sound sound = event.calculateSound(recipient); ++ gg.projecteden.parchment.event.sound.SoundEvent.Emitter emitter = event.calculateEmitter(recipient); ++ net.minecraft.sounds.SoundSource source = io.papermc.paper.adventure.PaperAdventure.asVanilla(sound.source()); ++ float volume = sound.volume(); ++ float pitch = sound.pitch(); ++ long seed = event.getSeed(); ++ java.util.Optional soundEvent = io.papermc.paper.adventure.PaperAdventure.asVanillaSound(sound.name()); ++ // handle vanilla sounds ++ if (soundEvent.isPresent()) { ++ if (emitter instanceof gg.projecteden.parchment.event.sound.SoundEvent.EntityEmitter entityEmitter) ++ return new net.minecraft.network.protocol.game.ClientboundSoundEntityPacket(soundEvent.get(), source, ((CraftEntity) entityEmitter.entity()).getHandle(), volume, pitch, seed); ++ else if (emitter instanceof gg.projecteden.parchment.event.sound.SoundEvent.LocationEmitter locationEmitter) { ++ Location loc = locationEmitter.location(); ++ return new net.minecraft.network.protocol.game.ClientboundSoundPacket(soundEvent.get(), source, loc.getX(), loc.getY(), loc.getZ(), volume, pitch, seed); + } ++ else ++ throw new IllegalArgumentException("Unknown emitter type: " + emitter.getClass().getName()); ++ } ++ // handle custom sounds ++ else { ++ // warn if trying to use EntityEmitter with custom sound ++ if (emitter instanceof gg.projecteden.parchment.event.sound.SoundEvent.EntityEmitter) ++ org.slf4j.LoggerFactory.getLogger("SoundEvent").warn("Sound event is using a custom sound ({}) which cannot be used with EntityEmitter. Falling back to playing at the entity's location.", sound.name().asString()); ++ Vec3 pos = org.bukkit.craftbukkit.util.CraftVector.toNMS(emitter.location().toVector()); ++ return new net.minecraft.network.protocol.game.ClientboundCustomSoundPacket(io.papermc.paper.adventure.PaperAdventure.asVanilla(sound.name()), source, pos, volume, pitch, seed); + } + } + -+ public static void playSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event, java.util.function.Consumer> soundPlayer) { ++ public static void playSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event) { + org.apache.commons.lang3.Validate.notNull(event, "event"); -+ org.apache.commons.lang3.Validate.notNull(soundPlayer, "soundPlayer"); -+ if (!(event instanceof gg.projecteden.parchment.event.sound.LocationNamedSoundEvent || event instanceof gg.projecteden.parchment.event.sound.LocationCustomSoundEvent || event instanceof gg.projecteden.parchment.event.sound.EntitySoundEvent)) { -+ throw new IllegalArgumentException("Unknown sound event: " + event.getClass().getName()); -+ } -+ java.util.concurrent.CompletableFuture.supplyAsync(() -> handleSoundEvent(event), net.minecraft.server.MCUtil.asyncExecutor).thenAcceptAsync(packet -> { -+ if (packet != null) -+ soundPlayer.accept(packet); -+ }, net.minecraft.server.MCUtil.asyncExecutor); -+ } -+ -+ public static void playSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event, CraftPlayer sendTo) { -+ playSoundEvent(event, sendTo.getHandle()); -+ } -+ -+ public static void playSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event, ServerPlayer sendTo) { -+ playSoundEvent(event, sendTo.connection); -+ } -+ -+ public static void playSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event, net.minecraft.server.network.ServerPlayerConnection sendTo) { -+ playSoundEvent(event, sendTo::send); -+ } -+ -+ public static void playSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event, net.minecraft.server.MinecraftServer server, double radius) { -+ playSoundEvent(event, server.getPlayerList(), radius); -+ } -+ -+ public static void playSoundEvent(gg.projecteden.parchment.event.sound.SoundEvent event, net.minecraft.server.players.PlayerList playerList, double radius) { -+ final net.minecraft.world.entity.player.Player player = event.getPlayer() == null ? null : ((org.bukkit.craftbukkit.entity.CraftHumanEntity) event.getPlayer()).getHandle(); -+ final net.minecraft.resources.ResourceKey world = ((CraftWorld) event.getWorld()).getHandle().dimension(); -+ final org.bukkit.util.Vector pos; -+ if (event instanceof gg.projecteden.parchment.HasLocation hasLoc) { -+ pos = hasLoc.getLocation().toVector(); -+ } else if (event instanceof gg.projecteden.parchment.event.sound.EntitySoundEvent entityEvent) { -+ pos = entityEvent.getOrigin().getLocation().toVector(); -+ } else { -+ throw new IllegalArgumentException("Could not determine location of sound event"); -+ } -+ final double posX = pos.getX(); -+ final double posY = pos.getY(); -+ final double posZ = pos.getZ(); -+ playSoundEvent(event, packet -> playerList.broadcast(player, posX, posY, posZ, radius, world, packet)); ++ if (!event.callEvent()) ++ return; ++ net.minecraft.server.MCUtil.asyncExecutor.execute(() -> { ++ try { ++ for (Player _player : event.calculateRecipients()) { ++ CraftPlayer player = (CraftPlayer) _player; ++ player.getHandle().connection.send(handleSoundEvent(event, player)); ++ } ++ } catch (Throwable e) { ++ org.slf4j.LoggerFactory.getLogger("SoundEvent").error("Error playing sound event", e); ++ } ++ }); + } + // Parchment end } diff --git a/patches/server/0005-Add-origin-location-to-EntityDamageByBlockEvent.patch b/patches/server/0005-Add-origin-location-to-EntityDamageByBlockEvent.patch index 0832f15..2f8c488 100644 --- a/patches/server/0005-Add-origin-location-to-EntityDamageByBlockEvent.patch +++ b/patches/server/0005-Add-origin-location-to-EntityDamageByBlockEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add origin location to EntityDamageByBlockEvent diff --git a/src/main/java/net/minecraft/world/damagesource/BadRespawnPointDamage.java b/src/main/java/net/minecraft/world/damagesource/BadRespawnPointDamage.java -index f5a18fb39eb69b2a9842d3f96aa1cd6a8dff6d9b..456d93305f524da6142bad320edb817b27c6c1e6 100644 +index 968c915cc494bb3c57169b7b3640002c3a4a8810..0c2b2cb4be57b11d748d13a0ec24b7470619267f 100644 --- a/src/main/java/net/minecraft/world/damagesource/BadRespawnPointDamage.java +++ b/src/main/java/net/minecraft/world/damagesource/BadRespawnPointDamage.java -@@ -9,12 +9,20 @@ import net.minecraft.network.chat.TranslatableComponent; +@@ -7,12 +7,20 @@ import net.minecraft.network.chat.HoverEvent; import net.minecraft.world.entity.LivingEntity; public class BadRespawnPointDamage extends DamageSource { @@ -28,9 +28,9 @@ index f5a18fb39eb69b2a9842d3f96aa1cd6a8dff6d9b..456d93305f524da6142bad320edb817b + @Override public Component getLocalizedDeathMessage(LivingEntity entity) { - Component component = ComponentUtils.wrapInSquareBrackets(new TranslatableComponent("death.attack.badRespawnPoint.link")).withStyle((style) -> { + Component component = ComponentUtils.wrapInSquareBrackets(Component.translatable("death.attack.badRespawnPoint.link")).withStyle((style) -> { diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java -index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..52cce7422c2a99e3de37f87ac704151682578718 100644 +index 67bce77093dcc126098731047447da2031e3388d..051cf78fe9f7700e1f639c804f35903c8079eae9 100644 --- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java +++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java @@ -77,6 +77,18 @@ public class DamageSource { @@ -52,7 +52,7 @@ index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..52cce7422c2a99e3de37f87ac7041516 public static DamageSource sting(LivingEntity attacker) { return new EntityDamageSource("sting", attacker); -@@ -127,17 +139,24 @@ public class DamageSource { +@@ -127,7 +139,7 @@ public class DamageSource { } public static DamageSource explosion(@Nullable Explosion explosion) { @@ -61,7 +61,8 @@ index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..52cce7422c2a99e3de37f87ac7041516 } public static DamageSource explosion(@Nullable LivingEntity attacker) { - return attacker != null ? (new EntityDamageSource("explosion.player", attacker)).setScalesWithDifficulty().setExplosion() : (new DamageSource("explosion")).setScalesWithDifficulty().setExplosion(); +@@ -138,10 +150,17 @@ public class DamageSource { + return (new EntityDamageSource("sonic_boom", attacker)).bypassArmor().bypassEnchantments().setMagic(); } + @Deprecated // Parchment @@ -79,10 +80,10 @@ index a828cad27fcd39f8bfbaefa97052a2a3b6650ee7..52cce7422c2a99e3de37f87ac7041516 return "DamageSource (" + this.msgId + ")"; } diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 8c4db2f0e5158872879da52a96bc592145e52e13..2b25f719205bccd697e8b57e942005d0524728b1 100644 +index 219877901fb5fc6401646253d6e5d7bd8416ffe1..caffd9b78d370019e98c9049a121c7d3734372e6 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -@@ -99,7 +99,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -98,7 +98,7 @@ public class EnderDragon extends Mob implements Enemy { private final Node[] nodes = new Node[24]; private final int[] nodeAdjacency = new int[24]; private final BinaryHeap openSet = new BinaryHeap(); @@ -91,7 +92,7 @@ index 8c4db2f0e5158872879da52a96bc592145e52e13..2b25f719205bccd697e8b57e942005d0 // Paper start - add var for save custom podium @Nullable private BlockPos podium; -@@ -107,6 +107,7 @@ public class EnderDragon extends Mob implements Enemy { +@@ -106,6 +106,7 @@ public class EnderDragon extends Mob implements Enemy { public EnderDragon(EntityType entitytypes, Level world) { super(EntityType.ENDER_DRAGON, world); @@ -100,10 +101,10 @@ index 8c4db2f0e5158872879da52a96bc592145e52e13..2b25f719205bccd697e8b57e942005d0 this.setHealth(this.getMaxHealth()); this.noPhysics = true; diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java -index 29f6c10e2c2626a9726d295acf12efea2b463cd3..370bde9e458a11c504a52356524fd289569612f1 100644 +index 01477e7240f9e33d08d416a7d40ee10f3e5d4abf..e8e1501f31b27d2e4448475db46f98304874575f 100644 --- a/src/main/java/net/minecraft/world/level/Explosion.java +++ b/src/main/java/net/minecraft/world/level/Explosion.java -@@ -471,6 +471,13 @@ public class Explosion { +@@ -474,6 +474,13 @@ public class Explosion { return this.toBlow; } @@ -118,7 +119,7 @@ index 29f6c10e2c2626a9726d295acf12efea2b463cd3..370bde9e458a11c504a52356524fd289 NONE, BREAK, DESTROY; diff --git a/src/main/java/net/minecraft/world/level/block/BedBlock.java b/src/main/java/net/minecraft/world/level/block/BedBlock.java -index 20c0030d566012146021613325c6a979f392740e..a0a052095815ed63f06837155b48b0d84f404240 100644 +index 654a859a37bf991c7a7fa8a44a3d20f8feb223db..52e6c9ea22273759ea9a827125bf561a62272ad9 100644 --- a/src/main/java/net/minecraft/world/level/block/BedBlock.java +++ b/src/main/java/net/minecraft/world/level/block/BedBlock.java @@ -145,7 +145,10 @@ public class BedBlock extends HorizontalDirectionalBlock implements EntityBlock @@ -134,7 +135,7 @@ index 20c0030d566012146021613325c6a979f392740e..a0a052095815ed63f06837155b48b0d8 } } diff --git a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java -index 7d33dae2617991bce244ad906df7053c22e3f515..797a583f0e3516b4a1bfec4c122eff438d174776 100644 +index 6be6adf73dc48ebbac22fe2a9be635f675f18cb1..e814c791137da2a10f4d4dd65f201fc220399975 100644 --- a/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java +++ b/src/main/java/net/minecraft/world/level/block/RespawnAnchorBlock.java @@ -148,7 +148,10 @@ public class RespawnAnchorBlock extends Block { @@ -150,10 +151,10 @@ index 7d33dae2617991bce244ad906df7053c22e3f515..797a583f0e3516b4a1bfec4c122eff43 public static boolean canSetSpawn(Level world) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 70d445429fec455f8188341ffd401e83f6bdab1c..7df4e2bab4d0773d8246011368c8e1c82c8e49d4 100644 +index 1547cd54b805e46ebcf8d7a910533f29537c2c55..de6ec4c6d59d1b9fa203b0d373452e466a89e1ec 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -969,7 +969,7 @@ public class CraftEventFactory { +@@ -968,7 +968,7 @@ public class CraftEventFactory { CraftEventFactory.entityDamage = null; EntityDamageEvent event; if (damager == null) { @@ -162,7 +163,7 @@ index 70d445429fec455f8188341ffd401e83f6bdab1c..7df4e2bab4d0773d8246011368c8e1c8 } else if (entity instanceof EnderDragon && /*PAIL FIXME ((EntityEnderDragon) entity).target == damager*/ false) { event = new EntityDamageEvent(entity.getBukkitEntity(), DamageCause.ENTITY_EXPLOSION, modifiers, modifierFunctions); } else { -@@ -1007,7 +1007,7 @@ public class CraftEventFactory { +@@ -1008,7 +1008,7 @@ public class CraftEventFactory { return CraftEventFactory.callEntityDamageEvent(damager, entity, cause, modifiers, modifierFunctions, cancelled, source.isCritical()); // Paper - add critical damage API } else if (source == DamageSource.OUT_OF_WORLD) { @@ -171,7 +172,7 @@ index 70d445429fec455f8188341ffd401e83f6bdab1c..7df4e2bab4d0773d8246011368c8e1c8 event.setCancelled(cancelled); CraftEventFactory.callEvent(event); if (!event.isCancelled()) { -@@ -1017,7 +1017,7 @@ public class CraftEventFactory { +@@ -1018,7 +1018,7 @@ public class CraftEventFactory { } return event; } else if (source == DamageSource.LAVA) { diff --git a/patches/server/0007-Expose-EntityType-Ordinals.patch b/patches/server/0007-Expose-EntityType-Ordinals.patch index 6697d71..feb69fe 100644 --- a/patches/server/0007-Expose-EntityType-Ordinals.patch +++ b/patches/server/0007-Expose-EntityType-Ordinals.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose EntityType Ordinals diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java -index 79abd84696ef099f6b12ddeaa6e398f18c53316a..13e277c9ff27a52fbf7041c36d7c5ff6d0028cfc 100644 +index ac0f0a4da4282c13f6e1f37710cb615d66b8ef2c..aa98cea349a3929cbb29fa01962ae98d9136cda7 100644 --- a/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java -@@ -150,6 +150,8 @@ import org.slf4j.Logger; +@@ -154,6 +154,8 @@ import org.slf4j.Logger; public class EntityType implements EntityTypeTest { @@ -17,7 +17,7 @@ index 79abd84696ef099f6b12ddeaa6e398f18c53316a..13e277c9ff27a52fbf7041c36d7c5ff6 private static final Logger LOGGER = LogUtils.getLogger(); public static final String ENTITY_TAG = "EntityTag"; private final Holder.Reference> builtInRegistryHolder; -@@ -285,9 +287,31 @@ public class EntityType implements EntityTypeTest { +@@ -294,9 +296,31 @@ public class EntityType implements EntityTypeTest { private final EntityDimensions dimensions; private static EntityType register(String id, EntityType.Builder type) { // CraftBukkit - decompile error @@ -51,7 +51,7 @@ index 79abd84696ef099f6b12ddeaa6e398f18c53316a..13e277c9ff27a52fbf7041c36d7c5ff6 return Registry.ENTITY_TYPE.getKey(type); } diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index 0507e40c97567fc379ebe4d0b001af16922ddb3e..5f86de03f280b2e3d9e32e11a8df5761ea6591ee 100644 +index ee4d1e3f0be4ac94bb03263425b2acfa97a85c0d..840017182f0c75af07bd461d59fc340b3c304b8a 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -653,6 +653,18 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/server/0008-Add-Player-setGameProfile.patch b/patches/server/0008-Add-Player-setGameProfile.patch index e75c74b..128cdca 100644 --- a/patches/server/0008-Add-Player-setGameProfile.patch +++ b/patches/server/0008-Add-Player-setGameProfile.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Add Player#setGameProfile diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index ef8038587117829c84a237a52498496cd39ab91a..f087f8b61d50541fbf527331f4d8e625aa0f8e0d 100644 +index bc6bdc8752718777ac698cfda2a0e7f35fcf9896..05584d344c9f7d6d89bb8fbdfa254c1dca91b590 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1468,6 +1468,12 @@ public abstract class Player extends LivingEntity { +@@ -1511,6 +1511,12 @@ public abstract class Player extends LivingEntity { return this.gameProfile; } -+ // Parchment start ++ // Parchment start | TODO: rename to match getter + public void setProfile(GameProfile gameProfile) { + this.gameProfile = gameProfile; + } + // Parchment end + - public Inventory getInventory() { - return this.inventory; - } + @Nullable + public ProfilePublicKey getProfilePublicKey() { + return this.profilePublicKey; diff --git a/patches/server/0009-Expose-MCUtil-Executors.patch b/patches/server/0009-Expose-MCUtil-Executors.patch index 83885ec..9502756 100644 --- a/patches/server/0009-Expose-MCUtil-Executors.patch +++ b/patches/server/0009-Expose-MCUtil-Executors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose MCUtil Executors diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 83f75d9c4ad146ba0a0ef28d0e49a1deb6db6a44..cfda86ba398a853427b4a6a14e3fdf2723f07a83 100644 +index f4847a8671bd21f78af598faacea5c763669ddbc..97e60454716eacdfa4420efff2596b7f99d2bfd6 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2886,4 +2886,16 @@ public final class CraftServer implements Server { +@@ -2869,4 +2869,16 @@ public final class CraftServer implements Server { } // Paper end diff --git a/patches/server/0011-Add-BlockDropResourcesEvent.patch b/patches/server/0011-Add-BlockDropResourcesEvent.patch index 9a18801..5266ba2 100644 --- a/patches/server/0011-Add-BlockDropResourcesEvent.patch +++ b/patches/server/0011-Add-BlockDropResourcesEvent.patch @@ -8,10 +8,10 @@ to easily get the items being dropped by any block instead of only blocks broken by players. diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index a80f4dc0a642c744223a155232291ace6e007636..f76849d67d71bf5bed1b9006adfee1c1b90b05d6 100644 +index 224ce424b9a22548212ac157ec273c6dd80d6cfb..f33a8f7e46f9d88137de509e22d73edea3804cbe 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java -@@ -306,7 +306,7 @@ public class Block extends BlockBehaviour implements ItemLike { +@@ -308,7 +308,7 @@ public class Block extends BlockBehaviour implements ItemLike { ServerLevel worldserver = lootContext.getLevel(); BlockPos blockposition = new BlockPos((Vec3) lootContext.getParameter(LootContextParams.ORIGIN)); @@ -19,8 +19,8 @@ index a80f4dc0a642c744223a155232291ace6e007636..f76849d67d71bf5bed1b9006adfee1c1 + org.bukkit.craftbukkit.event.CraftEventFactory.callBlockDropResourcesEvent(worldserver, blockposition, state.getDrops(lootContext)).forEach((itemstack) -> { // Parchment Block.popResource(worldserver, blockposition, itemstack); }); - state.spawnAfterBreak(worldserver, blockposition, ItemStack.EMPTY); -@@ -314,7 +314,7 @@ public class Block extends BlockBehaviour implements ItemLike { + state.spawnAfterBreak(worldserver, blockposition, ItemStack.EMPTY, true); +@@ -316,7 +316,7 @@ public class Block extends BlockBehaviour implements ItemLike { public static void dropResources(BlockState state, Level world, BlockPos pos) { if (world instanceof ServerLevel) { @@ -28,8 +28,8 @@ index a80f4dc0a642c744223a155232291ace6e007636..f76849d67d71bf5bed1b9006adfee1c1 + org.bukkit.craftbukkit.event.CraftEventFactory.callBlockDropResourcesEvent(world, pos, Block.getDrops(state, (ServerLevel) world, pos, (BlockEntity) null)).forEach((itemstack) -> { // Parchment Block.popResource(world, pos, itemstack); }); - state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY); -@@ -324,7 +324,7 @@ public class Block extends BlockBehaviour implements ItemLike { + state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); +@@ -326,7 +326,7 @@ public class Block extends BlockBehaviour implements ItemLike { public static void dropResources(BlockState state, LevelAccessor world, BlockPos pos, @Nullable BlockEntity blockEntity) { if (world instanceof ServerLevel) { @@ -37,8 +37,8 @@ index a80f4dc0a642c744223a155232291ace6e007636..f76849d67d71bf5bed1b9006adfee1c1 + org.bukkit.craftbukkit.event.CraftEventFactory.callBlockDropResourcesEvent(world, pos, Block.getDrops(state, (ServerLevel) world, pos, blockEntity)).forEach((itemstack) -> { // Parchment Block.popResource((ServerLevel) world, pos, itemstack); }); - state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY); -@@ -351,7 +351,7 @@ public class Block extends BlockBehaviour implements ItemLike { + state.spawnAfterBreak((ServerLevel) world, pos, ItemStack.EMPTY, true); +@@ -353,7 +353,7 @@ public class Block extends BlockBehaviour implements ItemLike { public static void dropResources(BlockState state, Level world, BlockPos pos, @Nullable BlockEntity blockEntity, Entity entity, ItemStack stack) { if (world instanceof ServerLevel) { @@ -46,14 +46,14 @@ index a80f4dc0a642c744223a155232291ace6e007636..f76849d67d71bf5bed1b9006adfee1c1 + org.bukkit.craftbukkit.event.CraftEventFactory.callBlockDropResourcesEvent(world, pos, Block.getDrops(state, (ServerLevel) world, pos, blockEntity, entity, stack)).forEach((itemstack1) -> { // Parchment Block.popResource(world, pos, itemstack1); }); - state.spawnAfterBreak((ServerLevel) world, pos, stack); + state.spawnAfterBreak((ServerLevel) world, pos, stack, true); diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 7df4e2bab4d0773d8246011368c8e1c82c8e49d4..7f2cb8bec323fc0fc5188f2cd5efad73cf85301c 100644 +index de6ec4c6d59d1b9fa203b0d373452e466a89e1ec..6ff4c2cc4e49796e947dc70db1eff475e0eeaa3b 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1989,5 +1989,19 @@ public class CraftEventFactory { - final double posZ = pos.getZ(); - playSoundEvent(event, packet -> playerList.broadcast(player, posX, posY, posZ, radius, world, packet)); +@@ -1965,5 +1965,19 @@ public class CraftEventFactory { + } + }); } + + public static List callBlockDropResourcesEvent(LevelAccessor world, BlockPos pos, List items) { diff --git a/patches/server/0012-Add-Furnace-Recipe-API.patch b/patches/server/0012-Add-Furnace-Recipe-API.patch index ad1f2ee..0167924 100644 --- a/patches/server/0012-Add-Furnace-Recipe-API.patch +++ b/patches/server/0012-Add-Furnace-Recipe-API.patch @@ -215,10 +215,10 @@ index 0000000000000000000000000000000000000000..e7114e456f818d7bdd4081620f4b9b93 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 43244a479a112786539a905a22cb12e3cf55b2dd..72b0a17a52169c0bd6b985e82278fffa73340298 100644 +index 25e56be9055c5c432e1180d45341f4e9d9fcb7ca..4e8dbefb953a8ca09dda1e195591c10ebd9b0243 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2322,4 +2322,11 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2321,4 +2321,11 @@ public class CraftWorld extends CraftRegionAccessor implements World { return this.adventure$pointers; } // Paper end diff --git a/patches/server/0013-Disable-sleep-status-announcements.patch b/patches/server/0013-Disable-sleep-status-announcements.patch index 1120859..88e02b5 100644 --- a/patches/server/0013-Disable-sleep-status-announcements.patch +++ b/patches/server/0013-Disable-sleep-status-announcements.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable sleep status announcements diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 53f5e22370f3bc0d29cc38641d67e869305ced86..e4aaffe7ceecb0cf77172e2d96cfe50c8a708c37 100644 +index 782be663520c27fccb58484ec56cc94def38f136..e33d731d4689963fa9c5b2feef24a6b7b202988b 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -898,7 +898,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -918,7 +918,7 @@ public class ServerLevel extends Level implements WorldGenLevel { } private void announceSleepStatus() { @@ -16,4 +16,4 @@ index 53f5e22370f3bc0d29cc38641d67e869305ced86..e4aaffe7ceecb0cf77172e2d96cfe50c + if (false && this.canSleepThroughNights()) { if (!this.getServer().isSingleplayer() || this.getServer().isPublished()) { int i = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE); - TranslatableComponent chatmessage; + MutableComponent ichatmutablecomponent;