mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
Updated Upstream (Paper/Purpur)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@89cdcba5 [ci/skip] Replace wiki mention for BlockType#isOccluding (#12446) PaperMC/Paper@5f0b8292 Re-add chunk position check to regionfile recalculation patch PaperMC/Paper@04b91129 Update projects dependents GitHub Action (#12436) PaperMC/Paper@def0532f Fix writing headers and update to be more papery (#12459) PaperMC/Paper@d22644aa Expand cooldown API (#12435) PaperMC/Paper@df429932 Fix floating warning log when the kick event is canceled (#12374) PaperMC/Paper@a820bdae [ci/skip] Some javadoc fixes PaperMC/Paper@55f20209 Fix CCE in LingeringPotionSplashEvent (#12463) PaperMC/Paper@1410a22b Fix passengers sending when riding players PaperMC/Paper@767868dd Fix some components (#12457) PaperMC/Paper@9cddf136 Fix portal create event block list (#12373) PaperMC/Paper@a112d370 Fix horse_variant and tropical_fish_pattern (#12472) PaperMC/Paper@a211ac2e Remove unused warning (#12478) PaperMC/Paper@ae512811 Add isSuffocating to Block and BlockState (#12445) PaperMC/Paper@3409e2d7 Mace was not included in the ENCHANTABLE MaterialSetTag (#12476) PaperMC/Paper@1cfc96bc Add keyStream() API to registries (#12479) PaperMC/Paper@3222985e [ci/skip] Rebuild patches PaperMC/Paper@deaccd2c [ci/skip] Add file reference url to help.yml (#12481) PaperMC/Paper@f86b4352 Add vault change state event (#12069) PaperMC/Paper@3e3b42cd Update player chat session sync (#12382) PaperMC/Paper@f8fa4f6f Add method to retrieve FishHook (#12310) PaperMC/Paper@b9d3147d Use correct placed block position for sound (#12410) PaperMC/Paper@952338b3 [ci/skip] Add missing exception docs to Player#listPlayer (#12488) PaperMC/Paper@1db37853 [ci/skip] improve javadoc for off-hand swaps through getHotbarButton (#12489) PaperMC/Paper@d1810f24 Allow Server#getDefaultGameMode before worlds are initialized (#12490) PaperMC/Paper@02d20ff7 Fix NPE in Server#getMap before worlds are loaded (#12492) PaperMC/Paper@9e873f50 Fix inconsistencies between offline/online spawn position getter (#11960) PaperMC/Paper@fc0c3717 Fix handling of resultant crafting container from craftItemResult (#12307) PaperMC/Paper@a7a76c8f Add methods for Armadillo (#12031) PaperMC/Paper@a74400d9 Update adventure to 4.21.0 (#12499) PaperMC/Paper@1e930763 Fix ipv6 loopback addresses being able to get connection throttled (#12155) PaperMC/Paper@646b80ca Fix unnecessary map data saves (#12296) PaperMC/Paper@e663f999 Add combat tracker API (#11853) PaperMC/Paper@cd4fe5b7 [ci/skip] Drop non-applicable ATs (#12498) PaperMC/Paper@5acfdd6a Fix save/load NaN Entity Motion (#12269) PaperMC/Paper@2754d7c3 Add Throw EntityChangeBlockEvent for BrushableBlockEntity#brush (#12133) PaperMC/Paper@567f63ae Parity for respawn events (#11792) PaperMC/Paper@bc3d946f Normalizes CraftEntity#toString/getHandle (#12170) PaperMC/Paper@0e9b94d5 Fix ItemStack amount issues with Chat Components (#12216) PaperMC/Paper@835b9559 Add a method on InventoryView to get the MenuType (#12193) PaperMC/Paper@c9411bfb Fix min ItemStack amount check for asHoverEvent (#12505) PaperMC/Paper@1acf3b38 Infer block entity data in brigadier blockstate argument (#12197) PaperMC/Paper@b9b3cd65 Use components instead of ChatColor in more places (#12507) PaperMC/Paper@ec421715 Add missing spaces back (#12508) Purpur Changes: PurpurMC/Purpur@c3870bda Updated Upstream (Paper) PurpurMC/Purpur@8b5044e0 [ci/skip] add idea project icon PurpurMC/Purpur@f2f682fb Updated Upstream (Paper) PurpurMC/Purpur@bdeba761 Updated Upstream (Paper) PurpurMC/Purpur@96f5b044 drop void damage height/damage migration PurpurMC/Purpur@6cc78b63 Updated Upstream (Paper) PurpurMC/Purpur@4ce97c1d [ci/skip] Update occurences of version numbers to 1.21.5 (#1658) PurpurMC/Purpur@7f5c4036 Updated Upstream (Paper) PurpurMC/Purpur@4fdf1d11 Updated Upstream (Paper) PurpurMC/Purpur@8c77678e Updated Upstream (Paper)
This commit is contained in:
@@ -2,7 +2,7 @@ group=cn.dreeam.leaf
|
||||
mcVersion=1.21.5
|
||||
version=1.21.5-R0.1-SNAPSHOT
|
||||
|
||||
paperCommit=6c2b0378fe8c105dd9636ca8b4fa6b09b8dfa244
|
||||
paperCommit=ec421715edd5b3d9590fe6c48ecebb62971598b5
|
||||
|
||||
org.gradle.configuration-cache=true
|
||||
org.gradle.caching=true
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
--- a/paper-api/build.gradle.kts
|
||||
+++ b/paper-api/build.gradle.kts
|
||||
@@ -14,8 +_,10 @@
|
||||
val adventureVersion = "4.21.0-mc1215-SNAPSHOT" // FIXME move to release asap
|
||||
val adventureJavadocVersion = "4.20.0" // Fixme remove me
|
||||
@@ -13,8 +_,10 @@
|
||||
// Keep in sync with paper-server adventure-text-serializer-ansi dep
|
||||
val adventureVersion = "4.21.0"
|
||||
val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21"
|
||||
-val slf4jVersion = "2.0.16"
|
||||
-val log4jVersion = "2.24.1"
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
val apiAndDocs: Configuration by configurations.creating {
|
||||
attributes {
|
||||
@@ -42,9 +_,11 @@
|
||||
@@ -41,9 +_,11 @@
|
||||
|
||||
dependencies {
|
||||
// api dependencies are listed transitively to API consumers
|
||||
@@ -28,7 +28,7 @@
|
||||
api("org.joml:joml:1.10.8") {
|
||||
isTransitive = false // https://github.com/JOML-CI/JOML/issues/352
|
||||
}
|
||||
@@ -52,6 +_,7 @@
|
||||
@@ -51,6 +_,7 @@
|
||||
api("org.apache.logging.log4j:log4j-api:$log4jVersion")
|
||||
api("org.slf4j:slf4j-api:$slf4jVersion")
|
||||
api("com.mojang:brigadier:1.3.10")
|
||||
@@ -36,9 +36,9 @@
|
||||
|
||||
// Deprecate bungeecord-chat in favor of adventure
|
||||
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") {
|
||||
@@ -68,9 +_,11 @@
|
||||
apiAndDocs("$adventureGroup:adventure-text-serializer-plain")
|
||||
apiAndDocs("$adventureGroup:adventure-text-logger-slf4j")
|
||||
@@ -65,9 +_,11 @@
|
||||
apiAndDocs("net.kyori:adventure-text-serializer-plain")
|
||||
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
|
||||
|
||||
- api("org.apache.maven:maven-resolver-provider:3.9.6") // make API dependency for Paper Plugins
|
||||
- compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
// Annotations - Slowly migrate to jspecify
|
||||
val annotations = "org.jetbrains:annotations:$annotationsVersion"
|
||||
@@ -86,14 +_,22 @@
|
||||
@@ -83,14 +_,22 @@
|
||||
// Test dependencies
|
||||
testImplementation("org.apache.commons:commons-lang3:3.17.0")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.12.2")
|
||||
@@ -78,7 +78,7 @@
|
||||
idea {
|
||||
module {
|
||||
generatedSourceDirs.add(generatedDir.toFile())
|
||||
@@ -103,6 +_,20 @@
|
||||
@@ -100,6 +_,20 @@
|
||||
main {
|
||||
java {
|
||||
srcDir(generatedDir)
|
||||
@@ -99,7 +99,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,6 +_,15 @@
|
||||
@@ -137,6 +_,15 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
val generateApiVersioningFile by tasks.registering {
|
||||
inputs.property("version", project.version)
|
||||
val pomProps = layout.buildDirectory.file("pom.properties")
|
||||
@@ -159,6 +_,12 @@
|
||||
@@ -156,6 +_,12 @@
|
||||
"Automatic-Module-Name" to "org.bukkit"
|
||||
)
|
||||
}
|
||||
@@ -128,7 +128,7 @@
|
||||
}
|
||||
|
||||
abstract class Services {
|
||||
@@ -169,12 +_,12 @@
|
||||
@@ -166,12 +_,12 @@
|
||||
|
||||
tasks.withType<Javadoc> {
|
||||
val options = options as StandardJavadocDocletOptions
|
||||
@@ -144,8 +144,8 @@
|
||||
"https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/",
|
||||
"https://javadoc.io/doc/org.joml/joml/1.10.8/",
|
||||
"https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0",
|
||||
@@ -188,7 +_,7 @@
|
||||
"https://jd.advntr.dev/text-logger-slf4j/$adventureJavadocVersion/",
|
||||
@@ -185,7 +_,7 @@
|
||||
"https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/",
|
||||
"https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/",
|
||||
"https://logging.apache.org/log4j/2.x/javadoc/log4j-api/",
|
||||
- "https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3",
|
||||
@@ -153,7 +153,7 @@
|
||||
)
|
||||
options.tags("apiNote:a:API Note:")
|
||||
|
||||
@@ -202,16 +_,19 @@
|
||||
@@ -199,16 +_,19 @@
|
||||
}
|
||||
|
||||
// workaround for https://github.com/gradle/gradle/issues/4046
|
||||
@@ -175,7 +175,7 @@
|
||||
}
|
||||
|
||||
tasks.test {
|
||||
@@ -233,6 +_,11 @@
|
||||
@@ -230,6 +_,11 @@
|
||||
jarToScan.set(tasks.jar.flatMap { it.archiveFile })
|
||||
classpath.from(configurations.compileClasspath)
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Leaf config
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 7dbfff8e0d86ba4533568a8f4182506d8a065b63..f0f5bf5d75d58bdd55cff34fca48945380545d20 100644
|
||||
index 5f649c86c919666297db94b9dffed9a8fed3eb9b..6d94c4f06988a3bcfe3a56821fde606af9abd818 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2369,6 +2369,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2368,6 +2368,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
}
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -13,10 +13,10 @@ As part of: Paper (https://github.com/PaperMC/Paper)
|
||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index f0f5bf5d75d58bdd55cff34fca48945380545d20..0e1e19b60d8e790bdb3329c4582d80528825bf30 100644
|
||||
index 6d94c4f06988a3bcfe3a56821fde606af9abd818..99dd957604e0408b91b5459e28d9c04dbb161793 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2367,6 +2367,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2366,6 +2366,15 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
{
|
||||
throw new UnsupportedOperationException("Not supported yet.");
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 7b9324d121d39ef75dc4d709831472598c1c50a0..cb8da28d86d44b3633cf47f75141c9a093c63dab 100644
|
||||
index ac341838b6a2d2600eec8ae26791346f65ac93ae..28a3224c32e1890c95d540080fc5c04bc930a1e9 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -2113,6 +2113,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -2129,6 +2129,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
boolean listPlayer(Player other);
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -47,10 +47,10 @@ index ee791bf6299d654fb56300fbda1f6ea50620a3e2..da63ffc2deedc0f431ed84bce2f87501
|
||||
* Get a sample of the servers last tick times (in nanos)
|
||||
*
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 0e1e19b60d8e790bdb3329c4582d80528825bf30..58cbf87e2f47da3ecad5e9d48f2eb4ff0206a7d6 100644
|
||||
index 99dd957604e0408b91b5459e28d9c04dbb161793..078edd89f599d7309feb4740d1a905ad2442803a 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2119,6 +2119,29 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2118,6 +2118,29 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
*/
|
||||
public double @NotNull [] getTPS();
|
||||
|
||||
|
||||
@@ -72,10 +72,10 @@ index da63ffc2deedc0f431ed84bce2f8750162d30e3c..ccdd6fba261cb148cf02017c2bf779b3
|
||||
* Gets the average server TPS over the last 1 minute
|
||||
*
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 58cbf87e2f47da3ecad5e9d48f2eb4ff0206a7d6..2fd864e2b9ae21105d86c2b4dcc223e5f483f468 100644
|
||||
index 078edd89f599d7309feb4740d1a905ad2442803a..4265607a6f5ca535a17756b417e22ac3478cfa5c 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2119,7 +2119,27 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2118,7 +2118,27 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
*/
|
||||
public double @NotNull [] getTPS();
|
||||
|
||||
|
||||
@@ -48,10 +48,10 @@ index ccdd6fba261cb148cf02017c2bf779b3d3bb070b..10662089e8a08bae6c6077b72c30b14b
|
||||
* @deprecated All methods on this class have been deprecated, see the individual methods for replacements.
|
||||
*/
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 2fd864e2b9ae21105d86c2b4dcc223e5f483f468..925b4c8903bb6f44a56af4ecc2c0a01c46f14107 100644
|
||||
index 4265607a6f5ca535a17756b417e22ac3478cfa5c..ea27c7ba247e7726ca623e6a22110f94f70f81c9 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2765,4 +2765,29 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2764,4 +2764,29 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
*/
|
||||
void allowPausing(@NotNull org.bukkit.plugin.Plugin plugin, boolean value);
|
||||
// Paper end - API to check if the server is sleeping
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur API Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: f8450874da4e2d29863b544b70cc7b962a04aa70
|
||||
Commit: 8c77678e81c813e57dda10c646599b0ab3144218
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "co/aikar/timings/TimedEventExecutor.java.patch"
|
||||
@@ -334,10 +334,10 @@ index 5a1b9f81830dee052bafd743f4a1bf0c39288c7a..cf8fd9a981c7fbaa304988df17233ccf
|
||||
+ // Purpur end - ItemStack convenience methods
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
|
||||
index c749a898e94d7d0ed70e6f3b42104d61803e819e..96a96ad2ffc6105074b6c20d4109496e9a619982 100644
|
||||
index 6f83097b1097d0ffa81a95e6f0300cb410dfee2b..c1f19d5c1b819873fce1185b4fbf4c72eda26309 100644
|
||||
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
||||
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
||||
@@ -570,4 +570,104 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
||||
@@ -585,4 +585,104 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
||||
@Override
|
||||
io.papermc.paper.persistence.PersistentDataContainerView getPersistentDataContainer();
|
||||
// Paper end - add pdc to offline player
|
||||
@@ -443,10 +443,10 @@ index c749a898e94d7d0ed70e6f3b42104d61803e819e..96a96ad2ffc6105074b6c20d4109496e
|
||||
+ // Purpur end - OfflinePlayer API
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 925b4c8903bb6f44a56af4ecc2c0a01c46f14107..e405dde21778ff7fe3579411276a0419a1a7b9e0 100644
|
||||
index ea27c7ba247e7726ca623e6a22110f94f70f81c9..e5684bffdcc68ede5952c6ce28e3e16752c49b37 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -2421,6 +2421,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2420,6 +2420,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
|
||||
// Paper end
|
||||
|
||||
@@ -465,7 +465,7 @@ index 925b4c8903bb6f44a56af4ecc2c0a01c46f14107..e405dde21778ff7fe3579411276a0419
|
||||
// Leaf start - Leaf config - API
|
||||
@NotNull
|
||||
public org.bukkit.configuration.file.YamlConfiguration getLeafConfig()
|
||||
@@ -2790,4 +2802,121 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
@@ -2789,4 +2801,121 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||
*/
|
||||
long getLastTickOversleepTime();
|
||||
// Gale end - YAPFA - last tick time - API
|
||||
@@ -811,7 +811,7 @@ index 332c55fd6b4b3a8c0cad920a6e765ecc40e684e4..10a8d64ad2da0be2c14f34c3e7d1957c
|
||||
// Paper start
|
||||
/**
|
||||
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
|
||||
index bb6c6b3477c1d30a228ecb35ef7c4f6e54c083e5..bee034fd48b567a64a152196a0b80f2f1a9661e4 100644
|
||||
index dc91a3cf3bd706ab9b2b02967adf18c07f186c5b..3a3c6ab87a164df706f59f6b59bfe977492658d7 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Entity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Entity.java
|
||||
@@ -1224,4 +1224,59 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
|
||||
@@ -967,13 +967,13 @@ index bcc6ba95bd21c7972865838c636a03f50b6c1f1a..c3fcd8dd7dbb1e1a18e17c014c1e6411
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
index 61794d69b70832925e111f258ae1b4575b31123a..cfbd9344e1055f9fbb955721f7a3be71c2e412da 100644
|
||||
index 7f2892dd93a17136e1aaea14db401710bc1becfb..8c0659efa5c84191f3faa1ada52e57eb2a4f9f90 100644
|
||||
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
|
||||
@@ -1452,4 +1452,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
@@ -1463,4 +1463,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
|
||||
*/
|
||||
boolean canUseEquipmentSlot(org.bukkit.inventory.@NotNull EquipmentSlot slot);
|
||||
// Paper end - Expose canUseSlot
|
||||
@ApiStatus.Experimental
|
||||
@NotNull CombatTracker getCombatTracker();
|
||||
+
|
||||
+ // Purpur start - API for any mob to burn daylight
|
||||
+ /**
|
||||
@@ -1017,10 +1017,10 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index cb8da28d86d44b3633cf47f75141c9a093c63dab..3e2d6105d8d00305076c0c2677a4acd5cc402214 100644
|
||||
index 28a3224c32e1890c95d540080fc5c04bc930a1e9..953ee95c692d91e1bd222f9224ea990f9d4feca0 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3904,4 +3904,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -3920,4 +3920,123 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
* @param score New death screen score of player
|
||||
*/
|
||||
void setDeathScreenScore(int score);
|
||||
@@ -1329,10 +1329,10 @@ index f1f97a85ec713c05c882d7588f4a3e4a017f4795..813f6cd253322538bdf96eb323dd23a7
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
index 3179607e892b609160e9673df5745279a722ae95..1cc6f1a988715224d0168c97ae418037573e2204 100644
|
||||
index 8a5a58408490110dfeb1a720aad6676883880db5..5ee730161c7f11ab7744c80563716e30921a6b5b 100644
|
||||
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
|
||||
@@ -23,6 +23,13 @@ import org.bukkit.material.MaterialData;
|
||||
@@ -24,6 +24,13 @@ import org.bukkit.material.MaterialData;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -1346,7 +1346,7 @@ index 3179607e892b609160e9673df5745279a722ae95..1cc6f1a988715224d0168c97ae418037
|
||||
|
||||
/**
|
||||
* Represents a stack of items.
|
||||
@@ -1363,4 +1370,482 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||
@@ -1373,4 +1380,482 @@ public class ItemStack implements Cloneable, ConfigurationSerializable, Translat
|
||||
return this.craftDelegate.matchesWithoutData(item, excludeTypes, ignoreCount);
|
||||
}
|
||||
// Paper end - data component API
|
||||
|
||||
@@ -2863,10 +2863,10 @@ index 45ed63797b13e114bf3795c80a6c3967d8eb2351..00000000000000000000000000000000
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
|
||||
index 71eb845a4d3b8b6ec3b816a0f20ec807e0f9a86d..a43419c23aa0f6fd809caf5a841cb138f350b7ba 100644
|
||||
index 27a7c69f23084e821d945d5e97e51a94ddd94e58..d645ee8470a2dd9f7b8eff2b7ff2211aba9c342f 100644
|
||||
--- a/src/main/java/org/bukkit/command/Command.java
|
||||
+++ b/src/main/java/org/bukkit/command/Command.java
|
||||
@@ -33,16 +33,6 @@ public abstract class Command {
|
||||
@@ -32,16 +32,6 @@ public abstract class Command {
|
||||
protected String usageMessage;
|
||||
private String permission;
|
||||
private net.kyori.adventure.text.Component permissionMessage; // Paper
|
||||
@@ -2884,10 +2884,10 @@ index 71eb845a4d3b8b6ec3b816a0f20ec807e0f9a86d..a43419c23aa0f6fd809caf5a841cb138
|
||||
protected Command(@NotNull String name) {
|
||||
this(name, "", "/" + name, new ArrayList<String>());
|
||||
diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
|
||||
index abe256e1e45ce28036da4aa1586715bc8a1a3414..9eab8024e0675865f17669847759a26d28f74f3a 100644
|
||||
index 59fada9b1eb78238d280c6bbb711f52facba52c6..eb4d78c6111a530d015a0b91d14c40ad0eec9ca7 100644
|
||||
--- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java
|
||||
+++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
|
||||
@@ -12,7 +12,6 @@ public class FormattedCommandAlias extends Command {
|
||||
@@ -14,7 +14,6 @@ public class FormattedCommandAlias extends Command {
|
||||
|
||||
public FormattedCommandAlias(@NotNull String alias, @NotNull String[] formatStrings) {
|
||||
super(alias);
|
||||
@@ -2895,7 +2895,7 @@ index abe256e1e45ce28036da4aa1586715bc8a1a3414..9eab8024e0675865f17669847759a26d
|
||||
this.formatStrings = formatStrings;
|
||||
}
|
||||
|
||||
@@ -120,10 +119,6 @@ public class FormattedCommandAlias extends Command {
|
||||
@@ -122,10 +121,6 @@ public class FormattedCommandAlias extends Command {
|
||||
return formatString.trim(); // Paper - Causes an extra space at the end, breaks with brig commands
|
||||
}
|
||||
|
||||
|
||||
@@ -7,10 +7,10 @@ Original license: MIT
|
||||
Original project: https://github.com/KeYiMC/KeYi
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 3e2d6105d8d00305076c0c2677a4acd5cc402214..98f5be0e9d33a001f9cb772709ffa31669394896 100644
|
||||
index 953ee95c692d91e1bd222f9224ea990f9d4feca0..1f36484af62f3e6eb2b9335cc29cb6518ea29375 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -4023,4 +4023,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -4039,4 +4039,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
sendDeathScreen(message);
|
||||
}
|
||||
// Purpur end
|
||||
|
||||
@@ -9,10 +9,10 @@ Original project: https://github.com/Cryptite/Slice
|
||||
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 98f5be0e9d33a001f9cb772709ffa31669394896..b56262f3230e7ba98b17a2ab7ba08bc95c888efc 100644
|
||||
index 1f36484af62f3e6eb2b9335cc29cb6518ea29375..9a3518be6de43934987140569f0df89961013e7d 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -3685,6 +3685,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
@@ -3701,6 +3701,33 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||
String getClientBrandName();
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -87,9 +87,9 @@
|
||||
+ implementation("org.jline:jline-terminal-ffm:3.29.0") // use ffm on java 22+ // Leaf - Bump Dependencies
|
||||
+ implementation("org.jline:jline-terminal-jni:3.29.0") // fall back to jni on java 21 // Leaf - Bump Dependencies
|
||||
implementation("net.minecrell:terminalconsoleappender:1.3.0")
|
||||
implementation("io.papermc.adventure:adventure-text-serializer-ansi:4.21.0-mc1215-SNAPSHOT") // Keep in sync with adventureVersion from Paper-API build file // FIXME back to release
|
||||
implementation("net.kyori:adventure-text-serializer-ansi:4.21.0") // Keep in sync with adventureVersion from Paper-API build file
|
||||
runtimeConfiguration(sourceSets.main.map { it.runtimeClasspath })
|
||||
@@ -144,16 +_,20 @@
|
||||
@@ -144,41 +_,58 @@
|
||||
all its classes to check if they are plugins.
|
||||
Scanning takes about 1-2 seconds so adding this speeds up the server start.
|
||||
*/
|
||||
@@ -114,7 +114,13 @@
|
||||
implementation("org.ow2.asm:asm-commons:9.8")
|
||||
implementation("org.spongepowered:configurate-yaml:4.2.0-20250225.064233-199")
|
||||
implementation("org.spongepowered:configurate-core:4.2.0-20250225.064233-204") // Pinned dependency of above pinned yaml snapshot.
|
||||
@@ -161,24 +_,37 @@
|
||||
|
||||
+ // Purpur start
|
||||
+ implementation("org.mozilla:rhino-runtime:1.7.15")
|
||||
+ implementation("org.mozilla:rhino-engine:1.7.15")
|
||||
+ implementation("dev.omega24:upnp4j:1.0")
|
||||
+ // Purpur end
|
||||
+
|
||||
// Deps that were previously in the API but have now been moved here for backwards compat, eventually to be removed
|
||||
runtimeOnly("commons-lang:commons-lang:2.6")
|
||||
runtimeOnly("org.xerial:sqlite-jdbc:3.49.1.0")
|
||||
@@ -137,12 +143,6 @@
|
||||
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.22") // Dreeam TODO - Update to 2.0.1
|
||||
+ runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.22") // Dreeam TODO - Update to 2.0.1
|
||||
+ // Leaf end - Bump Dependencies
|
||||
+
|
||||
+ // Purpur start
|
||||
+ implementation("org.mozilla:rhino-runtime:1.7.15")
|
||||
+ implementation("org.mozilla:rhino-engine:1.7.15")
|
||||
+ implementation("dev.omega24:upnp4j:1.0")
|
||||
+ // Purpur end
|
||||
|
||||
testImplementation("io.github.classgraph:classgraph:4.8.179") // For mob goal test
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.12.2")
|
||||
|
||||
@@ -48,10 +48,10 @@ index bb021fc9de91f8c4f79e6a753d57fa157efbbda7..9926848124f0b74ebb615fbbc45d95eb
|
||||
final DamageSource damageSource = this.copy();
|
||||
damageSource.eventEntityDamager = entity;
|
||||
diff --git a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||
index f3ea8b9e8f4510112ec5e41727ebc0cf9ecee195..77f16166588b0d07fb08b9c8f060a3d076b479de 100644
|
||||
index 384f2cd090d6d23bd1308d6e82c24338f2bf55d1..3634d68c77ee99567b51a9a848d7cbbb218a0ba7 100644
|
||||
--- a/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||
+++ b/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
|
||||
@@ -283,7 +283,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
|
||||
@@ -308,7 +308,7 @@ public class RegionFileStorage implements AutoCloseable, ca.spottedleaf.moonrise
|
||||
|
||||
// Paper start
|
||||
private static void printOversizedLog(String msg, Path file, int x, int z) {
|
||||
|
||||
@@ -889,7 +889,7 @@ index 59e8a5e1b35c81883c9b1ca00c6e55d77584d8cc..4167b46148fc370f20b35c2a261e38c0
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||
index 845d03dc893df2200327e9ee2710474874750c93..1d53c0b96ff781765155aac29256f4493f7d7c58 100644
|
||||
index 3a53ea9a02cb04781502d7525c95f47701013f8b..90d77499350b67d738d0fad8f2eb056607acb0cc 100644
|
||||
--- a/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -74,8 +74,6 @@ import net.minecraft.util.Mth;
|
||||
@@ -1079,7 +1079,7 @@ index 845d03dc893df2200327e9ee2710474874750c93..1d53c0b96ff781765155aac29256f449
|
||||
for (Entity entity : passengerEntity.getPassengers()) {
|
||||
this.tickPassenger(passengerEntity, entity, isActive); // Paper - EAR 2
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 568b6e60482c61363b6052c73fbc26a2ba19d5df..14c91a12be5f586c3a3060c1fe645ab01cacd30c 100644
|
||||
index ee6ad1474510b15eaa9a67d29ab8267ff43e0410..16b390f527cf18a000ebed2950a35bcfb15c6c21 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -104,8 +104,6 @@ import net.minecraft.util.HashOps;
|
||||
@@ -1091,7 +1091,7 @@ index 568b6e60482c61363b6052c73fbc26a2ba19d5df..14c91a12be5f586c3a3060c1fe645ab0
|
||||
import net.minecraft.world.Container;
|
||||
import net.minecraft.world.Difficulty;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
@@ -1377,14 +1375,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1372,14 +1370,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.unsetRemoved();
|
||||
*/
|
||||
// CraftBukkit end
|
||||
@@ -1106,7 +1106,7 @@ index 568b6e60482c61363b6052c73fbc26a2ba19d5df..14c91a12be5f586c3a3060c1fe645ab0
|
||||
// CraftBukkit start
|
||||
this.isChangingDimension = true; // CraftBukkit - Set teleport invulnerability only if player changing worlds
|
||||
LevelData worlddata = level.getLevelData();
|
||||
@@ -1401,7 +1395,6 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1396,7 +1390,6 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
|
||||
this.connection.resetPosition();
|
||||
level.addDuringTeleport(this);
|
||||
@@ -1115,7 +1115,7 @@ index 568b6e60482c61363b6052c73fbc26a2ba19d5df..14c91a12be5f586c3a3060c1fe645ab0
|
||||
this.stopUsingItem();
|
||||
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index d385cb836b7713f2dbd0b8693777c8e5ea0a74e4..976525a885cf6422f8a40e92d594eef312c159bd 100644
|
||||
index 186393485396cfe9b1baef29586198356e2d2600..776ff13b399fa01bf3900280cf1b5782370732a0 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -24,7 +24,6 @@ import net.minecraft.network.protocol.cookie.ServerboundCookieResponsePacket;
|
||||
@@ -1234,7 +1234,7 @@ index 64b0508ef21952c65b0b967b756b2a4c64d96899..b6b03fbbd669e6331b30255df5419611
|
||||
|
||||
protected abstract T prepare(ResourceManager resourceManager, ProfilerFiller profiler);
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf27253d49 100644
|
||||
index 43f0777683039a6e8e57eebc9445538487d35c53..5e4b7e420c46e011293618fb52f8a273dacb4a33 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -82,8 +82,6 @@ import net.minecraft.tags.FluidTags;
|
||||
@@ -1306,7 +1306,7 @@ index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf
|
||||
}
|
||||
}
|
||||
// Paper start - detailed watchdog information
|
||||
@@ -3191,8 +3178,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3192,8 +3179,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.processPortalCooldown();
|
||||
if (this.portalProcess != null) {
|
||||
if (this.portalProcess.processPortalTeleportation(serverLevel, this, this.canUsePortal(false))) {
|
||||
@@ -1315,7 +1315,7 @@ index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf
|
||||
this.setPortalCooldown();
|
||||
TeleportTransition portalDestination = this.portalProcess.getPortalDestination(serverLevel, this);
|
||||
if (portalDestination != null) {
|
||||
@@ -3203,7 +3188,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3204,7 +3189,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1323,7 +1323,7 @@ index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf
|
||||
} else if (this.portalProcess.hasExpired()) {
|
||||
this.portalProcess = null;
|
||||
}
|
||||
@@ -3758,15 +3742,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3759,15 +3743,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
entity.teleport(this.calculatePassengerTransition(teleportTransition, entity));
|
||||
}
|
||||
|
||||
@@ -1339,7 +1339,7 @@ index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -3782,11 +3763,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3783,11 +3764,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1351,7 +1351,7 @@ index 9a0334134d8020e9d52e542859f29b5c6efad643..a8be25542f63d6166cbed065e5006cbf
|
||||
return null;
|
||||
} else {
|
||||
// Paper start - Fix item duplication and teleport issues
|
||||
@@ -3805,7 +3783,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3806,7 +3784,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
level.resetEmptyTime();
|
||||
teleportTransition.postTeleportTransition().onTransition(entityx);
|
||||
|
||||
@@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
|
||||
index 257ecbcf7d463eefb951867a5426eaf24e356305..bcbc25c6dc5a2063b1ad410194a25b0d5ff7c8d8 100644
|
||||
index b118e91f1e0b5a8b8c0b2a4a32faabc5a34a5954..0db57c334bef3b6473ae1b734f953e150862eab5 100644
|
||||
--- a/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -184,19 +184,25 @@ public class ServerEntity {
|
||||
@@ -189,19 +189,25 @@ public class ServerEntity {
|
||||
packet = ClientboundEntityPositionSyncPacket.of(this.entity);
|
||||
flag3 = true;
|
||||
flag4 = true;
|
||||
|
||||
@@ -13,7 +13,7 @@ As part of: EmpireCraft (https://github.com/starlis/empirecraft)
|
||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index d6826e878efb3e5532d23f04cc8e951a937cf29f..62e49f844c477c92894d77b469c1537b05fa7677 100644
|
||||
index 16b390f527cf18a000ebed2950a35bcfb15c6c21..671393424ca6773ffeb05c4183cf833181f1c1a9 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -422,6 +422,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -25,10 +25,10 @@ index d6826e878efb3e5532d23f04cc8e951a937cf29f..62e49f844c477c92894d77b469c1537b
|
||||
public @Nullable com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
|
||||
public @Nullable String clientBrandName = null; // Paper - Brand support
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 7aa2c1c070e77a580dcc12865956119e42a33ba3..f961d38cde80187673d27f9c6fa1239dd505fef5 100644
|
||||
index e9ddf4dfe2d8072d98dacddb875c0ac25731851d..2fd465ac724285318ef6a9037bf17f288c442bff 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2404,7 +2404,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2397,7 +2397,7 @@ public class ServerGamePacketListenerImpl
|
||||
this.disconnectAsync(Component.translatable("multiplayer.disconnect.illegal_characters"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_CHARACTERS); // Paper - add proper async disconnect
|
||||
} else if (this.player.isRemoved() || this.player.getChatVisibility() == ChatVisiblity.HIDDEN) { // CraftBukkit - dead men tell no tales
|
||||
this.send(new ClientboundSystemChatPacket(Component.translatable("chat.disabled.options").withStyle(ChatFormatting.RED), false));
|
||||
@@ -38,7 +38,7 @@ index 7aa2c1c070e77a580dcc12865956119e42a33ba3..f961d38cde80187673d27f9c6fa1239d
|
||||
// CraftBukkit start
|
||||
if (sync) {
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 7517812d79c44358f2824dce29326d2d2d3b178e..818e7c6f5b2b06c901463fda296cb4673f6d271b 100644
|
||||
index a0949d8256823731f6f7da30e74dfd0205dde380..2c025382d041c43486ae975a3f687bc4cddf8d62 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -334,6 +334,8 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index f961d38cde80187673d27f9c6fa1239dd505fef5..1f1df6616e416389fc5f84878469f0fed3254de7 100644
|
||||
index 2fd465ac724285318ef6a9037bf17f288c442bff..d8e66642bb33dc00d2e410c2739c0291777c88bc 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2486,7 +2486,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2479,7 +2479,7 @@ public class ServerGamePacketListenerImpl
|
||||
// CraftBukkit start
|
||||
String rawMessage = message.signedContent();
|
||||
if (rawMessage.isEmpty()) {
|
||||
|
||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 818e7c6f5b2b06c901463fda296cb4673f6d271b..29904ffc7aa1b60ceb94cd2e4f7c86d26e398e6c 100644
|
||||
index 2c025382d041c43486ae975a3f687bc4cddf8d62..2a4e52ba074dfd6dce98669282de729eae7d272a 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1267,7 +1267,7 @@ public abstract class PlayerList {
|
||||
@@ -1278,7 +1278,7 @@ public abstract class PlayerList {
|
||||
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
||||
// Paper end
|
||||
boolean flag = this.verifyChatTrusted(message);
|
||||
|
||||
@@ -126,7 +126,7 @@ index 8ef16f98996b1ec0c9c3f158248ac95f1b07328f..6780b2493d625603b74e635c4996bb83
|
||||
private static final Codec<Object> ARG_CODEC = Codec.either(PRIMITIVE_ARG_CODEC, ComponentSerialization.CODEC)
|
||||
.xmap(
|
||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||
index 3cb0407c022c0b3e8627fc1d9736d3eee0609039..609b3020e5c044c51d80680bb0e9f3caae5b8285 100644
|
||||
index b127f444b79ef9430121045f328dd77b6b8182b2..3d476a93ecf3b12012db92ef07c0a899aac93388 100644
|
||||
--- a/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1220,7 +1220,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||
@@ -139,10 +139,10 @@ index 3cb0407c022c0b3e8627fc1d9736d3eee0609039..609b3020e5c044c51d80680bb0e9f3ca
|
||||
return ret;
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 1f1df6616e416389fc5f84878469f0fed3254de7..7e00e8b0eb9a7aaffc37ef4d98b9205d58e9c5b2 100644
|
||||
index d8e66642bb33dc00d2e410c2739c0291777c88bc..096354ff2e65321b46bffefc91c0c47d2b114526 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2776,7 +2776,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2769,7 +2769,7 @@ public class ServerGamePacketListenerImpl
|
||||
// SPIGOT-7136 - Allays
|
||||
if (target instanceof net.minecraft.world.entity.animal.allay.Allay || target instanceof net.minecraft.world.entity.animal.horse.AbstractHorse) { // Paper - Fix horse armor desync
|
||||
ServerGamePacketListenerImpl.this.send(new net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket(
|
||||
@@ -210,10 +210,10 @@ index 381e0a1c0af7e339713ed1df1c2f21121c1bbd0f..4e847c3f9d761da5dda11dec60582d9d
|
||||
equipmentSlotGroup -> equipmentSlotGroup.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO
|
||||
);
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index 77c4bf12c8344dd3699142decaec42330100f1e7..25c806ca9abebdaa6031e3f350fdf1c7deac7c4e 100644
|
||||
index 24ecca78dc1140b6fc47d59f2acefca6bc2b0220..18bddc3db6f0e06f1811f2c409f207db2f462f63 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -1174,7 +1174,7 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -1173,7 +1173,7 @@ public final class ItemStack implements DataComponentHolder {
|
||||
|
||||
private void addAttributeTooltips(Consumer<Component> tooltipAdder, TooltipDisplay tooltipDisplay, @Nullable Player player) {
|
||||
if (tooltipDisplay.shows(DataComponents.ATTRIBUTE_MODIFIERS)) {
|
||||
|
||||
@@ -33,24 +33,24 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRA
|
||||
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
index 5677a1d1ca2fc5d179034e2747f334a708a7cc79..e9d1c3c8cd637361e732010950e2a60cfc598c7c 100644
|
||||
index 0ae31252b2e2d82bfa883abc8fb78d550ecf4849..97731d0db450badeced8a9ff475f71000fe98c87 100644
|
||||
--- a/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
@@ -20,7 +20,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
|
||||
static final java.util.regex.Pattern PROP_PATTERN = java.util.regex.Pattern.compile("\\w{0,16}");
|
||||
// Spigot end
|
||||
// CraftBukkit start - add fields
|
||||
- private static final java.util.HashMap<java.net.InetAddress, Long> throttleTracker = new java.util.HashMap<>();
|
||||
// Paper start - Connection throttle
|
||||
- private static final java.util.Map<java.net.InetAddress, Long> throttleTracker = new java.util.HashMap<>();
|
||||
+ private static final it.unimi.dsi.fastutil.objects.Object2LongMap<java.net.InetAddress> throttleTracker = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>(); // Gale - Dionysus - replace throttle tracker map with optimized collection
|
||||
private static int throttleCounter = 0;
|
||||
// CraftBukkit end
|
||||
// Paper end - Connection throttle
|
||||
private static final boolean BYPASS_HOSTCHECK = Boolean.getBoolean("Paper.bypassHostCheck"); // Paper
|
||||
@@ -79,7 +79,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
|
||||
java.net.InetAddress address = ((java.net.InetSocketAddress) this.connection.getRemoteAddress()).getAddress();
|
||||
@@ -80,7 +80,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
|
||||
java.net.InetAddress address = socketAddress.getAddress();
|
||||
|
||||
synchronized (ServerHandshakePacketListenerImpl.throttleTracker) {
|
||||
- if (ServerHandshakePacketListenerImpl.throttleTracker.containsKey(address) && !"127.0.0.1".equals(address.getHostAddress()) && currentTime - ServerHandshakePacketListenerImpl.throttleTracker.get(address) < connectionThrottle) {
|
||||
+ if (ServerHandshakePacketListenerImpl.throttleTracker.containsKey(address) && !"127.0.0.1".equals(address.getHostAddress()) && currentTime - ServerHandshakePacketListenerImpl.throttleTracker.getLong(address) < connectionThrottle) { // Gale - Dionysus - replace throttle tracker map with optimized collection
|
||||
- if (ServerHandshakePacketListenerImpl.throttleTracker.containsKey(address) && currentTime - ServerHandshakePacketListenerImpl.throttleTracker.get(address) < connectionThrottle) {
|
||||
+ if (ServerHandshakePacketListenerImpl.throttleTracker.containsKey(address) && currentTime - ServerHandshakePacketListenerImpl.throttleTracker.getLong(address) < connectionThrottle) { // Gale - Dionysus - replace throttle tracker map with optimized collection
|
||||
ServerHandshakePacketListenerImpl.throttleTracker.put(address, currentTime);
|
||||
Component chatmessage = io.papermc.paper.adventure.PaperAdventure.asVanilla(io.papermc.paper.configuration.GlobalConfiguration.get().messages.kick.connectionThrottle); // Paper - Configurable connection throttle kick message
|
||||
Component chatmessage = io.papermc.paper.adventure.PaperAdventure.asVanilla(io.papermc.paper.configuration.GlobalConfiguration.get().messages.kick.connectionThrottle);
|
||||
this.connection.send(new ClientboundLoginDisconnectPacket(chatmessage));
|
||||
|
||||
@@ -13,7 +13,7 @@ As part of: VMP (https://github.com/RelativityMC/VMP-fabric)
|
||||
Licensed under: MIT (https://opensource.org/licenses/MIT)
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index c51776867d87640c20cd317a33dc5c654f1e7a51..33f1381569612996f87b25c6d9009f9784517238 100644
|
||||
index e1e075303f0e857c054572ed970dad1a8f38b10b..6cb01e3ca083d37d38675994ad030a6416023011 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -240,6 +240,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -36,7 +36,7 @@ index c51776867d87640c20cd317a33dc5c654f1e7a51..33f1381569612996f87b25c6d9009f97
|
||||
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
|
||||
// Paper start - detailed watchdog information
|
||||
ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread("Cannot move an entity off-main");
|
||||
@@ -4134,6 +4140,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4135,6 +4141,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public final void setBoundingBox(AABB bb) {
|
||||
|
||||
@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 2bfff6cc34bc94402fb349d2641efadf380c241a..d57b677cfe5282a5601e4ec8083fd476ccc16422 100644
|
||||
index be324f5085c1cceb3d4c37bc73d0ee5ac761a99c..1ea70e63db1d5f05cdbace8be48160b26a480fee 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -114,6 +114,7 @@ public abstract class PlayerList {
|
||||
@@ -72,7 +72,7 @@ index 2bfff6cc34bc94402fb349d2641efadf380c241a..d57b677cfe5282a5601e4ec8083fd476
|
||||
player.serverLevel().removePlayerImmediately(player, reason);
|
||||
// TeleportTransition teleportTransition = player.findRespawnPositionAndUseSpawnBlock(!keepInventory, TeleportTransition.DO_NOTHING);
|
||||
// ServerLevel level = teleportTransition.newLevel();
|
||||
@@ -801,6 +805,7 @@ public abstract class PlayerList {
|
||||
@@ -802,6 +806,7 @@ public abstract class PlayerList {
|
||||
this.players.add(serverPlayer);
|
||||
this.playersByName.put(serverPlayer.getScoreboardName().toLowerCase(java.util.Locale.ROOT), serverPlayer); // Spigot
|
||||
this.playersByUUID.put(serverPlayer.getUUID(), serverPlayer);
|
||||
@@ -80,7 +80,7 @@ index 2bfff6cc34bc94402fb349d2641efadf380c241a..d57b677cfe5282a5601e4ec8083fd476
|
||||
}
|
||||
// serverPlayer.initInventoryMenu();
|
||||
serverPlayer.setHealth(serverPlayer.getHealth());
|
||||
@@ -892,18 +897,58 @@ public abstract class PlayerList {
|
||||
@@ -904,18 +909,58 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public void tick() {
|
||||
@@ -143,7 +143,7 @@ index 2bfff6cc34bc94402fb349d2641efadf380c241a..d57b677cfe5282a5601e4ec8083fd476
|
||||
+
|
||||
// CraftBukkit start - add a world/entity limited version
|
||||
public void broadcastAll(Packet packet, net.minecraft.world.entity.player.Player entityhuman) {
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
for (ServerPlayer entityplayer : this.players) { // Paper - replace for i with for each for thread safety
|
||||
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
|
||||
index 248ee263a853d1d3148746a63ba422115853f6a1..8032eae3256625e90313edb4fa132b19d52ba0a0 100644
|
||||
--- a/net/minecraft/world/entity/player/Player.java
|
||||
|
||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index d57b677cfe5282a5601e4ec8083fd476ccc16422..0c80d22ac19e8507a54e3ea0b3df5fa5ee853f89 100644
|
||||
index 1ea70e63db1d5f05cdbace8be48160b26a480fee..4a3f06a4677348c1277669514f9acef7a4334f1d 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -901,10 +901,19 @@ public abstract class PlayerList {
|
||||
@@ -913,10 +913,19 @@ public abstract class PlayerList {
|
||||
ServerPlayer[] sendAllPlayerInfoBucket = this.sendAllPlayerInfoBuckets[this.sendAllPlayerInfoIn];
|
||||
|
||||
if (sendAllPlayerInfoBucket != null) {
|
||||
|
||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 466d70b679059bdbe850033547d999c88063d1c2..d85d70fe5bfa63f0b188663d7ea11b56ff265a18 100644
|
||||
index dfb904ab37f0ebd5caf8bdb958d1ccc8ecc1717b..df9424c0eff76ee664919930cc8b3a4ce49ed67e 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -4644,6 +4644,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4645,6 +4645,16 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return this.inBlockState;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ index 466d70b679059bdbe850033547d999c88063d1c2..d85d70fe5bfa63f0b188663d7ea11b56
|
||||
return this.chunkPosition;
|
||||
}
|
||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||
index 6e93836570859929e4f35d23d9dbcc2ebbc8fb27..8d7150fbd296a0b957e9de987d2e49815264a4b2 100644
|
||||
index a542e1dfa41ec2ea1a979dc27d0155d5c08fd7cc..ed96755b15e9a9d3dc05ccc8afc730437fe035ff 100644
|
||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -2097,8 +2097,17 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
|
||||
@@ -13,10 +13,10 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper)
|
||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 12132cea01acb531c2008da9db634305b619feb7..e8a1624668fe6c07ed191303cfad738d16ce069a 100644
|
||||
index 671393424ca6773ffeb05c4183cf833181f1c1a9..08a4454a8dbbd75b60b8aaeafc03d2323a583c12 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2081,12 +2081,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2076,12 +2076,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
@Override
|
||||
public void crit(Entity entityHit) {
|
||||
|
||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index 25c806ca9abebdaa6031e3f350fdf1c7deac7c4e..3eb34df6bd4c4969ffbcc7abd1c24e556485d1c4 100644
|
||||
index 18bddc3db6f0e06f1811f2c409f207db2f462f63..3ec4e0aa0777009b4ee75f6ae94732bd7e125619 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -889,11 +889,11 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -888,11 +888,11 @@ public final class ItemStack implements DataComponentHolder {
|
||||
}
|
||||
|
||||
public static boolean isSameItem(ItemStack stack, ItemStack other) {
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: f8450874da4e2d29863b544b70cc7b962a04aa70
|
||||
Commit: 8c77678e81c813e57dda10c646599b0ab3144218
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "net/minecraft/CrashReport.java.patch"
|
||||
@@ -307,7 +307,7 @@ index 6c65122fe15e08c352885c7dfd3ddf496f0c00c4..bff3da0fba99532889976281dba70d65
|
||||
io.papermc.paper.plugin.PluginInitializerManager.load(optionSet); // Paper
|
||||
Bootstrap.bootStrap();
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index af17193fde9d4c13e84fb7952521430299f2cfec..91fa7f0bac5681413cd8d66fe1ebf2029713408f 100644
|
||||
index af17193fde9d4c13e84fb7952521430299f2cfec..5c0e7804555f9b789a96a98008dd1edf0be68104 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -265,6 +265,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -352,7 +352,7 @@ index af17193fde9d4c13e84fb7952521430299f2cfec..91fa7f0bac5681413cd8d66fe1ebf202
|
||||
this.isRestarting = isRestarting;
|
||||
this.hasLoggedStop = true; // Paper - Debugging
|
||||
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
|
||||
@@ -1184,6 +1198,26 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1184,6 +1198,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
// Paper end - Add onboarding message for initial server start
|
||||
|
||||
@@ -365,21 +365,11 @@ index af17193fde9d4c13e84fb7952521430299f2cfec..91fa7f0bac5681413cd8d66fe1ebf202
|
||||
+ }
|
||||
+ }
|
||||
+ // Purpur end - config for startup commands
|
||||
+
|
||||
+ // Purpur start - Configurable void damage height and damage
|
||||
+ if (org.purpurmc.purpur.configuration.transformation.VoidDamageHeightMigration.HAS_BEEN_REGISTERED) {
|
||||
+ try {
|
||||
+ org.purpurmc.purpur.PurpurConfig.config.save((java.io.File) this.options.valueOf("purpur-settings"));
|
||||
+ } catch (IOException ex) {
|
||||
+ org.bukkit.Bukkit.getLogger().log(java.util.logging.Level.SEVERE, "Could not save " + this.options.valueOf("purpur-settings"), ex);
|
||||
+ }
|
||||
+ }
|
||||
+ // Purpur end - Configurable void damage height and damage
|
||||
+
|
||||
while (this.running) {
|
||||
long l;
|
||||
if (!this.isPaused() && this.tickRateManager.isSprinting() && this.tickRateManager.checkShouldSprintThisTick()) {
|
||||
@@ -1217,6 +1251,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1217,6 +1241,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.recentTps[0] = tps1.getAverage();
|
||||
this.recentTps[1] = tps5.getAverage();
|
||||
this.recentTps[2] = tps15.getAverage();
|
||||
@@ -387,7 +377,7 @@ index af17193fde9d4c13e84fb7952521430299f2cfec..91fa7f0bac5681413cd8d66fe1ebf202
|
||||
tickSection = currentTime;
|
||||
}
|
||||
// Paper end - further improve server tick loop
|
||||
@@ -1242,6 +1277,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1242,6 +1267,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.tickFrame.end();
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
||||
@@ -400,7 +390,7 @@ index af17193fde9d4c13e84fb7952521430299f2cfec..91fa7f0bac5681413cd8d66fe1ebf202
|
||||
this.startMeasuringTaskExecutionTime();
|
||||
this.waitUntilNextTick();
|
||||
this.finishMeasuringTaskExecutionTime();
|
||||
@@ -1657,7 +1698,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1657,7 +1688,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
long worldTime = level.getGameTime();
|
||||
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
|
||||
for (Player entityhuman : level.players()) {
|
||||
@@ -409,7 +399,7 @@ index af17193fde9d4c13e84fb7952521430299f2cfec..91fa7f0bac5681413cd8d66fe1ebf202
|
||||
continue;
|
||||
}
|
||||
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
|
||||
@@ -1676,6 +1717,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1676,6 +1707,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
|
||||
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
|
||||
@@ -487,7 +477,7 @@ index b81f98738ef166336e4cc3092b6ba63f385b68e3..ca4bad763602f202423409ffb16f797f
|
||||
ItemEntity itemEntity = serverPlayer.drop(itemStack, false);
|
||||
if (itemEntity != null) {
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 349eafa321c955c6bda7a5aa6931311d85867565..8fe1834250f8a708791f76a3f008198c6abf1ef4 100644
|
||||
index 349eafa321c955c6bda7a5aa6931311d85867565..cdfb9004dd4f4ea1bbb77895b7fc020d628c485d 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -105,6 +105,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -498,27 +488,11 @@ index 349eafa321c955c6bda7a5aa6931311d85867565..8fe1834250f8a708791f76a3f008198c
|
||||
new com.destroystokyo.paper.console.PaperConsole(DedicatedServer.this).start();
|
||||
/*
|
||||
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8));
|
||||
@@ -167,6 +168,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
org.spigotmc.SpigotConfig.registerCommands();
|
||||
// Spigot end
|
||||
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // Paper - load mappings for stacktrace deobf and etc.
|
||||
+ // Purpur start - Configurable void damage height and damage
|
||||
+ try {
|
||||
+ org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
|
||||
+ } catch (Exception e) {
|
||||
+ DedicatedServer.LOGGER.error("Unable to load server configuration", e);
|
||||
+ return false;
|
||||
+ }
|
||||
+ org.purpurmc.purpur.PurpurConfig.registerCommands();
|
||||
+ // Purpur end - Configurable void damage height and damage
|
||||
// Paper start - initialize global and world-defaults configuration
|
||||
this.paperConfigurations.initializeGlobalConfiguration(this.registryAccess());
|
||||
this.paperConfigurations.initializeWorldDefaultsConfiguration(this.registryAccess());
|
||||
@@ -188,6 +198,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -188,6 +189,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
org.dreeam.leaf.command.LeafCommands.registerCommands(this); // Leaf - Leaf commands
|
||||
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
|
||||
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
|
||||
+ /*// Purpur start - Purpur config files // Purpur - Configurable void damage height and damage
|
||||
+ // Purpur start - Purpur config files
|
||||
+ try {
|
||||
+ org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
|
||||
+ } catch (Exception e) {
|
||||
@@ -526,11 +500,11 @@ index 349eafa321c955c6bda7a5aa6931311d85867565..8fe1834250f8a708791f76a3f008198c
|
||||
+ return false;
|
||||
+ }
|
||||
+ org.purpurmc.purpur.PurpurConfig.registerCommands();
|
||||
+ */// Purpur end - Purpur config files // Purpur - Configurable void damage height and damage
|
||||
+ // Purpur end - Purpur config files
|
||||
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
|
||||
|
||||
// Gale start - Pufferfish - SIMD support
|
||||
@@ -242,6 +261,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -242,6 +252,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
if (true) throw new IllegalStateException("Failed to bind to port", var10); // Paper - Propagate failed to bind to port error
|
||||
return false;
|
||||
}
|
||||
@@ -561,7 +535,7 @@ index 349eafa321c955c6bda7a5aa6931311d85867565..8fe1834250f8a708791f76a3f008198c
|
||||
|
||||
// CraftBukkit start
|
||||
this.server.loadPlugins();
|
||||
@@ -321,6 +364,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -321,6 +355,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
}
|
||||
|
||||
if (org.dreeam.leaf.config.modules.async.AsyncMobSpawning.enabled) mobSpawnExecutor.start(); // Pufferfish
|
||||
@@ -721,7 +695,7 @@ index f262a7c5ae4e7d56f16f5c0f4f145a2e428abbe4..614c7d9f673c926562acc8fa3b378862
|
||||
private JComponent buildOnboardingPanel() {
|
||||
String onboardingLink = "https://docs.papermc.io/paper/next-steps";
|
||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||
index cce8c151e46873c2de9be77d832bf695ee44ee24..66b64b243ebcde8fe551baf54aa868c4221d2e00 100644
|
||||
index 29c78f74d63061f89e6c1d5555f6581834a135d0..99d0b94ba4fa6fc166fb7aa22abcf1402aa81794 100644
|
||||
--- a/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -201,6 +201,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||
@@ -938,7 +912,7 @@ index cce8c151e46873c2de9be77d832bf695ee44ee24..66b64b243ebcde8fe551baf54aa868c4
|
||||
}
|
||||
// Paper end - Fix merchant inventory not closing on entity removal
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d77dea5aa9 100644
|
||||
index 29e61a4cc550e4a627f4da99d116da5d4af9a45d..5e9c02f66f6606fd2eaa8298eddbdff2889cffed 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -427,6 +427,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1016,7 +990,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
Entity entity = damageSource.getEntity();
|
||||
if (!( // Paper - split the if statement. If below statement is false, hurtServer would not have been evaluated. Return false.
|
||||
!(entity instanceof Player player && !this.canHarmPlayer(player))
|
||||
@@ -1392,6 +1425,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1387,6 +1420,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
serverLevel.removePlayerImmediately(this, Entity.RemovalReason.CHANGED_DIMENSION);
|
||||
this.unsetRemoved();
|
||||
// CraftBukkit end
|
||||
@@ -1024,7 +998,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
this.setServerLevel(level);
|
||||
this.connection.internalTeleport(PositionMoveRotation.of(teleportTransition), teleportTransition.relatives()); // CraftBukkit - use internal teleport without event
|
||||
this.connection.resetPosition();
|
||||
@@ -1508,7 +1542,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1503,7 +1537,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
new AABB(vec3.x() - 8.0, vec3.y() - 5.0, vec3.z() - 8.0, vec3.x() + 8.0, vec3.y() + 5.0, vec3.z() + 8.0),
|
||||
monster -> monster.isPreventingPlayerRest(this.serverLevel(), this)
|
||||
);
|
||||
@@ -1033,7 +1007,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
return Either.left(Player.BedSleepingProblem.NOT_SAFE);
|
||||
}
|
||||
}
|
||||
@@ -1545,7 +1579,19 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1540,7 +1574,19 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
CriteriaTriggers.SLEPT_IN_BED.trigger(this);
|
||||
});
|
||||
if (!this.serverLevel().canSleepThroughNights()) {
|
||||
@@ -1054,7 +1028,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
}
|
||||
|
||||
((ServerLevel)this.level()).updateSleepingPlayerList();
|
||||
@@ -1637,6 +1683,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1632,6 +1678,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
@Override
|
||||
public void openTextEdit(SignBlockEntity signEntity, boolean isFrontText) {
|
||||
@@ -1062,7 +1036,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
this.connection.send(new ClientboundBlockUpdatePacket(this.level(), signEntity.getBlockPos()));
|
||||
this.connection.send(new ClientboundOpenSignEditorPacket(signEntity.getBlockPos(), isFrontText));
|
||||
}
|
||||
@@ -1939,6 +1986,26 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1934,6 +1981,26 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.lastSentExp = -1; // CraftBukkit - Added to reset
|
||||
}
|
||||
|
||||
@@ -1089,7 +1063,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
@Override
|
||||
public void displayClientMessage(Component chatComponent, boolean actionBar) {
|
||||
this.sendSystemMessage(chatComponent, actionBar);
|
||||
@@ -2162,6 +2229,20 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2157,6 +2224,20 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1110,7 +1084,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
public void sendSystemMessage(Component mesage) {
|
||||
this.sendSystemMessage(mesage, false);
|
||||
}
|
||||
@@ -2300,8 +2381,68 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2295,8 +2376,68 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
public void resetLastActionTime() {
|
||||
this.lastActionTime = Util.getMillis();
|
||||
@@ -1179,7 +1153,7 @@ index ab819a0b2a4dab797febf8e342a3ee678bcd0eaa..2146aa9d2bbcc4a96a9e7c8018ee50d7
|
||||
public ServerStatsCounter getStats() {
|
||||
return this.stats;
|
||||
}
|
||||
@@ -2928,4 +3069,56 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2923,4 +3064,56 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -1285,7 +1259,7 @@ index b604cba2490a747661d6819251bc3b9a1d35c7d4..d1f74d10e5e3d65895d7e87dd77f298c
|
||||
+ // Purpur end - Shift right click to use exp for mending
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 8c3255661221f8afbccb661bec3afb47e4059403..ea7710c17bfc9fcfe736c3a2e83898b7ad6a7869 100644
|
||||
index c4f4c21f32e2aba79e15315d73124c803bb1223a..d2e8adccf33c6b842fac615006b782b09cfa7a1a 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -54,6 +54,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -1310,7 +1284,7 @@ index 8c3255661221f8afbccb661bec3afb47e4059403..ea7710c17bfc9fcfe736c3a2e83898b7
|
||||
this.player.clientBrandName = new net.minecraft.network.FriendlyByteBuf(io.netty.buffer.Unpooled.wrappedBuffer(data)).readUtf(256);
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 7e00e8b0eb9a7aaffc37ef4d98b9205d58e9c5b2..90d0c59c66c2e18d601838886ff55bb428547779 100644
|
||||
index 096354ff2e65321b46bffefc91c0c47d2b114526..bc935e51c2c5134813d3476da14a596fc47cec76 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -321,6 +321,20 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -1519,7 +1493,7 @@ index 7e00e8b0eb9a7aaffc37ef4d98b9205d58e9c5b2..90d0c59c66c2e18d601838886ff55bb4
|
||||
private boolean shouldCheckPlayerMovement(boolean isElytraMovement) {
|
||||
if (this.isSingleplayerOwner()) {
|
||||
return false;
|
||||
@@ -2075,6 +2155,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2068,6 +2148,7 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
boolean cancelled;
|
||||
if (hitResult == null || hitResult.getType() != HitResult.Type.BLOCK) {
|
||||
@@ -1527,7 +1501,7 @@ index 7e00e8b0eb9a7aaffc37ef4d98b9205d58e9c5b2..90d0c59c66c2e18d601838886ff55bb4
|
||||
org.bukkit.event.player.PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemInHand, hand);
|
||||
cancelled = event.useItemInHand() == Event.Result.DENY;
|
||||
} else {
|
||||
@@ -2747,6 +2828,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2740,6 +2821,7 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
AABB boundingBox = target.getBoundingBox();
|
||||
if (this.player.canInteractWithEntity(boundingBox, io.papermc.paper.configuration.GlobalConfiguration.get().misc.clientInteractionLeniencyDistance.or(3.0))) { // Paper - configurable lenience value for interact range
|
||||
@@ -1535,7 +1509,7 @@ index 7e00e8b0eb9a7aaffc37ef4d98b9205d58e9c5b2..90d0c59c66c2e18d601838886ff55bb4
|
||||
packet.dispatch(
|
||||
new ServerboundInteractPacket.Handler() {
|
||||
private void performInteraction(InteractionHand hand, ServerGamePacketListenerImpl.EntityInteraction entityInteraction, PlayerInteractEntityEvent event) { // CraftBukkit
|
||||
@@ -2759,6 +2841,8 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2752,6 +2834,8 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
|
||||
|
||||
@@ -1558,7 +1532,7 @@ index dc225eaa0daf238e091a0cf63a42158a30ecb7f0..c61a94a08486cdeba84ccfbc58ef3cab
|
||||
}
|
||||
} catch (AuthenticationUnavailableException var4) {
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 11015e8c0f2b5f8bd2eb083d8e093beb72c43cf0..800f773ca2cee6310a86d3f8043d57bd078a2dfd 100644
|
||||
index d2dc48d5a42506716bcbe0854a860b1eaa3b5705..bfcc40c09f80b5405cc414969693c195769bcb98 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -411,6 +411,7 @@ public abstract class PlayerList {
|
||||
@@ -1586,7 +1560,7 @@ index 11015e8c0f2b5f8bd2eb083d8e093beb72c43cf0..800f773ca2cee6310a86d3f8043d57bd
|
||||
event.disallow(org.bukkit.event.player.PlayerLoginEvent.Result.KICK_FULL, net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(org.spigotmc.SpigotConfig.serverFullMessage)); // Spigot // Paper - Adventure
|
||||
}
|
||||
}
|
||||
@@ -990,6 +992,20 @@ public abstract class PlayerList {
|
||||
@@ -1001,6 +1003,20 @@ public abstract class PlayerList {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1607,7 +1581,7 @@ index 11015e8c0f2b5f8bd2eb083d8e093beb72c43cf0..800f773ca2cee6310a86d3f8043d57bd
|
||||
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
|
||||
for (ServerPlayer serverPlayer : this.players) {
|
||||
if (serverPlayer.level().dimension() == dimension) {
|
||||
@@ -1074,6 +1090,7 @@ public abstract class PlayerList {
|
||||
@@ -1085,6 +1101,7 @@ public abstract class PlayerList {
|
||||
} else {
|
||||
b = (byte)(24 + permLevel);
|
||||
}
|
||||
@@ -1615,7 +1589,7 @@ index 11015e8c0f2b5f8bd2eb083d8e093beb72c43cf0..800f773ca2cee6310a86d3f8043d57bd
|
||||
|
||||
player.connection.send(new ClientboundEntityEventPacket(player, b));
|
||||
}
|
||||
@@ -1082,6 +1099,27 @@ public abstract class PlayerList {
|
||||
@@ -1093,6 +1110,27 @@ public abstract class PlayerList {
|
||||
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
|
||||
this.server.getCommands().sendCommands(player);
|
||||
} // Paper - Add sendOpLevel API
|
||||
@@ -1700,10 +1674,10 @@ index d5524038314591a10c9f08a68e2ac91f6079a897..bf82de45bf98e8605a1fdb69803f75f4
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/world/damagesource/CombatTracker.java b/net/minecraft/world/damagesource/CombatTracker.java
|
||||
index 7f653d6c0be10254f54312f3a576feb15c1c93c5..09716bececdca792c42372dbd03d260dd6be5d98 100644
|
||||
index 54adc730ba257c047b3be71d427e56ff6b7b5eb1..806ebefdafd74e33b9f8220ef8a597c265b83e9a 100644
|
||||
--- a/net/minecraft/world/damagesource/CombatTracker.java
|
||||
+++ b/net/minecraft/world/damagesource/CombatTracker.java
|
||||
@@ -55,7 +55,7 @@ public class CombatTracker {
|
||||
@@ -62,7 +62,7 @@ public class CombatTracker {
|
||||
|
||||
private Component getMessageForAssistedFall(Entity entity, Component entityDisplayName, String hasWeaponTranslationKey, String noWeaponTranslationKey) {
|
||||
ItemStack itemStack = entity instanceof LivingEntity livingEntity ? livingEntity.getMainHandItem() : ItemStack.EMPTY;
|
||||
@@ -1712,7 +1686,7 @@ index 7f653d6c0be10254f54312f3a576feb15c1c93c5..09716bececdca792c42372dbd03d260d
|
||||
? Component.translatable(hasWeaponTranslationKey, this.mob.getDisplayName(), entityDisplayName, itemStack.getDisplayName())
|
||||
: Component.translatable(noWeaponTranslationKey, this.mob.getDisplayName(), entityDisplayName);
|
||||
}
|
||||
@@ -99,6 +99,15 @@ public class CombatTracker {
|
||||
@@ -106,6 +106,15 @@ public class CombatTracker {
|
||||
Component component = ComponentUtils.wrapInSquareBrackets(Component.translatable(string + ".link")).withStyle(INTENTIONAL_GAME_DESIGN_STYLE);
|
||||
return Component.translatable(string + ".message", this.mob.getDisplayName(), component);
|
||||
} else {
|
||||
@@ -1914,7 +1888,7 @@ index 1fc9e1ad541c46124183a401b2a7d99aea69cecf..881271f0bc77a8a8a7d31daad9a8188b
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5a6fb8b56 100644
|
||||
index 27ea5c82b3e327f6a1817ade22651046b83fc10a..30e341bd5fca8b95d6911ca94f4aac17962f3269 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -139,6 +139,7 @@ import net.minecraft.world.scores.Team;
|
||||
@@ -2021,7 +1995,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
if (this.getVehicle() instanceof AbstractBoat abstractBoat && !abstractBoat.isUnderWater()) {
|
||||
this.wasTouchingWater = false;
|
||||
} else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014)) {
|
||||
@@ -2533,6 +2566,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -2534,6 +2567,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
compound.putBoolean("Paper.FreezeLock", true);
|
||||
}
|
||||
// Paper end
|
||||
@@ -2035,7 +2009,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
return compound;
|
||||
} catch (Throwable var8) {
|
||||
CrashReport crashReport = CrashReport.forThrowable(var8, "Saving entity NBT");
|
||||
@@ -2650,6 +2690,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -2651,6 +2691,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
freezeLocked = compound.getBooleanOr("Paper.FreezeLock", false);
|
||||
}
|
||||
// Paper end
|
||||
@@ -2049,7 +2023,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
} catch (Throwable var8) {
|
||||
CrashReport crashReport = CrashReport.forThrowable(var8, "Loading entity NBT");
|
||||
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
|
||||
@@ -2878,6 +2925,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -2879,6 +2926,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
if (this.isAlive() && this instanceof Leashable leashable) {
|
||||
if (leashable.getLeashHolder() == player) {
|
||||
if (!this.level().isClientSide()) {
|
||||
@@ -2057,7 +2031,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
// CraftBukkit start - fire PlayerUnleashEntityEvent
|
||||
// Paper start - Expand EntityUnleashEvent
|
||||
org.bukkit.event.player.PlayerUnleashEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
|
||||
@@ -3084,6 +3132,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3085,6 +3133,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.passengers = ImmutableList.copyOf(list);
|
||||
}
|
||||
|
||||
@@ -2071,7 +2045,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||
}
|
||||
}
|
||||
@@ -3125,6 +3180,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3126,6 +3181,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return false;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -2086,7 +2060,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
||||
this.passengers = ImmutableList.of();
|
||||
} else {
|
||||
@@ -3194,15 +3257,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3195,15 +3258,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return Vec3.directionFromRotation(this.getRotationVector());
|
||||
}
|
||||
|
||||
@@ -2106,7 +2080,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3404,7 +3470,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3405,7 +3471,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public int getMaxAirSupply() {
|
||||
@@ -2115,7 +2089,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
}
|
||||
|
||||
public int getAirSupply() {
|
||||
@@ -3925,7 +3991,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3926,7 +3992,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
// CraftBukkit end
|
||||
|
||||
public boolean canUsePortal(boolean allowPassengers) {
|
||||
@@ -2124,7 +2098,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
}
|
||||
|
||||
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
||||
@@ -4467,6 +4533,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4468,6 +4534,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
||||
}
|
||||
|
||||
@@ -2137,7 +2111,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
// Paper start - optimise collisions
|
||||
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
||||
if (this.touchingUnloadedChunk()) {
|
||||
@@ -4885,7 +4957,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4886,7 +4958,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public float maxUpStep() {
|
||||
@@ -2146,7 +2120,7 @@ index 209d897fdf5a5d19990f6dd8ee11d42d74bd0e92..1539e039d4d5fd539cfc552a4d420ae5
|
||||
}
|
||||
|
||||
public void onExplosionHit(@Nullable Entity entity) {
|
||||
@@ -5123,4 +5195,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5124,4 +5196,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
|
||||
}
|
||||
// Paper end - Expose entity id counter
|
||||
@@ -13249,7 +13223,7 @@ index 793e4528755fa5688efbad75418188e693ad0157..20f702c8266eb54a8835861188eb937f
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/inventory/AbstractContainerMenu.java b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
index 029f50da9618b45880c1cfe9bed6e11d77fc68dc..8e97a20306652cdfc757b7102a07c58ce0e339e3 100644
|
||||
index 813417a09b4acc7d57e80a53d970767e230d75b1..c4721eb0efe34f5e313bc890b4e960144eca4fe1 100644
|
||||
--- a/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
+++ b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
@@ -65,6 +65,7 @@ public abstract class AbstractContainerMenu {
|
||||
@@ -13845,7 +13819,7 @@ index bd919b9a83f9736f02783b1ba3863fd1b77c7e89..eb8d2d6f9c65185f5fe16a13ab0cdbba
|
||||
return optional;
|
||||
} else {
|
||||
diff --git a/net/minecraft/world/item/BlockItem.java b/net/minecraft/world/item/BlockItem.java
|
||||
index 2fbbbac9f1472354bd507926a85c25f48291edfe..5603ba2d570eda7459c91988f8d2f9e2fa517a90 100644
|
||||
index cc363ba3bc719d8b93992141d779b4c1d1bbd2fb..571a0f27a86ab24a9f8750ce1ab802bfd64d9ccf 100644
|
||||
--- a/net/minecraft/world/item/BlockItem.java
|
||||
+++ b/net/minecraft/world/item/BlockItem.java
|
||||
@@ -145,7 +145,16 @@ public class BlockItem extends Item {
|
||||
@@ -14098,7 +14072,7 @@ index 3bf3d4030c4da65fa386a8b8083d259a6046d15e..77a8d5d334cd93d23149afa8e58f4114
|
||||
consumer.accept(context);
|
||||
if (player != null) {
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index 3eb34df6bd4c4969ffbcc7abd1c24e556485d1c4..d2d9619f8156985ba38c0ef8c0f155adc8d40f34 100644
|
||||
index 3ec4e0aa0777009b4ee75f6ae94732bd7e125619..07f1b27116baf2a06e6cd4eeaa8639e166fb362d 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -458,6 +458,7 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -14117,7 +14091,7 @@ index 3eb34df6bd4c4969ffbcc7abd1c24e556485d1c4..d2d9619f8156985ba38c0ef8c0f155ad
|
||||
|
||||
serverLevel.notifyAndUpdatePhysics(newPos, null, oldBlock, block, serverLevel.getBlockState(newPos), updateFlags, net.minecraft.world.level.block.Block.UPDATE_LIMIT); // send null chunk as chunk.k() returns false by this point
|
||||
}
|
||||
@@ -618,6 +620,26 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -617,6 +619,26 @@ public final class ItemStack implements DataComponentHolder {
|
||||
return this.isDamageableItem() && this.getDamageValue() > 0;
|
||||
}
|
||||
|
||||
@@ -14144,7 +14118,7 @@ index 3eb34df6bd4c4969ffbcc7abd1c24e556485d1c4..d2d9619f8156985ba38c0ef8c0f155ad
|
||||
public int getDamageValue() {
|
||||
return Mth.clamp(this.getOrDefault(DataComponents.DAMAGE, 0), 0, this.getMaxDamage());
|
||||
}
|
||||
@@ -703,6 +725,14 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -702,6 +724,14 @@ public final class ItemStack implements DataComponentHolder {
|
||||
org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent(serverPlayer, this); // Paper - Add EntityDamageItemEvent
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -14159,7 +14133,7 @@ index 3eb34df6bd4c4969ffbcc7abd1c24e556485d1c4..d2d9619f8156985ba38c0ef8c0f155ad
|
||||
this.shrink(1);
|
||||
onBreak.accept(item);
|
||||
}
|
||||
@@ -1281,6 +1311,12 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -1280,6 +1310,12 @@ public final class ItemStack implements DataComponentHolder {
|
||||
return !this.getOrDefault(DataComponents.ENCHANTMENTS, ItemEnchantments.EMPTY).isEmpty();
|
||||
}
|
||||
|
||||
@@ -16728,7 +16702,7 @@ index 9e6b2bbc1f83d32d0332f036be4f1a0e18b826bf..db6baaa698fe93aba3fbd595158b568b
|
||||
} else if (blockState.is(Blocks.HONEY_BLOCK)) {
|
||||
return PathType.STICKY_HONEY;
|
||||
diff --git a/net/minecraft/world/level/portal/PortalShape.java b/net/minecraft/world/level/portal/PortalShape.java
|
||||
index b0a4511b7de2002257e81c52742faf0ec94cc688..c4b8725aa3177114bdcae25fca3c85aaf8277352 100644
|
||||
index 21e3d5702fae0b1d94739744228c4cab608adb6b..07140dddebca268c25a243f6c6e082c3adf919e2 100644
|
||||
--- a/net/minecraft/world/level/portal/PortalShape.java
|
||||
+++ b/net/minecraft/world/level/portal/PortalShape.java
|
||||
@@ -28,7 +28,7 @@ public class PortalShape {
|
||||
@@ -16741,7 +16715,7 @@ index b0a4511b7de2002257e81c52742faf0ec94cc688..c4b8725aa3177114bdcae25fca3c85aa
|
||||
private static final double SAFE_TRAVEL_MAX_VERTICAL_DELTA = 1.0;
|
||||
private final Direction.Axis axis;
|
||||
diff --git a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||
index eb05d3974ad1e139600810c90f7ced34a2324537..3ae69b17fec1cdb2bee2b5a795026a875f197c30 100644
|
||||
index c8f23011a8942a5be970c606f67142cbd202b97e..7bbeed6c998c91e68376d3f17a510d68e3cd0b27 100644
|
||||
--- a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||
+++ b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||
@@ -81,6 +81,7 @@ public class MapItemSavedData extends SavedData {
|
||||
@@ -17383,7 +17357,7 @@ index 0000000000000000000000000000000000000000..f71afc2b7f32dfe2c10ba2c147137782
|
||||
+}
|
||||
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..ed5bbc49da258f8db249b1387f51ed1b22a29053
|
||||
index 0000000000000000000000000000000000000000..f1080f62f22c3580f3e059ab80a766f54e237b0d
|
||||
--- /dev/null
|
||||
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -0,0 +1,3471 @@
|
||||
@@ -17406,7 +17380,7 @@ index 0000000000000000000000000000000000000000..ed5bbc49da258f8db249b1387f51ed1b
|
||||
+import net.minecraft.world.level.block.Block;
|
||||
+import net.minecraft.world.level.block.Blocks;
|
||||
+import net.minecraft.world.level.block.state.properties.Tilt;
|
||||
+import org.apache.commons.lang.BooleanUtils;
|
||||
+import org.apache.commons.lang3.BooleanUtils;
|
||||
+import org.bukkit.ChatColor;
|
||||
+import org.bukkit.World;
|
||||
+import org.bukkit.configuration.ConfigurationSection;
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Pufferfish and Purpur patches
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 91fa7f0bac5681413cd8d66fe1ebf2029713408f..3a970b1f751726e4eec2832e94295c242cc7c997 100644
|
||||
index 5c0e7804555f9b789a96a98008dd1edf0be68104..62b82b753c36b5400e371952e0685115453bd953 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -276,7 +276,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -26,7 +26,7 @@ index 91fa7f0bac5681413cd8d66fe1ebf2029713408f..3a970b1f751726e4eec2832e94295c24
|
||||
public boolean lagging = false; // Purpur - Lagging threshold
|
||||
protected boolean upnp = false; // Purpur - UPnP Port Forwarding
|
||||
|
||||
@@ -1248,9 +1248,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1238,9 +1238,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
tps15.add(currentTps, diff);
|
||||
|
||||
// Backwards compat with bad plugins
|
||||
@@ -42,7 +42,7 @@ index 91fa7f0bac5681413cd8d66fe1ebf2029713408f..3a970b1f751726e4eec2832e94295c24
|
||||
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur - Lagging threshold
|
||||
tickSection = currentTime;
|
||||
}
|
||||
@@ -1278,7 +1281,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1268,7 +1271,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
||||
// Purpur start - Configurable TPS Catchup
|
||||
@@ -65,7 +65,7 @@ index 35fd539eb2bfe60ad17ab1e558a01273666acc54..445bbdc8da7f1fdbddfc4d8787d78fea
|
||||
this.values[this.vp++ & 0xFF] = (int)(l * 100L / Runtime.getRuntime().maxMemory());
|
||||
this.repaint();
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 90d0c59c66c2e18d601838886ff55bb428547779..62586fc315b473761579daa863f89df150fb9576 100644
|
||||
index bc935e51c2c5134813d3476da14a596fc47cec76..4f88a9f4f7a1f5234e1f506e1e3d22a5e1710a98 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1287,7 +1287,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -78,7 +78,7 @@ index 90d0c59c66c2e18d601838886ff55bb428547779..62586fc315b473761579daa863f89df1
|
||||
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
|
||||
return;
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 1539e039d4d5fd539cfc552a4d420ae5a6fb8b56..109ec179bd7e960cb09a98e1ec6179a60b2cba57 100644
|
||||
index 30e341bd5fca8b95d6911ca94f4aac17962f3269..55854dbacef9b3da9f12f67be21dd49007ea3c45 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -522,23 +522,36 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -305,16 +305,3 @@ index bde9370798c037c494a9c73f328cb251e68c21b1..3a6be0122d49b20f78be6cc8f1c7acb5
|
||||
} else if (maxProjectileChunkLoadsConfig.perProjectile.resetMovementAfterReachLimit) {
|
||||
this.setDeltaMovement(0, this.getDeltaMovement().y, 0);
|
||||
}
|
||||
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index ed5bbc49da258f8db249b1387f51ed1b22a29053..98f7fd9a9c9eec89c510c313bd2ac5bed918707e 100644
|
||||
--- a/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -17,7 +17,7 @@ import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.properties.Tilt;
|
||||
-import org.apache.commons.lang.BooleanUtils;
|
||||
+import org.apache.commons.lang3.BooleanUtils; // Leaf - Fix build
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
||||
@@ -7,10 +7,10 @@ Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 3a970b1f751726e4eec2832e94295c242cc7c997..3f8c4d048e813bb4af53a17e0e231927b2694889 100644
|
||||
index 62b82b753c36b5400e371952e0685115453bd953..3190ed2171b0de32aeb8761aa3e510c968c45448 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1847,7 +1847,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1837,7 +1837,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Remove Spigot check for broken BungeeCord configurations
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java b/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
index e9d1c3c8cd637361e732010950e2a60cfc598c7c..b54fd53958d74e3d62740d71fe0803814d529475 100644
|
||||
index 97731d0db450badeced8a9ff475f71000fe98c87..fe942b36f948a359245c507c07152015c7e843af 100644
|
||||
--- a/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerHandshakePacketListenerImpl.java
|
||||
@@ -167,7 +167,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
|
||||
@@ -168,7 +168,7 @@ public class ServerHandshakePacketListenerImpl implements ServerHandshakePacketL
|
||||
if (split.length == 4) {
|
||||
this.connection.spoofedProfile = ServerHandshakePacketListenerImpl.gson.fromJson(split[3], com.mojang.authlib.properties.Property[].class);
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ Original project: https://github.com/Cryptite/Slice
|
||||
Co-authored-by: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 57d301a9528a16c0fcdb9e45ae957629c2363457..fe2710ee9b8a4452ff339a0b15ccf357a7c25336 100644
|
||||
index 5e9c02f66f6606fd2eaa8298eddbdff2889cffed..f3ccabaf4ff9bd0265415193831fd22b1868c00e 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -431,6 +431,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -21,10 +21,10 @@ index 57d301a9528a16c0fcdb9e45ae957629c2363457..fe2710ee9b8a4452ff339a0b15ccf357
|
||||
// Paper start - rewrite chunk system
|
||||
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 800f773ca2cee6310a86d3f8043d57bd078a2dfd..51c1dfe30fddaae0c71b4b809b33c650394b878b 100644
|
||||
index bfcc40c09f80b5405cc414969693c195769bcb98..d7d68dbdd39ff6e61531d2edeafdd923f0573c89 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -797,11 +797,11 @@ public abstract class PlayerList {
|
||||
@@ -798,11 +798,11 @@ public abstract class PlayerList {
|
||||
byte b = (byte)(keepInventory ? 1 : 0);
|
||||
ServerLevel serverLevel = serverPlayer.serverLevel();
|
||||
LevelData levelData = serverLevel.getLevelData();
|
||||
@@ -38,7 +38,7 @@ index 800f773ca2cee6310a86d3f8043d57bd078a2dfd..51c1dfe30fddaae0c71b4b809b33c650
|
||||
serverPlayer.connection.send(new ClientboundSetDefaultSpawnPositionPacket(level.getSharedSpawnPos(), level.getSharedSpawnAngle()));
|
||||
serverPlayer.connection.send(new ClientboundChangeDifficultyPacket(levelData.getDifficulty(), levelData.isDifficultyLocked()));
|
||||
serverPlayer.connection
|
||||
@@ -878,6 +878,8 @@ public abstract class PlayerList {
|
||||
@@ -890,6 +890,8 @@ public abstract class PlayerList {
|
||||
return serverPlayer;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ The "distanceToSqr" call is a bit expensive, so avoiding it is pretty nice, arou
|
||||
We could also check if the x,y,z coordinates are equal, but for now, let's just keep the identity check, which also helps us since Minecraft's code does reuse the original delta movement Vec3 object
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
|
||||
index bcbc25c6dc5a2063b1ad410194a25b0d5ff7c8d8..936429fd17d8649329e6258a4e10c9e6bf62f6de 100644
|
||||
index 0db57c334bef3b6473ae1b734f953e150862eab5..27e8c6a61cfa30b4e5bcc8ac30b0023940d9f310 100644
|
||||
--- a/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -206,6 +206,7 @@ public class ServerEntity {
|
||||
@@ -211,6 +211,7 @@ public class ServerEntity {
|
||||
|
||||
if (this.entity.hasImpulse || this.trackDelta || this.entity instanceof LivingEntity && ((LivingEntity)this.entity).isFallFlying()) {
|
||||
Vec3 deltaMovement = this.entity.getDeltaMovement();
|
||||
@@ -22,7 +22,7 @@ index bcbc25c6dc5a2063b1ad410194a25b0d5ff7c8d8..936429fd17d8649329e6258a4e10c9e6
|
||||
double d = deltaMovement.distanceToSqr(this.lastSentMovement);
|
||||
if (d > 1.0E-7 || d > 0.0 && deltaMovement.lengthSqr() == 0.0) {
|
||||
this.lastSentMovement = deltaMovement;
|
||||
@@ -223,6 +224,7 @@ public class ServerEntity {
|
||||
@@ -228,6 +229,7 @@ public class ServerEntity {
|
||||
this.broadcast.accept(new ClientboundSetEntityMotionPacket(this.entity.getId(), this.lastSentMovement));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ To avoid the hefty ArrayDeque's size() call, we check if we *really* need to exe
|
||||
Most entities won't have any scheduled tasks, so this is a nice performance bonus. These optimizations, however, wouldn't work in a Folia environment, but because in SparklyPaper executeTick is always executed on the main thread, it ain't an issue for us (yay).
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 3f8c4d048e813bb4af53a17e0e231927b2694889..6f150603d9083c7e4b673e127b6d43aa33242f02 100644
|
||||
index 3190ed2171b0de32aeb8761aa3e510c968c45448..b8b1bcac05917fa985210bcd5c6e226ed188b0ff 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -289,6 +289,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -24,7 +24,7 @@ index 3f8c4d048e813bb4af53a17e0e231927b2694889..6f150603d9083c7e4b673e127b6d43aa
|
||||
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||
AtomicReference<S> atomicReference = new AtomicReference<>();
|
||||
@@ -1672,6 +1673,22 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1662,6 +1663,22 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
||||
// Paper start - Folia scheduler API
|
||||
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) org.bukkit.Bukkit.getGlobalRegionScheduler()).tick();
|
||||
@@ -47,7 +47,7 @@ index 3f8c4d048e813bb4af53a17e0e231927b2694889..6f150603d9083c7e4b673e127b6d43aa
|
||||
getAllLevels().forEach(level -> {
|
||||
for (final net.minecraft.world.entity.Entity entity : level.getEntities().getAll()) {
|
||||
if (entity.isRemoved()) {
|
||||
@@ -1683,6 +1700,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1673,6 +1690,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Remove useless creating stats json bases on player name logic
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 51c1dfe30fddaae0c71b4b809b33c650394b878b..82117c8619b184017bb4448bf2e30f817abd368a 100644
|
||||
index d7d68dbdd39ff6e61531d2edeafdd923f0573c89..536fea9622cdec212aa61adbb627704c59a8999f 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1415,6 +1415,8 @@ public abstract class PlayerList {
|
||||
@@ -1426,6 +1426,8 @@ public abstract class PlayerList {
|
||||
if (serverStatsCounter == null) {
|
||||
File file = this.server.getWorldPath(LevelResource.PLAYER_STATS_DIR).toFile();
|
||||
File file1 = new File(file, uuid + ".json");
|
||||
@@ -17,7 +17,7 @@ index 51c1dfe30fddaae0c71b4b809b33c650394b878b..82117c8619b184017bb4448bf2e30f81
|
||||
if (!file1.exists()) {
|
||||
File file2 = new File(file, displayName + ".json"); // CraftBukkit
|
||||
Path path = file2.toPath();
|
||||
@@ -1422,6 +1424,8 @@ public abstract class PlayerList {
|
||||
@@ -1433,6 +1435,8 @@ public abstract class PlayerList {
|
||||
file2.renameTo(file1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,10 +19,10 @@ index bcecf48b43eef377354e32695d4258ea8020f73d..aba02a7e3139030050c3c61aabf7708c
|
||||
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur - Add demo command
|
||||
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur - Add ping command
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 7746550258a1c13c042b946bdfe6c1410dcee4ad..2801bf484ea1d06dd8924b920e5b7e3640d0b528 100644
|
||||
index f3ccabaf4ff9bd0265415193831fd22b1868c00e..6d3b895fcbb3c2fe4438e1e30d87dc2150c7f462 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2387,6 +2387,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2382,6 +2382,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
|
||||
// Purpur start - AFK API
|
||||
private boolean isAfk = false;
|
||||
@@ -33,7 +33,7 @@ index 7746550258a1c13c042b946bdfe6c1410dcee4ad..2801bf484ea1d06dd8924b920e5b7e36
|
||||
|
||||
@Override
|
||||
public void setAfk(boolean afk) {
|
||||
@@ -2424,6 +2428,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2419,6 +2423,18 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
String prefix = (split.length > 0 ? split[0] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListPrefix, "");
|
||||
String suffix = (split.length > 1 ? split[1] : "").replace(org.purpurmc.purpur.PurpurConfig.afkTabListSuffix, "");
|
||||
if (afk) {
|
||||
@@ -53,10 +53,10 @@ index 7746550258a1c13c042b946bdfe6c1410dcee4ad..2801bf484ea1d06dd8924b920e5b7e36
|
||||
} else {
|
||||
getBukkitEntity().setPlayerListName(prefix + scoreboardName + suffix, true);
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 956a19d137243baddcc44927b3ae77697ca0bfdf..41251d29a881d31283cb647a7d74fa402c1b422f 100644
|
||||
index cec88f9bf2ca92dcd97addfbf256cda0bd0b3f6a..76e197dc09f07b5a0156dbc629dfd6818bd03110 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2329,6 +2329,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2322,6 +2322,7 @@ public class ServerGamePacketListenerImpl
|
||||
|
||||
@Override
|
||||
public void handleChatCommand(ServerboundChatCommandPacket packet) {
|
||||
@@ -64,7 +64,7 @@ index 956a19d137243baddcc44927b3ae77697ca0bfdf..41251d29a881d31283cb647a7d74fa40
|
||||
this.tryHandleChat(packet.command(), () -> {
|
||||
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
|
||||
if (this.player.hasDisconnected()) {
|
||||
@@ -2337,7 +2338,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2330,7 +2331,7 @@ public class ServerGamePacketListenerImpl
|
||||
// CraftBukkit end
|
||||
this.performUnsignedChatCommand(packet.command());
|
||||
this.detectRateSpam("/" + packet.command()); // Spigot
|
||||
@@ -73,7 +73,7 @@ index 956a19d137243baddcc44927b3ae77697ca0bfdf..41251d29a881d31283cb647a7d74fa40
|
||||
}
|
||||
|
||||
private void performUnsignedChatCommand(String command) {
|
||||
@@ -2370,6 +2371,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2363,6 +2364,7 @@ public class ServerGamePacketListenerImpl
|
||||
public void handleSignedChatCommand(ServerboundChatCommandSignedPacket packet) {
|
||||
Optional<LastSeenMessages> optional = this.unpackAndApplyLastSeen(packet.lastSeenMessages());
|
||||
if (!optional.isEmpty()) {
|
||||
@@ -81,7 +81,7 @@ index 956a19d137243baddcc44927b3ae77697ca0bfdf..41251d29a881d31283cb647a7d74fa40
|
||||
this.tryHandleChat(packet.command(), () -> {
|
||||
// CraftBukkit start - SPIGOT-7346: Prevent disconnected players from executing commands
|
||||
if (this.player.hasDisconnected()) {
|
||||
@@ -2378,7 +2380,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2371,7 +2373,7 @@ public class ServerGamePacketListenerImpl
|
||||
// CraftBukkit end
|
||||
this.performSignedChatCommand(packet, optional.get());
|
||||
this.detectRateSpam("/" + packet.command()); // Spigot
|
||||
@@ -90,7 +90,7 @@ index 956a19d137243baddcc44927b3ae77697ca0bfdf..41251d29a881d31283cb647a7d74fa40
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2485,12 +2487,17 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2478,12 +2480,17 @@ public class ServerGamePacketListenerImpl
|
||||
return dispatcher.parse(command, this.player.createCommandSourceStack());
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ index 956a19d137243baddcc44927b3ae77697ca0bfdf..41251d29a881d31283cb647a7d74fa40
|
||||
this.player.resetLastActionTime();
|
||||
// CraftBukkit start
|
||||
if (sync) {
|
||||
@@ -2502,6 +2509,40 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -2495,6 +2502,40 @@ public class ServerGamePacketListenerImpl
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,7 +152,7 @@ index 956a19d137243baddcc44927b3ae77697ca0bfdf..41251d29a881d31283cb647a7d74fa40
|
||||
synchronized (this.lastSeenMessages) {
|
||||
Optional var10000;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 82117c8619b184017bb4448bf2e30f817abd368a..bbdb8e00ac0fdcc4f1b94faf8e2cd13597e4e2a0 100644
|
||||
index 536fea9622cdec212aa61adbb627704c59a8999f..37ba75bd50f785da11a0127fb40d86ee8b988c17 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -524,6 +524,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Virtual thread for chat executor
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 6f150603d9083c7e4b673e127b6d43aa33242f02..17d3a8a2cc3c86ed6aae9c20ed9f281dc9715cf5 100644
|
||||
index b8b1bcac05917fa985210bcd5c6e226ed188b0ff..49cd06c0b71c6aa643b692c21ecbc01266291770 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -2670,7 +2670,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2660,7 +2660,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public final java.util.concurrent.ExecutorService chatExecutor = java.util.concurrent.Executors.newCachedThreadPool(
|
||||
|
||||
@@ -91,10 +91,10 @@ index 094d1821d298fc228270b2d6cf0445949434f3e2..21334ae4764740e5cf1382726d5f5231
|
||||
|
||||
public record Favicon(byte[] iconBytes) {
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 8fe1834250f8a708791f76a3f008198c6abf1ef4..82972531ce40dad0bb4b3c2337d04143576020f9 100644
|
||||
index cdfb9004dd4f4ea1bbb77895b7fc020d628c485d..54910c2e1d6e6bb556e536fda060bd09402e04e8 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -625,6 +625,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -616,6 +616,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
|
||||
@Override
|
||||
public boolean enforceSecureProfile() {
|
||||
@@ -103,7 +103,7 @@ index 8fe1834250f8a708791f76a3f008198c6abf1ef4..82972531ce40dad0bb4b3c2337d04143
|
||||
// Paper start - Add setting for proxy online mode status
|
||||
return properties.enforceSecureProfile
|
||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index ea7710c17bfc9fcfe736c3a2e83898b7ad6a7869..29adf7f0881cb4b73610ca526e6cccfe10458cd4 100644
|
||||
index d2e8adccf33c6b842fac615006b782b09cfa7a1a..434be9d08d8e816e2dea1e9d23fa26d21b9f35f6 100644
|
||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -315,10 +315,30 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -138,10 +138,10 @@ index ea7710c17bfc9fcfe736c3a2e83898b7ad6a7869..29adf7f0881cb4b73610ca526e6cccfe
|
||||
if (packet == null || this.processedDisconnect) { // Spigot
|
||||
return;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index bbdb8e00ac0fdcc4f1b94faf8e2cd13597e4e2a0..c18921f4ec1d4c205fa1d6efbb60eb05dcec4908 100644
|
||||
index 37ba75bd50f785da11a0127fb40d86ee8b988c17..a3fdc328399c5d4806c6f361ba83515cf2094336 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1375,7 +1375,7 @@ public abstract class PlayerList {
|
||||
@@ -1386,7 +1386,7 @@ public abstract class PlayerList {
|
||||
public void broadcastChatMessage(PlayerChatMessage message, Predicate<ServerPlayer> shouldFilterMessageTo, @Nullable ServerPlayer sender, ChatType.Bound boundChatType, @Nullable Function<net.kyori.adventure.audience.Audience, Component> unsignedFunction) {
|
||||
// Paper end
|
||||
boolean flag = this.verifyChatTrusted(message);
|
||||
@@ -150,7 +150,7 @@ index bbdb8e00ac0fdcc4f1b94faf8e2cd13597e4e2a0..c18921f4ec1d4c205fa1d6efbb60eb05
|
||||
OutgoingChatMessage outgoingChatMessage = OutgoingChatMessage.create(message);
|
||||
boolean flag1 = false;
|
||||
|
||||
@@ -1400,6 +1400,7 @@ public abstract class PlayerList {
|
||||
@@ -1411,6 +1411,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public boolean verifyChatTrusted(PlayerChatMessage message) {
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable connection message
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index c18921f4ec1d4c205fa1d6efbb60eb05dcec4908..2d626735c75caa3ff6d5435882c4303aa204bd1e 100644
|
||||
index a3fdc328399c5d4806c6f361ba83515cf2094336..9f2dcbbd82c5f077f058b64a61cc31d76b34b471 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -336,7 +336,7 @@ public abstract class PlayerList {
|
||||
@@ -35,7 +35,7 @@ index c18921f4ec1d4c205fa1d6efbb60eb05dcec4908..2d626735c75caa3ff6d5435882c4303a
|
||||
this.cserver.getPluginManager().callEvent(playerQuitEvent);
|
||||
player.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
|
||||
|
||||
@@ -1527,4 +1527,40 @@ public abstract class PlayerList {
|
||||
@@ -1538,4 +1538,40 @@ public abstract class PlayerList {
|
||||
public boolean isAllowCommandsForAllPlayers() {
|
||||
return this.allowCommandsForAllPlayers;
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Remove stream in entity mountedOrDismounted changes update
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
|
||||
index 936429fd17d8649329e6258a4e10c9e6bf62f6de..28c90d0a70048f6992a96aeb25ebafef579e8003 100644
|
||||
index 27e8c6a61cfa30b4e5bcc8ac30b0023940d9f310..dca939778d637ee293dc14f55edde7b1a97a2617 100644
|
||||
--- a/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -118,7 +118,19 @@ public class ServerEntity {
|
||||
@@ -27,5 +27,5 @@ index 936429fd17d8649329e6258a4e10c9e6bf62f6de..28c90d0a70048f6992a96aeb25ebafef
|
||||
+ }
|
||||
+ // Leaf end - Remove stream in entity mountedOrDismounted changes update
|
||||
this.broadcastWithIgnore.accept(new ClientboundSetPassengersPacket(this.entity), list);
|
||||
this.lastPassengers = passengers;
|
||||
}
|
||||
// Paper start - Allow riding players
|
||||
if (this.entity instanceof ServerPlayer player) {
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix MC-119417
|
||||
Related MC issue: https://bugs.mojang.com/browse/MC/issues/MC-119417
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 2801bf484ea1d06dd8924b920e5b7e3640d0b528..4c53ca9b3f7b49d5edd0ba87fa8f308b5c992492 100644
|
||||
index 6d3b895fcbb3c2fe4438e1e30d87dc2150c7f462..87651c9286fa61a7eeed95d0679230ee77616c9e 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2191,6 +2191,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -2186,6 +2186,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, gameMode.getId()));
|
||||
if (gameMode == GameType.SPECTATOR) {
|
||||
this.removeEntitiesOnShoulder();
|
||||
|
||||
@@ -9,10 +9,10 @@ Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
|
||||
index 28c90d0a70048f6992a96aeb25ebafef579e8003..209a2b6a30d334fc4f6d0b1c02682db7f0b5e435 100644
|
||||
index dca939778d637ee293dc14f55edde7b1a97a2617..44d87997e1ce9b846ebed541634a4478334c920c 100644
|
||||
--- a/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -216,6 +216,8 @@ public class ServerEntity {
|
||||
@@ -221,6 +221,8 @@ public class ServerEntity {
|
||||
}
|
||||
// Gale end - Airplane - better checking for useless move packets
|
||||
|
||||
@@ -21,7 +21,7 @@ index 28c90d0a70048f6992a96aeb25ebafef579e8003..209a2b6a30d334fc4f6d0b1c02682db7
|
||||
if (this.entity.hasImpulse || this.trackDelta || this.entity instanceof LivingEntity && ((LivingEntity)this.entity).isFallFlying()) {
|
||||
Vec3 deltaMovement = this.entity.getDeltaMovement();
|
||||
if (deltaMovement != this.lastSentMovement) { // SparklyPaper start - skip distanceToSqr call in ServerEntity#sendChanges if the delta movement hasn't changed
|
||||
@@ -299,6 +301,21 @@ public class ServerEntity {
|
||||
@@ -304,6 +306,21 @@ public class ServerEntity {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -177,10 +177,10 @@ index f106373ef3ac4a8685c2939c9e8361688a285913..51ae390c68e7a3aa193329cc3bc47ca6
|
||||
public boolean visible = true;
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerEntity.java b/net/minecraft/server/level/ServerEntity.java
|
||||
index 209a2b6a30d334fc4f6d0b1c02682db7f0b5e435..1489ecc2754901c6f30ec1b5ff0f324b2c2f0a48 100644
|
||||
index 44d87997e1ce9b846ebed541634a4478334c920c..6b421f84e2d4e286ad4b7624670c90a76e86c8fe 100644
|
||||
--- a/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -455,12 +455,15 @@ public class ServerEntity {
|
||||
@@ -460,12 +460,15 @@ public class ServerEntity {
|
||||
if (this.entity instanceof LivingEntity) {
|
||||
Set<AttributeInstance> attributesToSync = ((LivingEntity)this.entity).getAttributes().getAttributesToSync();
|
||||
if (!attributesToSync.isEmpty()) {
|
||||
@@ -221,7 +221,7 @@ index 5943b18f172fb1d77ef1fe768daa8e8f43c3c8c1..7b85a9ebdbe3e8bee0a8fc100ede8a3f
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 27ca0be25253b35ebfe54b725f9ba28a120f4ea0..94dd2887398cbebb60200e9a5c61c01b2fda0a7f 100644
|
||||
index c34cf83f79314198b0f7a747e4ae68b88d09d2cd..c8590517efe4124c2b1db2b927d131b804736400 100644
|
||||
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -1876,7 +1876,7 @@ public class ServerGamePacketListenerImpl
|
||||
@@ -274,7 +274,7 @@ index 701025715e0aca3c1f920a66f9b3d03ec08eaf02..2b8b335cf5779d1b6eb639935d1b92d8
|
||||
private final java.util.function.Function<Holder<Attribute>, AttributeInstance> createInstance; // Gale - Airplane - reduce entity allocations
|
||||
private final net.minecraft.world.entity.LivingEntity entity; // Purpur - Ridables
|
||||
diff --git a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||
index 3ae69b17fec1cdb2bee2b5a795026a875f197c30..df471cd42f4084facb895b229c261b685054c3ae 100644
|
||||
index 7bbeed6c998c91e68376d3f17a510d68e3cd0b27..d62ff9ebd4b55e1a9a0b51e84be868d844e5a954 100644
|
||||
--- a/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||
+++ b/net/minecraft/world/level/saveddata/maps/MapItemSavedData.java
|
||||
@@ -211,6 +211,7 @@ public class MapItemSavedData extends SavedData {
|
||||
|
||||
@@ -8,7 +8,7 @@ avoids multiple casting in Entity#distanceTo, using Math#sqrt directly instead o
|
||||
these methods more able to be inlined by the JIT compiler.
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 753515c65a2b49db15ef6616cc7caf276fdbbeb1..a2e9306d9a5eef738f8225e98fb1cc1f4bbca504 100644
|
||||
index 689d5d215ab372b482ad715fc86df257ba04ed53..0fc0a69d377060aab39f179240c25031bebb2d97 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -2186,31 +2186,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -43,7 +43,7 @@ index 753515c65a2b49db15ef6616cc7caf276fdbbeb1..a2e9306d9a5eef738f8225e98fb1cc1f
|
||||
public void playerTouch(Player player) {
|
||||
}
|
||||
|
||||
@@ -5248,4 +5223,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5249,4 +5224,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return false;
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -7,10 +7,10 @@ Original license: AGPL-3.0
|
||||
Original project: https://github.com/snackbag/TT20
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 354823def23167feb1e7b35cd9db5ef1584e7e8c..ae1cff1416cd57977d755056307252118e6ae821 100644
|
||||
index d2e7ca050c236b17206738e5e5f8d4936afedd45..508f3c7c1e806576f1faea7975ac9bbe73b1024b 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1554,6 +1554,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1544,6 +1544,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
this.server.spark.tickStart(); // Paper - spark
|
||||
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
|
||||
|
||||
@@ -9,10 +9,10 @@ happen but the visual "refresh" of a world change is hidden. Depending on the de
|
||||
this can act as a "smooth teleport" to a world if the new world is very similar looking to the old one.
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 4c53ca9b3f7b49d5edd0ba87fa8f308b5c992492..410faf366a50f6fb2093bcfd10aa9851c2bbd273 100644
|
||||
index 87651c9286fa61a7eeed95d0679230ee77616c9e..a909056b922ad29607a5f85b6affa4fb5aa82d67 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1419,6 +1419,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1414,6 +1414,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
LevelData worlddata = level.getLevelData();
|
||||
|
||||
this.connection.send(new ClientboundRespawnPacket(this.createCommonSpawnInfo(level), (byte) 3));
|
||||
@@ -20,7 +20,7 @@ index 4c53ca9b3f7b49d5edd0ba87fa8f308b5c992492..410faf366a50f6fb2093bcfd10aa9851
|
||||
this.connection.send(new ClientboundChangeDifficultyPacket(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
|
||||
PlayerList playerList = this.server.getPlayerList();
|
||||
|
||||
@@ -1428,7 +1429,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1423,7 +1424,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
// CraftBukkit end
|
||||
this.portalPos = org.bukkit.craftbukkit.util.CraftLocation.toBlockPosition(exit); // Purpur - Fix stuck in portals
|
||||
this.setServerLevel(level);
|
||||
@@ -30,10 +30,10 @@ index 4c53ca9b3f7b49d5edd0ba87fa8f308b5c992492..410faf366a50f6fb2093bcfd10aa9851
|
||||
level.addDuringTeleport(this);
|
||||
this.triggerDimensionChangeTriggers(serverLevel);
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 7f12288fc361f780171026beb52c07b20ae17324..214fcd61a62b2e3fa2aa61c06f95f2cb29e23c81 100644
|
||||
index 8e2161a2ff45b8f29fa4744b0cdd429d0f9a6c41..07dafa0e12fd51e4b9e968e22b20f000d04f6dbc 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -805,11 +805,11 @@ public abstract class PlayerList {
|
||||
@@ -806,11 +806,11 @@ public abstract class PlayerList {
|
||||
byte b = (byte)(keepInventory ? 1 : 0);
|
||||
ServerLevel serverLevel = serverPlayer.serverLevel();
|
||||
LevelData levelData = serverLevel.getLevelData();
|
||||
|
||||
@@ -287,7 +287,7 @@ index 49500127eb3a471c41dc3ff32372ad6f20c6d69a..a5a6e4cd74a5444ce06828404036de17
|
||||
|
||||
return;
|
||||
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
|
||||
index d2d9619f8156985ba38c0ef8c0f155adc8d40f34..9224613bb6a0653407f220f44d839cdeb4e4f7ea 100644
|
||||
index 07f1b27116baf2a06e6cd4eeaa8639e166fb362d..d1c8b4a2a32d49d90f2f2aa460915d319a781535 100644
|
||||
--- a/net/minecraft/world/item/ItemStack.java
|
||||
+++ b/net/minecraft/world/item/ItemStack.java
|
||||
@@ -97,7 +97,7 @@ import net.minecraft.world.level.block.state.pattern.BlockInWorld;
|
||||
@@ -311,7 +311,7 @@ index d2d9619f8156985ba38c0ef8c0f155adc8d40f34..9224613bb6a0653407f220f44d839cde
|
||||
|
||||
public static DataResult<ItemStack> validateStrict(ItemStack stack) {
|
||||
DataResult<Unit> dataResult = validateComponents(stack.getComponents());
|
||||
@@ -1403,6 +1408,21 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -1402,6 +1407,21 @@ public final class ItemStack implements DataComponentHolder {
|
||||
}
|
||||
|
||||
public void setCount(int count) {
|
||||
@@ -333,7 +333,7 @@ index d2d9619f8156985ba38c0ef8c0f155adc8d40f34..9224613bb6a0653407f220f44d839cde
|
||||
this.count = count;
|
||||
}
|
||||
|
||||
@@ -1458,4 +1478,87 @@ public final class ItemStack implements DataComponentHolder {
|
||||
@@ -1457,4 +1477,87 @@ public final class ItemStack implements DataComponentHolder {
|
||||
public boolean canDestroyBlock(BlockState state, Level level, BlockPos pos, Player player) {
|
||||
return this.getItem().canDestroyBlock(this, state, level, pos, player);
|
||||
}
|
||||
|
||||
@@ -38,10 +38,10 @@ index c8c99323b6397c3e595e7a9007e5d801ee2ac14a..7ca4fd418599cdb1bb1de44f4c3c57f1
|
||||
.forEach(
|
||||
entity -> {
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 410faf366a50f6fb2093bcfd10aa9851c2bbd273..08e6b0b52802327215bec7989a2c4245cec6f1da 100644
|
||||
index a909056b922ad29607a5f85b6affa4fb5aa82d67..ff4ca34dca8e0061977ea63707eb34c6e06dd66a 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1519,6 +1519,13 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -1514,6 +1514,13 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
this.containerMenu.broadcastChanges();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,10 +11,10 @@ As part of: Airplane (https://github.com/TECHNOVE/Airplane)
|
||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index cb17aaad72940ac94317a50cbe85b22c00e02a10..3a8b9157fb8607980a9b859945f509ad8b9b6fdc 100644
|
||||
index 74b05983ae3e24f489ca9b0058c5d5c6dcd8cafb..658b8af9b1db252d5664956907a5c0db538018b0 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -4562,10 +4562,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4563,10 +4563,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
// Paper start - optimise collisions
|
||||
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
||||
@@ -26,7 +26,7 @@ index cb17aaad72940ac94317a50cbe85b22c00e02a10..3a8b9157fb8607980a9b859945f509ad
|
||||
final AABB boundingBox = this.getBoundingBox().deflate(1.0E-3);
|
||||
|
||||
final Level world = this.level;
|
||||
@@ -4601,7 +4598,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4602,7 +4599,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
||||
for (int currChunkX = minChunkX; currChunkX <= maxChunkX; ++currChunkX) {
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Paper Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: f8450874da4e2d29863b544b70cc7b962a04aa70
|
||||
Commit: 8c77678e81c813e57dda10c646599b0ab3144218
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "Rebrand.patch"
|
||||
|
||||
2
todos.md
2
todos.md
@@ -4,8 +4,6 @@
|
||||
# Leaf TODOs
|
||||
- [ ] refactor leaves protocol manager opt and pr it.
|
||||
- [ ] Transfer patch notes to file for Gale and Leaf
|
||||
- [ ] Add spigot config unknown message to leaf docs
|
||||
- [ ] Add purpur config changes to docs moved config
|
||||
- [ ] check Dont send useless entity packets
|
||||
- [ ] Use different state to separate different configs reload
|
||||
|
||||
|
||||
Reference in New Issue
Block a user