mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@fa0dd15d add missed nullability annotations PaperMC/Paper@b6d70a9c Generators PaperMC/Paper@b92137c1 load the PDC for new block entities PaperMC/Paper@06a26ec2 update legacy test PaperMC/Paper@c4f0b2b0 update more test PaperMC/Paper@77382fcb fix unbreakable shields PaperMC/Paper@9e08de6e Re-add old SmithingTrimRecipe constructors PaperMC/Paper@d2afd149 Bump some more numbers to 1.21.5 PaperMC/Paper@cf1455e5 Ignore private methods in MaterialReroutingTest PaperMC/Paper@ce91a8ca Move out unapplied feature patches
This commit is contained in:
@@ -2,7 +2,7 @@ group = org.purpurmc.purpur
|
|||||||
version = 1.21.5-R0.1-SNAPSHOT
|
version = 1.21.5-R0.1-SNAPSHOT
|
||||||
|
|
||||||
mcVersion = 1.21.5
|
mcVersion = 1.21.5
|
||||||
paperCommit = 95beb8c0bc785cf6bdd8ce9de097666cb572deb9
|
paperCommit = ce91a8ca123f4e853629d08705e4ece3a09a5a4d
|
||||||
|
|
||||||
org.gradle.configuration-cache = true
|
org.gradle.configuration-cache = true
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
|
|||||||
@@ -4,15 +4,15 @@
|
|||||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||||
}
|
}
|
||||||
|
|
||||||
-val generatedApiPath: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath()
|
-val generatedDir: java.nio.file.Path = layout.projectDirectory.dir("src/generated/java").asFile.toPath()
|
||||||
+val generatedApiPath: java.nio.file.Path = rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.toPath()
|
+val generatedDir: java.nio.file.Path = rootProject.layout.projectDirectory.dir("paper-api/src/generated/java").asFile.toPath()
|
||||||
idea {
|
idea {
|
||||||
module {
|
module {
|
||||||
generatedSourceDirs.add(generatedApiPath.toFile())
|
generatedSourceDirs.add(generatedDir.toFile())
|
||||||
@@ -103,6 +_,18 @@
|
@@ -103,6 +_,18 @@
|
||||||
main {
|
main {
|
||||||
java {
|
java {
|
||||||
srcDir(generatedApiPath)
|
srcDir(generatedDir)
|
||||||
+ srcDir(file("../paper-api/src/main/java"))
|
+ srcDir(file("../paper-api/src/main/java"))
|
||||||
+ }
|
+ }
|
||||||
+ resources {
|
+ resources {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/Material.java
|
--- a/src/main/java/org/bukkit/Material.java
|
||||||
+++ b/src/main/java/org/bukkit/Material.java
|
+++ b/src/main/java/org/bukkit/Material.java
|
||||||
@@ -5812,4 +_,40 @@
|
@@ -3632,4 +_,40 @@
|
||||||
return this.asItemType().getDefaultDataTypes();
|
return this.asItemType().getDefaultDataTypes();
|
||||||
}
|
}
|
||||||
// Paper end - data component API
|
// Paper end - data component API
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
--- a/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
||||||
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentTarget.java
|
||||||
@@ -227,6 +_,30 @@
|
@@ -230,6 +_,30 @@
|
||||||
public boolean includes(@NotNull Material item) {
|
public boolean includes(@NotNull Material item) {
|
||||||
return BREAKABLE.includes(item) || (WEARABLE.includes(item) && !item.equals(Material.ELYTRA)) || item.equals(Material.COMPASS);
|
return BREAKABLE.includes(item) || (WEARABLE.includes(item) && !item.equals(Material.ELYTRA)) || item.equals(Material.COMPASS);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/entity/Villager.java
|
--- a/src/main/java/org/bukkit/entity/Villager.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Villager.java
|
+++ b/src/main/java/org/bukkit/entity/Villager.java
|
||||||
@@ -365,4 +_,13 @@
|
@@ -391,4 +_,13 @@
|
||||||
* reputation regardless of its impact and the player associated.
|
* reputation regardless of its impact and the player associated.
|
||||||
*/
|
*/
|
||||||
public void clearReputations();
|
public void clearReputations();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/entity/Wolf.java
|
--- a/src/main/java/org/bukkit/entity/Wolf.java
|
||||||
+++ b/src/main/java/org/bukkit/entity/Wolf.java
|
+++ b/src/main/java/org/bukkit/entity/Wolf.java
|
||||||
@@ -138,4 +_,20 @@
|
@@ -164,4 +_,20 @@
|
||||||
return RegistryAccess.registryAccess().getRegistry(RegistryKey.WOLF_SOUND_VARIANT).getOrThrow(NamespacedKey.minecraft(key));
|
return RegistryAccess.registryAccess().getRegistry(RegistryKey.WOLF_SOUND_VARIANT).getOrThrow(NamespacedKey.minecraft(key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
--- a/paper-server/build.gradle.kts
|
--- a/paper-server/build.gradle.kts
|
||||||
+++ b/paper-server/build.gradle.kts
|
+++ b/paper-server/build.gradle.kts
|
||||||
@@ -24,6 +_,16 @@
|
@@ -28,6 +_,18 @@
|
||||||
// oldPaperCommit = "f4f275519f7c1fbe9db173b7144a4fe81440e365"
|
// oldPaperCommit = "f4f275519f7c1fbe9db173b7144a4fe81440e365"
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
+ // Purpur start - Rebrand
|
||||||
+ val purpur = forks.register("purpur") {
|
+ val purpur = forks.register("purpur") {
|
||||||
+ upstream.patchDir("paperServer") {
|
+ upstream.patchDir("paperServer") {
|
||||||
+ upstreamPath = "paper-server"
|
+ upstreamPath = "paper-server"
|
||||||
@@ -13,16 +14,17 @@
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ activeFork = purpur
|
+ activeFork = purpur
|
||||||
|
+ // Purpur end - Rebrand
|
||||||
+
|
+
|
||||||
spigot {
|
spigot {
|
||||||
buildDataRef = "702e1a0a5072b2c4082371d5228cb30525687efc"
|
buildDataRef = "702e1a0a5072b2c4082371d5228cb30525687efc"
|
||||||
packageVersion = "v1_21_R3" // also needs to be updated in MappingEnvironment
|
packageVersion = "v1_21_R4" // also needs to be updated in MappingEnvironment
|
||||||
@@ -104,7 +_,21 @@
|
@@ -108,7 +_,21 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
-val log4jPlugins = sourceSets.create("log4jPlugins")
|
-val log4jPlugins = sourceSets.create("log4jPlugins")
|
||||||
+
|
+// Purpur start - Rebrand
|
||||||
+sourceSets {
|
+sourceSets {
|
||||||
+ main {
|
+ main {
|
||||||
+ java { srcDir("../paper-server/src/main/java") }
|
+ java { srcDir("../paper-server/src/main/java") }
|
||||||
@@ -33,23 +35,23 @@
|
|||||||
+ resources { srcDir("../paper-server/src/test/resources") }
|
+ resources { srcDir("../paper-server/src/test/resources") }
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
|
||||||
+val log4jPlugins = sourceSets.create("log4jPlugins") {
|
+val log4jPlugins = sourceSets.create("log4jPlugins") {
|
||||||
+ java { srcDir("../paper-server/src/log4jPlugins/java") }
|
+ java { srcDir("../paper-server/src/log4jPlugins/java") }
|
||||||
+}
|
+}
|
||||||
|
+// Purpur end - Rebrand
|
||||||
configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
configurations.named(log4jPlugins.compileClasspathConfigurationName) {
|
||||||
extendsFrom(configurations.compileClasspath.get())
|
extendsFrom(configurations.compileClasspath.get())
|
||||||
}
|
}
|
||||||
@@ -122,7 +_,7 @@
|
@@ -130,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
- implementation(project(":paper-api"))
|
- implementation(project(":paper-api"))
|
||||||
+ implementation(project(":purpur-api"))
|
+ implementation(project(":purpur-api")) // Purpur
|
||||||
implementation("ca.spottedleaf:concurrentutil:0.0.3")
|
implementation("ca.spottedleaf:concurrentutil:0.0.3")
|
||||||
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
|
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
|
||||||
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
|
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
|
||||||
@@ -153,6 +_,10 @@
|
@@ -162,6 +_,10 @@
|
||||||
runtimeOnly("com.mysql:mysql-connector-j:9.1.0")
|
runtimeOnly("com.mysql:mysql-connector-j:9.1.0")
|
||||||
runtimeOnly("com.lmax:disruptor:3.4.4")
|
runtimeOnly("com.lmax:disruptor:3.4.4")
|
||||||
|
|
||||||
@@ -60,23 +62,23 @@
|
|||||||
runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6")
|
runtimeOnly("org.apache.maven:maven-resolver-provider:3.9.6")
|
||||||
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
||||||
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
|
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
|
||||||
@@ -192,14 +_,14 @@
|
@@ -201,14 +_,14 @@
|
||||||
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
|
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
|
||||||
attributes(
|
attributes(
|
||||||
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
||||||
- "Implementation-Title" to "Paper",
|
- "Implementation-Title" to "Paper",
|
||||||
+ "Implementation-Title" to "Purpur",
|
+ "Implementation-Title" to "Purpur", // Purpur
|
||||||
"Implementation-Version" to implementationVersion,
|
"Implementation-Version" to implementationVersion,
|
||||||
"Implementation-Vendor" to date,
|
"Implementation-Vendor" to date,
|
||||||
- "Specification-Title" to "Paper",
|
- "Specification-Title" to "Paper",
|
||||||
+ "Specification-Title" to "Purpur",
|
+ "Specification-Title" to "Purpur", // Purpur
|
||||||
"Specification-Version" to project.version,
|
"Specification-Version" to project.version,
|
||||||
- "Specification-Vendor" to "Paper Team",
|
- "Specification-Vendor" to "Paper Team",
|
||||||
- "Brand-Id" to "papermc:paper",
|
- "Brand-Id" to "papermc:paper",
|
||||||
- "Brand-Name" to "Paper",
|
- "Brand-Name" to "Paper",
|
||||||
+ "Specification-Vendor" to "Purpur Team",
|
+ "Specification-Vendor" to "Purpur Team", // Purpur
|
||||||
+ "Brand-Id" to "purpurmc:purpur",
|
+ "Brand-Id" to "purpurmc:purpur", // Purpur
|
||||||
+ "Brand-Name" to "Purpur",
|
+ "Brand-Name" to "Purpur", // Purpur
|
||||||
"Build-Number" to (build ?: ""),
|
"Build-Number" to (build ?: ""),
|
||||||
"Build-Time" to buildTime.toString(),
|
"Build-Time" to buildTime.toString(),
|
||||||
"Git-Branch" to gitBranch,
|
"Git-Branch" to gitBranch,
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ index f34bc75f324454bf48f0ebf79111706bb027a54b..6ad266592c16bdeccfb689fb2ef2ee37
|
|||||||
/* Drop global time updates
|
/* Drop global time updates
|
||||||
if (this.tickCount % 20 == 0) {
|
if (this.tickCount % 20 == 0) {
|
||||||
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
|
||||||
index fae2e1af2ea59b82b552bfc33c853e0e33ec90bc..f681d0766a3fec9e05396fe82111e9e99f751823 100644
|
index 0e7405a480bffa81493ef2f2078c36ccda542cde..bc5c30430e79e2feb69c165d9e3e9b6a899b66ea 100644
|
||||||
--- a/net/minecraft/server/level/ServerLevel.java
|
--- a/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/net/minecraft/server/level/ServerLevel.java
|
+++ b/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -212,6 +212,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -212,6 +212,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
@@ -75,10 +75,10 @@ index 63e01ec7e4ab04bb7d389bff485dfedca344bfa2..84b1570d0d88f57f33ff8179f0a78d37
|
|||||||
if ((target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && origItem != null && origItem == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().isEmpty() || !ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().is(origItem))) {
|
if ((target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && origItem != null && origItem == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().isEmpty() || !ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().is(origItem))) {
|
||||||
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
|
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index 7b48f633223cc5e760c5c80d40424e04d791c43a..fc8fbfa5709895456f5aa0c480acedb8707b2ff5 100644
|
index d1899b2411e90b4641dcbc58760e4a19b62846c5..1335a04edd053c06e290c070e3c03d02598d97e7 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -2855,6 +2855,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -2856,6 +2856,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
this.passengers = ImmutableList.copyOf(list);
|
this.passengers = ImmutableList.copyOf(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ index 7b48f633223cc5e760c5c80d40424e04d791c43a..fc8fbfa5709895456f5aa0c480acedb8
|
|||||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2896,6 +2903,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -2897,6 +2904,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -107,7 +107,7 @@ index 7b48f633223cc5e760c5c80d40424e04d791c43a..fc8fbfa5709895456f5aa0c480acedb8
|
|||||||
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
||||||
this.passengers = ImmutableList.of();
|
this.passengers = ImmutableList.of();
|
||||||
} else {
|
} else {
|
||||||
@@ -4822,4 +4837,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -4823,4 +4838,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
|
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
|
||||||
}
|
}
|
||||||
// Paper end - Expose entity id counter
|
// Paper end - Expose entity id counter
|
||||||
@@ -177,7 +177,7 @@ index bda521cca91f070139f5e9bdef6a50e1497f53ff..351f92e1627f465a9a292d4a5e5c256a
|
|||||||
protected ParticleOptions getInkParticle() {
|
protected ParticleOptions getInkParticle() {
|
||||||
return ParticleTypes.GLOW_SQUID_INK;
|
return ParticleTypes.GLOW_SQUID_INK;
|
||||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 4d65d88c59a8536d27ec61c65373ab21fa534b3b..e5f296bf3671afd82ab76493646938783b53eef6 100644
|
index a077e2f518be39bbdba4919ed7161bb28547e56b..a4a19d962bc4665e9368b97cae4b2534da33de91 100644
|
||||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -226,9 +226,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -226,9 +226,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
@@ -210,7 +210,7 @@ index 4d65d88c59a8536d27ec61c65373ab21fa534b3b..e5f296bf3671afd82ab7649364693878
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkFallDamage(double y, boolean onGround, BlockState state, BlockPos pos) {
|
protected void checkFallDamage(double y, boolean onGround, BlockState state, BlockPos pos) {
|
||||||
@@ -3578,8 +3579,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3577,8 +3578,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
this.pushEntities();
|
this.pushEntities();
|
||||||
profilerFiller.pop();
|
profilerFiller.pop();
|
||||||
// Paper start - Add EntityMoveEvent
|
// Paper start - Add EntityMoveEvent
|
||||||
@@ -223,7 +223,7 @@ index 4d65d88c59a8536d27ec61c65373ab21fa534b3b..e5f296bf3671afd82ab7649364693878
|
|||||||
Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
|
Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
|
||||||
Location to = new Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
|
Location to = new Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
|
||||||
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
|
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
|
||||||
@@ -3589,6 +3592,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3588,6 +3591,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
this.absSnapTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
this.absSnapTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||||
index af03e75f445bff6dfe56f89fb422b5662a21c962..3ec3e89b0b53ebde5e1eaa49e28b6bacfe781085 100644
|
index df244fa0eb463aa80da39c930eb16c85481e014a..bdae20191d2e5765761442eb06924968e710b189 100644
|
||||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -3644,7 +3644,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3643,7 +3643,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
.filter(equipmentSlot1 -> canGlideUsing(this.getItemBySlot(equipmentSlot1), equipmentSlot1))
|
.filter(equipmentSlot1 -> canGlideUsing(this.getItemBySlot(equipmentSlot1), equipmentSlot1))
|
||||||
.toList();
|
.toList();
|
||||||
EquipmentSlot equipmentSlot = Util.getRandom(list, this.random);
|
EquipmentSlot equipmentSlot = Util.getRandom(list, this.random);
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 3ec3e89b0b53ebde5e1eaa49e28b6bacfe781085..36636e35cfb3751d448ee330b51e5ab7c44c6014 100644
|
index bdae20191d2e5765761442eb06924968e710b189..476b570ffe9d2df173bd57b57fe65372cb35fa1d 100644
|
||||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -1905,7 +1905,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -1904,7 +1904,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
if (this.level() instanceof ServerLevel serverLevel) {
|
if (this.level() instanceof ServerLevel serverLevel) {
|
||||||
boolean var6 = false;
|
boolean var6 = false;
|
||||||
if (this.dead && entitySource instanceof WitherBoss) { // Paper
|
if (this.dead && entitySource instanceof WitherBoss) { // Paper
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight
|
|||||||
Co-authored by: Encode42 <me@encode42.dev>
|
Co-authored by: Encode42 <me@encode42.dev>
|
||||||
|
|
||||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||||
index d4e989889ed21e3900062eed142f26a9bdaaa8d9..66c4047a35be22803b38a9249b74ae32dcb98748 100644
|
index 1335a04edd053c06e290c070e3c03d02598d97e7..7148e8c6deeb1e5f99eb6d2fe6c0fc9583e44934 100644
|
||||||
--- a/net/minecraft/world/entity/Entity.java
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/net/minecraft/world/entity/Entity.java
|
+++ b/net/minecraft/world/entity/Entity.java
|
||||||
@@ -414,6 +414,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
@@ -415,6 +415,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||||
}
|
}
|
||||||
// Purpur end - Add canSaveToDisk to Entity
|
// Purpur end - Add canSaveToDisk to Entity
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ index d4e989889ed21e3900062eed142f26a9bdaaa8d9..66c4047a35be22803b38a9249b74ae32
|
|||||||
this.type = entityType;
|
this.type = entityType;
|
||||||
this.level = level;
|
this.level = level;
|
||||||
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 2a7434872472b950fe09bfe8f5f334d9964b51d6..a92ef9269b59305334ed1a8f1b253493e2223306 100644
|
index 476b570ffe9d2df173bd57b57fe65372cb35fa1d..4586d7afb4f0a27c7d61abb80af24205d46cb83f 100644
|
||||||
--- a/net/minecraft/world/entity/LivingEntity.java
|
--- a/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/net/minecraft/world/entity/LivingEntity.java
|
+++ b/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -273,6 +273,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -273,6 +273,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
@@ -62,7 +62,7 @@ index 2a7434872472b950fe09bfe8f5f334d9964b51d6..a92ef9269b59305334ed1a8f1b253493
|
|||||||
this.lastHurtByPlayer = EntityReference.read(compound, "last_hurt_by_player");
|
this.lastHurtByPlayer = EntityReference.read(compound, "last_hurt_by_player");
|
||||||
this.lastHurtByPlayerMemoryTime = compound.getIntOr("last_hurt_by_player_memory_time", 0);
|
this.lastHurtByPlayerMemoryTime = compound.getIntOr("last_hurt_by_player_memory_time", 0);
|
||||||
this.lastHurtByMob = EntityReference.read(compound, "last_hurt_by_mob");
|
this.lastHurtByMob = EntityReference.read(compound, "last_hurt_by_mob");
|
||||||
@@ -3615,6 +3618,32 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3614,6 +3617,32 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
|
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
|
||||||
this.hurtServer(serverLevel, this.damageSources().drown(), 1.0F);
|
this.hurtServer(serverLevel, this.damageSources().drown(), 1.0F);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
--- a/net/minecraft/core/BlockPos.java
|
--- a/net/minecraft/core/BlockPos.java
|
||||||
+++ b/net/minecraft/core/BlockPos.java
|
+++ b/net/minecraft/core/BlockPos.java
|
||||||
@@ -61,6 +_,12 @@
|
@@ -63,6 +_,12 @@
|
||||||
private static final int X_OFFSET = PACKED_Y_LENGTH + PACKED_HORIZONTAL_LENGTH;
|
public static final int MAX_HORIZONTAL_COORDINATE = 33554431;
|
||||||
public static final int MAX_HORIZONTAL_COORDINATE = (1 << PACKED_HORIZONTAL_LENGTH) / 2 - 1;
|
// Paper end - Optimize Bit Operations by inlining
|
||||||
|
|
||||||
+ // Purpur start - Ridables
|
+ // Purpur start - Ridables
|
||||||
+ public BlockPos(net.minecraft.world.entity.Entity entity) {
|
+ public BlockPos(net.minecraft.world.entity.Entity entity) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
|
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
|
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||||
@@ -347,6 +_,7 @@
|
@@ -348,6 +_,7 @@
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
@@ -460,6 +_,7 @@
|
@@ -461,6 +_,7 @@
|
||||||
public InteractionHand interactHand;
|
public InteractionHand interactHand;
|
||||||
public ItemStack interactItemStack;
|
public ItemStack interactItemStack;
|
||||||
public InteractionResult useItemOn(ServerPlayer player, Level level, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) {
|
public InteractionResult useItemOn(ServerPlayer player, Level level, ItemStack stack, InteractionHand hand, BlockHitResult hitResult) {
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
BlockPos blockPos = hitResult.getBlockPos();
|
BlockPos blockPos = hitResult.getBlockPos();
|
||||||
BlockState blockState = level.getBlockState(blockPos);
|
BlockState blockState = level.getBlockState(blockPos);
|
||||||
boolean cancelledBlock = false;
|
boolean cancelledBlock = false;
|
||||||
@@ -502,7 +_,7 @@
|
@@ -503,7 +_,7 @@
|
||||||
boolean flag = !player.getMainHandItem().isEmpty() || !player.getOffhandItem().isEmpty();
|
boolean flag = !player.getMainHandItem().isEmpty() || !player.getOffhandItem().isEmpty();
|
||||||
boolean flag1 = player.isSecondaryUseActive() && flag;
|
boolean flag1 = player.isSecondaryUseActive() && flag;
|
||||||
ItemStack itemStack = stack.copy();
|
ItemStack itemStack = stack.copy();
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
InteractionResult interactionResult = blockState.useItemOn(player.getItemInHand(hand), level, player, hand, hitResult);
|
InteractionResult interactionResult = blockState.useItemOn(player.getItemInHand(hand), level, player, hand, hitResult);
|
||||||
if (interactionResult.consumesAction()) {
|
if (interactionResult.consumesAction()) {
|
||||||
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, blockPos, itemStack);
|
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, blockPos, itemStack);
|
||||||
@@ -548,4 +_,18 @@
|
@@ -549,4 +_,18 @@
|
||||||
public void setLevel(ServerLevel serverLevel) {
|
public void setLevel(ServerLevel serverLevel) {
|
||||||
this.level = serverLevel;
|
this.level = serverLevel;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
--- a/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
+++ b/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
||||||
@@ -308,7 +_,7 @@
|
@@ -306,7 +_,7 @@
|
||||||
ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!");
|
ServerLoginPacketListenerImpl.LOGGER.warn("Failed to verify username but will let them in anyway!");
|
||||||
ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(string1)); // Spigot
|
ServerLoginPacketListenerImpl.this.startClientVerification(ServerLoginPacketListenerImpl.this.createOfflineProfile(string1)); // Spigot
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
private static final org.slf4j.Logger LOGGER = com.mojang.logging.LogUtils.getLogger();
|
private static final org.slf4j.Logger LOGGER = com.mojang.logging.LogUtils.getLogger();
|
||||||
private static final int CURRENT_LEVEL = 2;
|
private static final int CURRENT_LEVEL = 2;
|
||||||
@@ -303,8 +_,9 @@
|
@@ -304,8 +_,9 @@
|
||||||
public double xOld;
|
public double xOld;
|
||||||
public double yOld;
|
public double yOld;
|
||||||
public double zOld;
|
public double zOld;
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
public int tickCount;
|
public int tickCount;
|
||||||
private int remainingFireTicks = -this.getFireImmuneTicks();
|
private int remainingFireTicks = -this.getFireImmuneTicks();
|
||||||
public boolean wasTouchingWater;
|
public boolean wasTouchingWater;
|
||||||
@@ -338,8 +_,8 @@
|
@@ -339,8 +_,8 @@
|
||||||
public PortalProcessor portalProcess;
|
public PortalProcessor portalProcess;
|
||||||
public int portalCooldown;
|
public int portalCooldown;
|
||||||
private boolean invulnerable;
|
private boolean invulnerable;
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
private boolean hasGlowingTag;
|
private boolean hasGlowingTag;
|
||||||
private final Set<String> tags = new io.papermc.paper.util.SizeLimitedSet<>(new it.unimi.dsi.fastutil.objects.ObjectOpenHashSet<>(), MAX_ENTITY_TAG_COUNT); // Paper - fully limit tag size - replace set impl
|
private final Set<String> tags = new io.papermc.paper.util.SizeLimitedSet<>(new it.unimi.dsi.fastutil.objects.ObjectOpenHashSet<>(), MAX_ENTITY_TAG_COUNT); // Paper - fully limit tag size - replace set impl
|
||||||
private final double[] pistonDeltas = new double[]{0.0, 0.0, 0.0};
|
private final double[] pistonDeltas = new double[]{0.0, 0.0, 0.0};
|
||||||
@@ -393,6 +_,7 @@
|
@@ -394,6 +_,7 @@
|
||||||
public long activatedTick = Integer.MIN_VALUE;
|
public long activatedTick = Integer.MIN_VALUE;
|
||||||
public boolean isTemporarilyActive;
|
public boolean isTemporarilyActive;
|
||||||
public long activatedImmunityTick = Integer.MIN_VALUE;
|
public long activatedImmunityTick = Integer.MIN_VALUE;
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
|
|
||||||
public void inactiveTick() {
|
public void inactiveTick() {
|
||||||
}
|
}
|
||||||
@@ -405,10 +_,21 @@
|
@@ -406,10 +_,21 @@
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
this.position = Vec3.ZERO;
|
this.position = Vec3.ZERO;
|
||||||
this.blockPosition = BlockPos.ZERO;
|
this.blockPosition = BlockPos.ZERO;
|
||||||
this.chunkPosition = ChunkPos.ZERO;
|
this.chunkPosition = ChunkPos.ZERO;
|
||||||
@@ -778,6 +_,7 @@
|
@@ -779,6 +_,7 @@
|
||||||
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
|
&& this.level.paperConfig().environment.netherCeilingVoidDamageHeight.test(v -> this.getY() >= v)
|
||||||
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
|
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
|
||||||
// Paper end - Configurable nether ceiling damage
|
// Paper end - Configurable nether ceiling damage
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
this.onBelowWorld();
|
this.onBelowWorld();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1681,7 +_,7 @@
|
@@ -1682,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean fireImmune() {
|
public boolean fireImmune() {
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) {
|
public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) {
|
||||||
@@ -1741,7 +_,7 @@
|
@@ -1742,7 +_,7 @@
|
||||||
return this.isInWater() || flag;
|
return this.isInWater() || flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
if (this.getVehicle() instanceof AbstractBoat abstractBoat && !abstractBoat.isUnderWater()) {
|
if (this.getVehicle() instanceof AbstractBoat abstractBoat && !abstractBoat.isUnderWater()) {
|
||||||
this.wasTouchingWater = false;
|
this.wasTouchingWater = false;
|
||||||
} else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014)) {
|
} else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014)) {
|
||||||
@@ -2363,6 +_,13 @@
|
@@ -2364,6 +_,13 @@
|
||||||
compound.putBoolean("Paper.FreezeLock", true);
|
compound.putBoolean("Paper.FreezeLock", true);
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
return compound;
|
return compound;
|
||||||
} catch (Throwable var8) {
|
} catch (Throwable var8) {
|
||||||
CrashReport crashReport = CrashReport.forThrowable(var8, "Saving entity NBT");
|
CrashReport crashReport = CrashReport.forThrowable(var8, "Saving entity NBT");
|
||||||
@@ -2480,6 +_,13 @@
|
@@ -2481,6 +_,13 @@
|
||||||
freezeLocked = compound.getBooleanOr("Paper.FreezeLock", false);
|
freezeLocked = compound.getBooleanOr("Paper.FreezeLock", false);
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
} catch (Throwable var8) {
|
} catch (Throwable var8) {
|
||||||
CrashReport crashReport = CrashReport.forThrowable(var8, "Loading entity NBT");
|
CrashReport crashReport = CrashReport.forThrowable(var8, "Loading entity NBT");
|
||||||
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
|
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
|
||||||
@@ -2619,6 +_,7 @@
|
@@ -2620,6 +_,7 @@
|
||||||
if (this.isAlive() && this instanceof Leashable leashable) {
|
if (this.isAlive() && this instanceof Leashable leashable) {
|
||||||
if (leashable.getLeashHolder() == player) {
|
if (leashable.getLeashHolder() == player) {
|
||||||
if (!this.level().isClientSide()) {
|
if (!this.level().isClientSide()) {
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
// CraftBukkit start - fire PlayerUnleashEntityEvent
|
// CraftBukkit start - fire PlayerUnleashEntityEvent
|
||||||
// Paper start - Expand EntityUnleashEvent
|
// Paper start - Expand EntityUnleashEvent
|
||||||
org.bukkit.event.player.PlayerUnleashEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
|
org.bukkit.event.player.PlayerUnleashEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
|
||||||
@@ -2935,15 +_,18 @@
|
@@ -2936,15 +_,18 @@
|
||||||
return Vec3.directionFromRotation(this.getRotationVector());
|
return Vec3.directionFromRotation(this.getRotationVector());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3148,7 +_,7 @@
|
@@ -3149,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMaxAirSupply() {
|
public int getMaxAirSupply() {
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getAirSupply() {
|
public int getAirSupply() {
|
||||||
@@ -3676,7 +_,7 @@
|
@@ -3677,7 +_,7 @@
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|
||||||
public boolean canUsePortal(boolean allowPassengers) {
|
public boolean canUsePortal(boolean allowPassengers) {
|
||||||
@@ -160,7 +160,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
||||||
@@ -4211,6 +_,12 @@
|
@@ -4212,6 +_,12 @@
|
||||||
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -173,7 +173,7 @@
|
|||||||
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> fluidTag, double motionScale) {
|
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> fluidTag, double motionScale) {
|
||||||
if (this.touchingUnloadedChunk()) {
|
if (this.touchingUnloadedChunk()) {
|
||||||
return false;
|
return false;
|
||||||
@@ -4551,7 +_,7 @@
|
@@ -4552,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public float maxUpStep() {
|
public float maxUpStep() {
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
this.noActionTime = 0;
|
this.noActionTime = 0;
|
||||||
if (amount < 0.0F) {
|
if (amount < 0.0F) {
|
||||||
amount = 0.0F;
|
amount = 0.0F;
|
||||||
@@ -1647,10 +_,10 @@
|
@@ -1646,10 +_,10 @@
|
||||||
protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) {
|
protected Player resolvePlayerResponsibleForDamage(DamageSource damageSource) {
|
||||||
Entity entity = damageSource.getEntity();
|
Entity entity = damageSource.getEntity();
|
||||||
if (entity instanceof Player player) {
|
if (entity instanceof Player player) {
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
} else {
|
} else {
|
||||||
this.lastHurtByPlayer = null;
|
this.lastHurtByPlayer = null;
|
||||||
this.lastHurtByPlayerMemoryTime = 0;
|
this.lastHurtByPlayerMemoryTime = 0;
|
||||||
@@ -1701,6 +_,18 @@
|
@@ -1700,6 +_,18 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@
|
|||||||
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
|
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
|
||||||
final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
|
final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
|
||||||
event.setCancelled(itemStack == null);
|
event.setCancelled(itemStack == null);
|
||||||
@@ -1876,6 +_,7 @@
|
@@ -1875,6 +_,7 @@
|
||||||
boolean flag = this.lastHurtByPlayerMemoryTime > 0;
|
boolean flag = this.lastHurtByPlayerMemoryTime > 0;
|
||||||
this.dropEquipment(level); // CraftBukkit - from below
|
this.dropEquipment(level); // CraftBukkit - from below
|
||||||
if (this.shouldDropLoot() && level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
|
if (this.shouldDropLoot() && level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
|
||||||
@@ -140,7 +140,7 @@
|
|||||||
this.dropFromLootTable(level, damageSource, flag);
|
this.dropFromLootTable(level, damageSource, flag);
|
||||||
// Paper start
|
// Paper start
|
||||||
final boolean prev = this.clearEquipmentSlots;
|
final boolean prev = this.clearEquipmentSlots;
|
||||||
@@ -1884,6 +_,7 @@
|
@@ -1883,6 +_,7 @@
|
||||||
// Paper end
|
// Paper end
|
||||||
this.dropCustomDeathLoot(level, damageSource, flag);
|
this.dropCustomDeathLoot(level, damageSource, flag);
|
||||||
this.clearEquipmentSlots = prev; // Paper
|
this.clearEquipmentSlots = prev; // Paper
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
|
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
|
||||||
@@ -3058,6 +_,7 @@
|
@@ -3057,6 +_,7 @@
|
||||||
float f = (float)(d * 10.0 - 3.0);
|
float f = (float)(d * 10.0 - 3.0);
|
||||||
if (f > 0.0F) {
|
if (f > 0.0F) {
|
||||||
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
|
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
|
||||||
@@ -156,7 +156,7 @@
|
|||||||
this.hurt(this.damageSources().flyIntoWall(), f);
|
this.hurt(this.damageSources().flyIntoWall(), f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4452,6 +_,12 @@
|
@@ -4451,6 +_,12 @@
|
||||||
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
|
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
|
||||||
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
|
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/net/minecraft/world/level/Level.java
|
+++ b/net/minecraft/world/level/Level.java
|
||||||
@@ -158,11 +_,55 @@
|
@@ -159,11 +_,55 @@
|
||||||
}
|
}
|
||||||
// Paper end - add paper world config
|
// Paper end - add paper world config
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
public CraftWorld getWorld() {
|
public CraftWorld getWorld() {
|
||||||
return this.world;
|
return this.world;
|
||||||
}
|
}
|
||||||
@@ -205,6 +_,8 @@
|
@@ -207,6 +_,8 @@
|
||||||
) {
|
) {
|
||||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
|
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
|
||||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
this.generator = gen;
|
this.generator = gen;
|
||||||
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
||||||
|
|
||||||
@@ -1409,4 +_,14 @@
|
@@ -1413,4 +_,14 @@
|
||||||
return this.id;
|
return this.id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||||
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||||
@@ -136,6 +_,10 @@
|
@@ -27,6 +_,10 @@
|
||||||
static {
|
static {
|
||||||
// TODO these kinda should be checked on each release, in case obfuscation changes
|
// TODO these kinda should be checked on each release, in case obfuscation changes
|
||||||
deobfuscationMap.put("abstract_skeleton_1", "abstract_skeleton_melee");
|
deobfuscationMap.put("abstract_skeleton_1", "abstract_skeleton_melee");
|
||||||
|
|||||||
Reference in New Issue
Block a user