9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00

Updated Upstream (Paper/Gale/Purpur)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@5e2a3bc0 Call EntityChangeBlockEvent with correct block when waxing (#12154)
PaperMC/Paper@ab984a07 Always pass event block to damage source (#12158)
PaperMC/Paper@7b4d44f5 Revert "Always pass event block to damage source (#12158)"
PaperMC/Paper@e5a8ee84 Hide soul speed particles for vanished players (#12152)
PaperMC/Paper@fcb2e815 Clear lastSection on game event listener removal
PaperMC/Paper@636ae0cd Add missing Paper comments to player movement patch
PaperMC/Paper@9be4e07a Pin snapshot dependencies (#12185)
PaperMC/Paper@f12d33f0 Track codec writing
PaperMC/Paper@1d9b3994 Add config option for failed beehive release cooldowns (#12186)
PaperMC/Paper@5f2ee83e Fix first execution of async delayed/repeating tasks being sync (#12166)
PaperMC/Paper@b00875f8 Add a method on Registry to get the size (#12182)
PaperMC/Paper@ca261090 Don't process empty rcon commands (#12188)
PaperMC/Paper@a501c459 Deprecate server config getters (#12189)
PaperMC/Paper@7f3d3591 Use MiniMessage#deserialize(String, Pointered) in sendRichMessage for send messages (#12177)
PaperMC/Paper@9b9f046f Remove broken code (#12171)
PaperMC/Paper@fc56c728 Add methods for Creaking (#12094)
PaperMC/Paper@f63dbeaf Fix cancelled HangingPlaceEvent inventory desync (#12161)
PaperMC/Paper@9421f223 Make CustomArgumentType use parse(reader,source) (#12191)
PaperMC/Paper@0a6e7435 Fix invulnerability damage and armour (#12190)

Gale Changes:
Dreeam-qwq/Gale@b2c11564 Updated Upstream (Paper)
Dreeam-qwq/Gale@a9e4baae Updated Upstream (Paper)
Dreeam-qwq/Gale@32a291bc [ci/skip] Update comment

Purpur Changes:
PurpurMC/Purpur@62cbd47a Updated Upstream (Paper)
PurpurMC/Purpur@d41aaca1 Updated Upstream (Paper)
PurpurMC/Purpur@3f8e6134 Fix EntityTameEvent not being called when `always-tame-in-creative` option is enabled (#1645)
PurpurMC/Purpur@b34d675f fix `zombie_horse.spawn-chance` option not working
This commit is contained in:
Dreeam
2025-02-27 06:03:30 -05:00
parent e0f50c7c4c
commit d801e88a2a
16 changed files with 88 additions and 95 deletions

View File

@@ -2,7 +2,7 @@ group=cn.dreeam.leaf
mcVersion=1.21.4
version=1.21.4-R0.1-SNAPSHOT
galeCommit=0b5fbea3d4797d2a189fe3790105f5ce613ee93c
galeCommit=32a291bcd732b610c22322c97c467cc069940091
org.gradle.configuration-cache=true
org.gradle.caching=true

View File

@@ -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 f7cbfdfca459f9b42ec6bd7ae1b412ce2757c2fe..84b5626a0ccd4fd1976f28eeb2ae99acdb62afa8 100644
index 3446d5bb24fac345b65ac78927155f60fe437b2c..0f4bc6a5b87a72f521f6ca04cfe14147b4e35fe4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2386,6 +2386,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2414,6 +2414,14 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Paper end

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur API Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: 196c1768e1cfa467b82acf260156892784c84578
Commit: b34d675fef91bae2df723705f2568c7afd552d2d
Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "co/aikar/timings/TimedEventExecutor.java.patch"
@@ -70,12 +70,12 @@ index 6b2f6ab137ae37ff0db4827886614436b7ed5dcb..66a9fc729182476c4f601cdb32bcb109
/**
* The brand id for Pufferfish.
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 4d0ec80ace15ab46e888a3f6e7452842bda8c60c..7ce5e34bfb3d8db97b32e9f8ec010e4ff088be65 100644
index e4db2817be2411116ff29cc85ce97e515eb6e51f..0825a913b4f7d5e81d485df6415ab68a4e1530ce 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -3050,4 +3050,133 @@ public final class Bukkit {
public static Server.Spigot spigot() {
return server.spigot();
@@ -3061,4 +3061,133 @@ public final class Bukkit {
public static void restart() {
server.restart();
}
+
+ // Purpur start - Bring back server name
@@ -444,10 +444,10 @@ index ed8e11001c8d3c475dc851aedf6e6812a872dc54..c597c298795fb9893447bc822d941c17
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 84b5626a0ccd4fd1976f28eeb2ae99acdb62afa8..13346dfe2a6d848cf63cbba95d8dea8dfdddf905 100644
index 0f4bc6a5b87a72f521f6ca04cfe14147b4e35fe4..42bc72411462f3699a7a60f987eeca6046f4cf75 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2386,6 +2386,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2414,6 +2414,18 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
// Paper end
@@ -466,7 +466,7 @@ index 84b5626a0ccd4fd1976f28eeb2ae99acdb62afa8..13346dfe2a6d848cf63cbba95d8dea8d
// Leaf start - Leaf config - API
@NotNull
public org.bukkit.configuration.file.YamlConfiguration getLeafConfig()
@@ -2743,4 +2755,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2783,4 +2795,111 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
long getLastTickOversleepTime();
// Gale end - YAPFA - last tick time - API
@@ -958,10 +958,10 @@ 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 d21a228bbec0302e75c4db5aa1db54f321143587..a4acc3578e935cd1174474bd1f6ff14db4294fe7 100644
index 5c1a368194d9e560784391205268641938ad06f1..a04b6603a64cd6bf1049fd684407dcf9d9d7b5e9 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -1468,4 +1468,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
@@ -1476,4 +1476,20 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource
*/
boolean canUseEquipmentSlot(org.bukkit.inventory.@NotNull EquipmentSlot slot);
// Paper end - Expose canUseSlot

View File

@@ -11,10 +11,10 @@ Original project: https://github.com/LeavesMC/Leaves
This patch is Powered by ReplayMod(https://github.com/ReplayMod)
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 7ce5e34bfb3d8db97b32e9f8ec010e4ff088be65..f044efd4426e528dd1a2932dedabc54291b0c336 100644
index 0825a913b4f7d5e81d485df6415ab68a4e1530ce..f40e06c63a82dbbd6bbcadf2a71b7d2825f2b3a9 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -3179,4 +3179,10 @@ public final class Bukkit {
@@ -3190,4 +3190,10 @@ public final class Bukkit {
server.clearBlockHighlights();
}
// Purpur end - Debug Marker API
@@ -26,10 +26,10 @@ index 7ce5e34bfb3d8db97b32e9f8ec010e4ff088be65..f044efd4426e528dd1a2932dedabc542
+ // Leaves end - Photographer API
}
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 13346dfe2a6d848cf63cbba95d8dea8dfdddf905..eddcbd7bdf8d86ee07cb7a95e8c043c4abba8344 100644
index 42bc72411462f3699a7a60f987eeca6046f4cf75..b4ef18cac662c089ac975a0fae0df93e692fc9bc 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2862,4 +2862,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
@@ -2902,4 +2902,8 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
*/
void clearBlockHighlights();
// Purpur end - Debug Marker API

View File

@@ -92,7 +92,7 @@
implementation("net.minecrell:terminalconsoleappender:1.3.0")
implementation("net.kyori:adventure-text-serializer-ansi:4.18.0") // Keep in sync with adventureVersion from Paper-API build file
@@ -160,35 +_,49 @@
@@ -160,36 +_,50 @@
all its classes to check if they are plugins.
Scanning takes about 1-2 seconds so adding this speeds up the server start.
*/
@@ -105,7 +105,7 @@
runtimeOnly(log4jPlugins.output)
alsoShade(log4jPlugins.output)
implementation("com.velocitypowered:velocity-native:3.4.0-SNAPSHOT") {
implementation("com.velocitypowered:velocity-native:3.4.0-20250222.161222-36") {
isTransitive = false
}
- implementation("io.netty:netty-codec-haproxy:4.1.115.Final") // Add support for proxy protocol
@@ -115,7 +115,8 @@
+ implementation("org.apache.logging.log4j:log4j-iostreams:2.24.3")
+ // Leaf end - Bump Dependencies
implementation("org.ow2.asm:asm-commons:9.7.1")
implementation("org.spongepowered:configurate-yaml:4.2.0-SNAPSHOT")
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.
implementation("commons-lang:commons-lang:2.6")
- runtimeOnly("org.xerial:sqlite-jdbc:3.47.0.0")
+ runtimeOnly("org.xerial:sqlite-jdbc:3.47.2.0") // Leaf - Bump Dependencies
@@ -160,24 +161,16 @@
implementation("net.neoforged:srgutils:1.0.9") // Mappings handling
implementation("net.neoforged:AutoRenamingTool:2.0.3") // Remap plugins
@@ -202,6 +_,8 @@
@@ -203,6 +_,8 @@
// Spark
implementation("me.lucko:spark-api:0.1-20240720.200737-2")
implementation("me.lucko:spark-paper:1.10.119-SNAPSHOT")
implementation("me.lucko:spark-paper:1.10.119-20241121.092015-1")
+
+ implementation("io.netty:netty-all:4.1.116.Final") // Leaf - Bump Dependencies // Dreeam TODO - Update to 4.2.0
}
// Gale start - hide irrelevant compilation warnings
@@ -219,21 +_,21 @@
val git = Git(rootProject.layout.projectDirectory.path)
val mcVersion = rootProject.providers.gradleProperty("mcVersion").get()
val build = System.getenv("BUILD_NUMBER") ?: null
- val buildTime = Instant.now() // Gale - branding changes - we don't have ci yet
+ val buildTime = Instant.now() // Leaf - Rebrand - Always use current for build time
val gitHash = git.exec(providers, "rev-parse", "--short=7", "HEAD").get().trim()
val implementationVersion = "$mcVersion-${build ?: "DEV"}-$gitHash"
val date = git.exec(providers, "show", "-s", "--format=%ci", gitHash).get().trim()
@@ -227,14 +_,14 @@
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: 196c1768e1cfa467b82acf260156892784c84578
Commit: b34d675fef91bae2df723705f2568c7afd552d2d
Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "net/minecraft/CrashReport.java.patch"
@@ -490,7 +490,7 @@ index 8b7af734ca4ed3cafa810460b2cea6c1e6342a69..c394e4ea9b066895a8ad370615383a4a
ItemEntity itemEntity = serverPlayer.drop(itemStack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event
if (itemEntity != null) {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index 1e32d308c42194b0ae0a07e5baf12dfa43846ffe..4027873ebfb71d73d9c6c9d00602f11ac5cbc78c 100644
index 649403ef1d5d898052412d6d47783769f291b94f..5151c24697ceb01b4728d7d3fda5fee31db682d7 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -106,6 +106,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -724,7 +724,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 b69a1a5a81cb0a8d4d01c8ab1de039e46f3426f6..a1cbdab00636ee08ffad5726a7750e31d75ed44d 100644
index b69a1a5a81cb0a8d4d01c8ab1de039e46f3426f6..e3f8a469042636e4e49456d3bff862384d8ea1b8 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -205,6 +205,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -824,27 +824,27 @@ index b69a1a5a81cb0a8d4d01c8ab1de039e46f3426f6..a1cbdab00636ee08ffad5726a7750e31
public void tickCustomSpawners(boolean spawnEnemies, boolean spawnFriendlies) {
for (CustomSpawner customSpawner : this.customSpawners) {
customSpawner.tick(this, spawnEnemies, spawnFriendlies);
@@ -919,9 +961,18 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -919,9 +961,17 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
&& this.random.nextDouble() < currentDifficultyAt.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01) // Paper - Configurable spawn chances for skeleton horses
&& !this.getBlockState(blockPos.below()).is(Blocks.LIGHTNING_ROD);
if (flag) {
- SkeletonHorse skeletonHorse = EntityType.SKELETON_HORSE.create(this, EntitySpawnReason.EVENT);
+ // Purpur start - Special mobs naturally spawn
+ net.minecraft.world.entity.animal.horse.AbstractHorse entityhorseskeleton;
+ net.minecraft.world.entity.animal.horse.AbstractHorse skeletonHorse;
+ if (purpurConfig.zombieHorseSpawnChance > 0D && random.nextDouble() <= purpurConfig.zombieHorseSpawnChance) {
+ entityhorseskeleton = EntityType.ZOMBIE_HORSE.create(this, EntitySpawnReason.EVENT);
+ skeletonHorse = EntityType.ZOMBIE_HORSE.create(this, EntitySpawnReason.EVENT);
+ } else {
+ entityhorseskeleton = EntityType.SKELETON_HORSE.create(this, EntitySpawnReason.EVENT);
+ if (entityhorseskeleton != null) ((SkeletonHorse) entityhorseskeleton).setTrap(true);
+ skeletonHorse = EntityType.SKELETON_HORSE.create(this, EntitySpawnReason.EVENT);
+ if (skeletonHorse != null) ((SkeletonHorse) skeletonHorse).setTrap(true);
+ }
+ // Purpur end - Special mobs naturally spawn
SkeletonHorse skeletonHorse = EntityType.SKELETON_HORSE.create(this, EntitySpawnReason.EVENT);
if (skeletonHorse != null) {
- skeletonHorse.setTrap(true);
+ //skeletonHorse.setTrap(true); // Purpur - Special mobs naturally spawn - moved up
skeletonHorse.setAge(0);
skeletonHorse.setPos(blockPos.getX(), blockPos.getY(), blockPos.getZ());
this.addFreshEntity(skeletonHorse, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit
@@ -989,7 +1040,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -989,7 +1039,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
pointOfInterestType -> pointOfInterestType.is(PoiTypes.LIGHTNING_ROD),
blockPos -> blockPos.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockPos.getX(), blockPos.getZ()) - 1,
pos,
@@ -853,7 +853,7 @@ index b69a1a5a81cb0a8d4d01c8ab1de039e46f3426f6..a1cbdab00636ee08ffad5726a7750e31
PoiManager.Occupancy.ANY
);
return optional.map(blockPos -> blockPos.above(1));
@@ -1037,8 +1088,26 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1037,8 +1087,26 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
Component component;
if (this.sleepStatus.areEnoughSleeping(_int)) {
@@ -880,7 +880,7 @@ index b69a1a5a81cb0a8d4d01c8ab1de039e46f3426f6..a1cbdab00636ee08ffad5726a7750e31
component = Component.translatable("sleep.players_sleeping", this.sleepStatus.amountSleeping(), this.sleepStatus.sleepersNeeded(_int));
}
@@ -1171,6 +1240,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1171,6 +1239,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@VisibleForTesting
public void resetWeatherCycle() {
// CraftBukkit start
@@ -888,7 +888,7 @@ index b69a1a5a81cb0a8d4d01c8ab1de039e46f3426f6..a1cbdab00636ee08ffad5726a7750e31
this.serverLevelData.setRaining(false, org.bukkit.event.weather.WeatherChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
// Not that everyone ever manages to get the whole server to sleep at the same time....
@@ -1178,6 +1248,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1178,6 +1247,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
this.serverLevelData.setRainTime(0);
}
// CraftBukkit end
@@ -896,7 +896,7 @@ index b69a1a5a81cb0a8d4d01c8ab1de039e46f3426f6..a1cbdab00636ee08ffad5726a7750e31
this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// CraftBukkit start
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
@@ -2659,7 +2730,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2659,7 +2729,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// Spigot start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start - Fix merchant inventory not closing on entity removal
@@ -1279,7 +1279,7 @@ index ea34bb4913e7357f5b76a64443f7e744abdf7b5e..de115ee71fa240440b54c553e0d3ddaf
try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index e3e758a608e16fc7b4ae795dfd2baecc8b0cb844..c0be2543ab55fda85302812a4773e551f64cf7d9 100644
index 5d6f89468b0c8452a4166e707b514b22105a9b1a..f869deca50e463f34a003be473c7bfbe51b297ec 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl
@@ -2304,7 +2304,7 @@ index efee812785240c1ab1fd47514cfb236a3548f9cf..b982d4b7bdf39fcaf5f22cc889467d7b
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index bfd71ce095cb35cc7c71b3dae71b40fc7d42f360..7a07789f115cb4a8917097e0697e80184104817e 100644
index 696ef08b2d897c91a20bc22987b1f5c7047615be..ac006d8738592bc5cb77033adc8c442ce302a476 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -248,9 +248,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2535,7 +2535,7 @@ index bfd71ce095cb35cc7c71b3dae71b40fc7d42f360..7a07789f115cb4a8917097e0697e8018
}
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
@@ -3033,6 +3099,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3040,6 +3106,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
float f = (float)(d * 10.0 - 3.0);
if (f > 0.0F) {
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
@@ -2543,7 +2543,7 @@ index bfd71ce095cb35cc7c71b3dae71b40fc7d42f360..7a07789f115cb4a8917097e0697e8018
this.hurt(this.damageSources().flyIntoWall(), f);
}
}
@@ -3523,8 +3590,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3530,8 +3597,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.pushEntities();
// Paper start - Add EntityMoveEvent
@@ -2556,7 +2556,7 @@ index bfd71ce095cb35cc7c71b3dae71b40fc7d42f360..7a07789f115cb4a8917097e0697e8018
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());
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
@@ -3534,11 +3603,52 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3541,11 +3610,52 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
}
}
@@ -2609,7 +2609,7 @@ index bfd71ce095cb35cc7c71b3dae71b40fc7d42f360..7a07789f115cb4a8917097e0697e8018
}
public boolean isSensitiveToWater() {
@@ -3560,7 +3670,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3567,7 +3677,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
if (i1 % 2 == 0) {
List<EquipmentSlot> list = EquipmentSlot.VALUES.stream().filter(slot -> canGlideUsing(this.getItemBySlot(slot), slot)).toList();
EquipmentSlot equipmentSlot = Util.getRandom(list, this.random);
@@ -2629,7 +2629,7 @@ index bfd71ce095cb35cc7c71b3dae71b40fc7d42f360..7a07789f115cb4a8917097e0697e8018
}
this.gameEvent(GameEvent.ELYTRA_GLIDE);
@@ -4443,6 +4564,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4450,6 +4571,12 @@ public abstract class LivingEntity extends Entity implements Attackable {
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
}
@@ -3208,7 +3208,7 @@ index 579ca031d461ed4327fe4fb45c5289565322e64e..95fa516910a3834bbd4db6d11279e13a
} else if (this.nextStartTick > 0) {
this.nextStartTick--;
diff --git a/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java b/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
index 878d7813b3f2f52bef336c6d855d738bc2f83491..0752a8c6308f9f74ffe177d7a1decde2227228f9 100644
index 878d7813b3f2f52bef336c6d855d738bc2f83491..d0f94f065d2ecf6ca6b47ac49422ffa656a18f55 100644
--- a/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
+++ b/net/minecraft/world/entity/ai/goal/RunAroundLikeCrazyGoal.java
@@ -58,7 +58,7 @@ public class RunAroundLikeCrazyGoal extends Goal {
@@ -3216,7 +3216,7 @@ index 878d7813b3f2f52bef336c6d855d738bc2f83491..0752a8c6308f9f74ffe177d7a1decde2
int temper = this.horse.getTemper();
int maxTemper = this.horse.getMaxTemper();
- if (maxTemper > 0 && this.horse.getRandom().nextInt(maxTemper) < temper && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.horse, ((org.bukkit.craftbukkit.entity.CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled()) { // CraftBukkit - fire EntityTameEvent
+ if (this.horse.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials() || maxTemper > 0 && this.horse.getRandom().nextInt(maxTemper) < temper && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.horse, ((org.bukkit.craftbukkit.entity.CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled()) { // CraftBukkit - fire EntityTameEvent // Purpur - Config to always tame in Creative
+ if (((this.horse.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || (maxTemper > 0 && this.horse.getRandom().nextInt(maxTemper) < temper)) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this.horse, ((org.bukkit.craftbukkit.entity.CraftHumanEntity) this.horse.getBukkitEntity().getPassenger()).getHandle()).isCancelled()) { // CraftBukkit - fire EntityTameEvent // Purpur - Config to always tame in Creative
this.horse.tameWithName(player);
return;
}
@@ -3758,7 +3758,7 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..d5727999eb67ff30dbf47865d5945248
if (Bee.this.random.nextFloat() < 0.05F && this.successfulPollinatingTicks > this.lastSoundPlayedTick + 60) {
this.lastSoundPlayedTick = this.successfulPollinatingTicks;
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 1a7a5c81a260cc740994d1a63c4775c41c238dea..edd796fd34e43d66a48104201d885756fdd968c3 100644
index 1a7a5c81a260cc740994d1a63c4775c41c238dea..e5d4dc41a72cdae15a08e6bb5425056a325c584c 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -93,10 +93,65 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
@@ -3863,7 +3863,7 @@ index 1a7a5c81a260cc740994d1a63c4775c41c238dea..edd796fd34e43d66a48104201d885756
private void tryToTame(Player player) {
- if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit
+ if (this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials() || this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit // Purpur - Config to always tame in Creative
+ if (((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || this.random.nextInt(3) == 0) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit // Purpur - Config to always tame in Creative
this.tame(player);
this.setOrderedToSit(true);
this.level().broadcastEntityEvent(this, (byte)7);
@@ -4966,7 +4966,7 @@ index 283ddf7d13a17c0a6df5a52b7fd26ed7b7a4826b..0a6a3060f3690ab2d8439d66e6fd6f0c
}
}
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index 16cc69b14fba16a5a5dfc05d63a40a5112314031..d2c3bfcdafe7ae1937f8bd8f12f9ac4170445e9a 100644
index 16cc69b14fba16a5a5dfc05d63a40a5112314031..4fa9f50ef6869b181e4e48ed66aaee210b303cd9 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -124,12 +124,97 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
@@ -5086,7 +5086,7 @@ index 16cc69b14fba16a5a5dfc05d63a40a5112314031..d2c3bfcdafe7ae1937f8bd8f12f9ac41
if (!this.level().isClientSide) {
- if (this.random.nextInt(10) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit
+ if (this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials() || (this.random.nextInt(10) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled())) { // CraftBukkit // Purpur - Config to always tame in Creative
+ if (((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || this.random.nextInt(10) == 0) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit // Purpur - Config to always tame in Creative
this.tame(player);
this.level().broadcastEntityEvent(this, (byte)7);
} else {
@@ -6108,7 +6108,7 @@ index 0e2d2dd3f2ef2783f3773a9a05c4f718991f7784..10477fea8fcd70bf0c1ba4b6e1113625
this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0, this.turtle.getSpeed() * d1 * 0.1, 0.0));
}
diff --git a/net/minecraft/world/entity/animal/Wolf.java b/net/minecraft/world/entity/animal/Wolf.java
index 133e14efb19f8984061b8cb5922aa4f0c7aaf4d9..ef6c0bf20ad18c050cdeb02ddd6c007dfcf1d6b3 100644
index 133e14efb19f8984061b8cb5922aa4f0c7aaf4d9..7cb292de6b27fa4ba3c5fce526a4e939c576789f 100644
--- a/net/minecraft/world/entity/animal/Wolf.java
+++ b/net/minecraft/world/entity/animal/Wolf.java
@@ -94,6 +94,37 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
@@ -6330,7 +6330,7 @@ index 133e14efb19f8984061b8cb5922aa4f0c7aaf4d9..ef6c0bf20ad18c050cdeb02ddd6c007d
private void tryToTame(Player player) {
- if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit - added event call and isCancelled check.
+ if (this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials() || this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit - added event call and isCancelled check. // Purpur - Config to always tame in Creative
+ if (((this.level().purpurConfig.alwaysTameInCreative && player.hasInfiniteMaterials()) || this.random.nextInt(3) == 0) && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, player).isCancelled()) { // CraftBukkit - added event call and isCancelled check. // Purpur - Config to always tame in Creative
this.tame(player);
this.navigation.stop();
this.setTarget(null);
@@ -14020,7 +14020,7 @@ index 75a9bd205f32b77c5d242cb9fac0f571ce36045a..b03f182c62c699cc222e67c1ae6eadf9
itemInHand.shrink(1); // Moved up from below
} else {
diff --git a/net/minecraft/world/item/HangingEntityItem.java b/net/minecraft/world/item/HangingEntityItem.java
index 85980c7e5ad63398e0f0948fb0250f580251fe63..cd9e0398876567afc337db8f6ff0ebb0ee162383 100644
index fb301e4ba8faecf9c3b14e48fe9a8008a43f8cea..a11ef537a220fc16a4cea2fda221b649e74cea30 100644
--- a/net/minecraft/world/item/HangingEntityItem.java
+++ b/net/minecraft/world/item/HangingEntityItem.java
@@ -62,6 +62,7 @@ public class HangingEntityItem extends Item {
@@ -16247,7 +16247,7 @@ index deef33d96db188cb297f04b581ab29e77e3716a9..80b0feac68813f11dc5cadc5faf413a5
playSound(level, pos, SoundEvents.BEACON_AMBIENT);
}
diff --git a/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java b/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
index 47582c2cbae227c47684b8451c7bac39bce7e0aa..cb9b08d8bd25f0483c28cdcfdf31dc56d122643e 100644
index fbde2680b405b9fa7ed2fe70046b77e971b53e48..91d135e6b8cd0bbe0ffa6242d36c2d95e8f3fbab 100644
--- a/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
+++ b/net/minecraft/world/level/block/entity/BeehiveBlockEntity.java
@@ -76,7 +76,7 @@ public class BeehiveBlockEntity extends BlockEntity {

View File

@@ -134,7 +134,7 @@ index 5c0a04db38821dbb0cba2bb6f0787f113d167efd..cd153db93f709c3142942fac88ae3ca2
.filter(player -> !playerList.isOp(player.getGameProfile()))
.map(player -> player.getGameProfile().getName()),
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index a1cbdab00636ee08ffad5726a7750e31d75ed44d..01836d12c5a4603d04bad192657540e0ae5a1ec0 100644
index e3f8a469042636e4e49456d3bff862384d8ea1b8..d6f68208e4d487950eecc12edb197322cd80a4ad 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -216,6 +216,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -153,7 +153,7 @@ index a1cbdab00636ee08ffad5726a7750e31d75ed44d..01836d12c5a4603d04bad192657540e0
}
// Paper start
@@ -2672,6 +2674,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2671,6 +2673,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// ServerLevel.this.getChunkSource().addEntity(entity); // Paper - ignore and warn about illegal addEntity calls instead of crashing server; moved down below valid=true
if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.add(serverPlayer);
@@ -165,7 +165,7 @@ index a1cbdab00636ee08ffad5726a7750e31d75ed44d..01836d12c5a4603d04bad192657540e0
ServerLevel.this.updateSleepingPlayerList();
}
@@ -2742,6 +2749,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2741,6 +2748,11 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
ServerLevel.this.getChunkSource().removeEntity(entity);
if (entity instanceof ServerPlayer serverPlayer) {
ServerLevel.this.players.remove(serverPlayer);

View File

@@ -11,10 +11,10 @@ Original license: GPLv3
Original project: https://github.com/etil2jz/Mirai
diff --git a/net/minecraft/network/FriendlyByteBuf.java b/net/minecraft/network/FriendlyByteBuf.java
index e5e5d9bc095ccd9fbf1c8aaa09e5c4ebb1d1c920..7c2df09decf90f691d35516a2eb74e97370f6a37 100644
index d1daa3443446f47e2215f0c7c5823da58e053bab..abb0141426fd716e79a947b9498a8351daa342fc 100644
--- a/net/minecraft/network/FriendlyByteBuf.java
+++ b/net/minecraft/network/FriendlyByteBuf.java
@@ -114,6 +114,17 @@ public class FriendlyByteBuf extends ByteBuf {
@@ -118,6 +118,17 @@ public class FriendlyByteBuf extends ByteBuf {
public <T> void writeJsonWithCodec(Codec<T> codec, T value, int maxLength) {
// Paper end - Adventure; add max length parameter
DataResult<JsonElement> dataResult = codec.encodeStart(JsonOps.INSTANCE, value);
@@ -91,7 +91,7 @@ index 30bd254542d631676494f349ff3f44f52d54ab2f..63e6411d8bac1629e143cc620fe35dba
public record Favicon(byte[] iconBytes) {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index 4027873ebfb71d73d9c6c9d00602f11ac5cbc78c..e3c395ff665d741136ec868a889042390bd25f73 100644
index 5151c24697ceb01b4728d7d3fda5fee31db682d7..d4048661575ebfaf128ba25da365843774364e0e 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -668,6 +668,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

View File

@@ -218,10 +218,10 @@ index d8298c7925e3bcea07ead4d438478cc51abcfa16..75670751064add901c2628d53d802835
attributesToSync.clear();
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index dd27e6b47233776fdec8860391be772029c987aa..cbbc27e8030d28f95dccebec9b496f2ac8eb38a9 100644
index 34276e9a114ae70bc109d68d44b2f545cd10db88..5423d8228c1da56135ae32b958f432d5b94707ed 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -2497,7 +2497,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2496,7 +2496,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@Override
public LevelEntityGetter<Entity> getEntities() {
@@ -231,7 +231,7 @@ index dd27e6b47233776fdec8860391be772029c987aa..cbbc27e8030d28f95dccebec9b496f2a
}
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 9960b26d5f5d931bacea3fb5c8fbe14dddd8d0e2..b6070af21a2f8f393146cab36488506eb0d308d0 100644
index 74e2435f09f12f20ce9ad61c7688ac93a06846d5..7c3043961540eb4c4acbc705c62e7cb6996a512f 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1816,7 +1816,7 @@ public class ServerGamePacketListenerImpl

View File

@@ -12,10 +12,10 @@ As part of: Lithium (https://github.com/CaffeineMC/lithium-fabric)
Licensed under: LGPL-3.0 (https://www.gnu.org/licenses/lgpl-3.0.html)
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index f744c9dca670cbbcc7549be17bf51eb683dd1ae0..f70a843be612903136ae603c4d4c0bad06f4628a 100644
index 316242d60db43494300a29b7d0945d0d76ac9987..0138bd4d95a592bfa5ccbb33fa6c1201f289fd2a 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -2732,6 +2732,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2739,6 +2739,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
protected void updateSwingTime() {
@@ -23,7 +23,7 @@ index f744c9dca670cbbcc7549be17bf51eb683dd1ae0..f70a843be612903136ae603c4d4c0bad
int currentSwingDuration = this.getCurrentSwingDuration();
if (this.swinging) {
this.swingTime++;
@@ -3683,6 +3684,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3690,6 +3691,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected void updateFallFlying() {
this.checkSlowFallDistance();
if (!this.level().isClientSide) {

View File

@@ -76,7 +76,7 @@ index a8c6549f772208cd543607224fef2c2389b14f24..709631db548a16a969a373e26ebbcd69
public boolean equals(Object other) {
return this == other
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index f70a843be612903136ae603c4d4c0bad06f4628a..f4f978073fca1be8fe18bc13f64385d4c0cd4b3d 100644
index 0138bd4d95a592bfa5ccbb33fa6c1201f289fd2a..00233a7066d751821566b43993e8c45e7dad95d0 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -159,7 +159,7 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -116,7 +116,7 @@ index f70a843be612903136ae603c4d4c0bad06f4628a..f4f978073fca1be8fe18bc13f64385d4
Equippable equippable = newItem.get(DataComponents.EQUIPPABLE);
if (!this.isSilent() && equippable != null && slot == equippable.slot() && !silent) { // CraftBukkit
this.level()
@@ -3348,6 +3353,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3355,6 +3360,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
public void detectEquipmentUpdatesPublic() { // CraftBukkit
Map<EquipmentSlot, ItemStack> map = this.collectEquipmentChanges();
if (map != null) {
@@ -124,7 +124,7 @@ index f70a843be612903136ae603c4d4c0bad06f4628a..f4f978073fca1be8fe18bc13f64385d4
this.handleHandSwap(map);
if (!map.isEmpty()) {
this.handleEquipmentChanges(map);
@@ -3357,6 +3363,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3364,6 +3370,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@Nullable
private Map<EquipmentSlot, ItemStack> collectEquipmentChanges() {
@@ -135,7 +135,7 @@ index f70a843be612903136ae603c4d4c0bad06f4628a..f4f978073fca1be8fe18bc13f64385d4
Map<EquipmentSlot, ItemStack> map = null;
// Paper start - EntityEquipmentChangedEvent
record EquipmentChangeImpl(org.bukkit.inventory.ItemStack oldItem, org.bukkit.inventory.ItemStack newItem) implements io.papermc.paper.event.entity.EntityEquipmentChangedEvent.EquipmentChange {
@@ -4716,6 +4726,81 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -4723,6 +4733,81 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.lastHurtByPlayerTime;
}

View File

@@ -84,7 +84,7 @@ index 571db5f9bf94745a8afe2cd313e593fb15db5e37..1487b7d8be435b3fbad2aabd05796965
valueInMap = new ServerChunkTasks(
keyInMap, ServerLightQueue.this.lightInterface, ServerLightQueue.this, priority
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index cbbc27e8030d28f95dccebec9b496f2ac8eb38a9..1277b4b6b5283afebb78b403824e6a5aa1e5734f 100644
index 5423d8228c1da56135ae32b958f432d5b94707ed..95bed1e67758543a7aec12eee1229ee2c4057c88 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -508,7 +508,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -96,7 +96,7 @@ index cbbc27e8030d28f95dccebec9b496f2ac8eb38a9..1277b4b6b5283afebb78b403824e6a5a
return;
}
@@ -2570,7 +2570,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2569,7 +2569,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
public boolean isNaturalSpawningAllowed(ChunkPos chunkPos) {
// Paper start - rewrite chunk system

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Only player pushable
Useful for extreme cases like massive entities collide together in a small area
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index f4f978073fca1be8fe18bc13f64385d4c0cd4b3d..deb31fa0e0c9c8ccb21c5ae7e86bb1c5406e2177 100644
index 00233a7066d751821566b43993e8c45e7dad95d0..03c9edad5c2f5e902b7a766c6d0be61bf3c263ae 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3624,7 +3624,7 @@ public abstract class LivingEntity extends Entity implements Attackable, net.caf
@@ -3631,7 +3631,7 @@ public abstract class LivingEntity extends Entity implements Attackable, net.caf
this.checkAutoSpinAttack(boundingBox, this.getBoundingBox());
}
@@ -18,7 +18,7 @@ index f4f978073fca1be8fe18bc13f64385d4c0cd4b3d..deb31fa0e0c9c8ccb21c5ae7e86bb1c5
// Paper start - Add EntityMoveEvent
// Purpur start - Ridables
if (this.xo != this.getX() || this.yo != this.getY() || this.zo != this.getZ() || this.yRotO != this.getYRot() || this.xRotO != this.getXRot()) {
@@ -3762,7 +3762,14 @@ public abstract class LivingEntity extends Entity implements Attackable, net.caf
@@ -3769,7 +3769,14 @@ public abstract class LivingEntity extends Entity implements Attackable, net.caf
return;
}
// Paper end - don't run getEntities if we're not going to use its result
@@ -34,7 +34,7 @@ index f4f978073fca1be8fe18bc13f64385d4c0cd4b3d..deb31fa0e0c9c8ccb21c5ae7e86bb1c5
if (!entities.isEmpty()) {
// Paper - don't run getEntities if we're not going to use its result; moved up
if (_int > 0 && entities.size() > _int - 1 && this.random.nextInt(4) == 0) {
@@ -3795,6 +3802,44 @@ public abstract class LivingEntity extends Entity implements Attackable, net.caf
@@ -3802,6 +3809,44 @@ public abstract class LivingEntity extends Entity implements Attackable, net.caf
}
}

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Paper Changes
Original license: MIT
Original project: https://github.com/PurpurMC/Purpur
Commit: 196c1768e1cfa467b82acf260156892784c84578
Commit: b34d675fef91bae2df723705f2568c7afd552d2d
Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "Rebrand.patch"
@@ -282,10 +282,10 @@ index 352d62385e56d5805510596ec9424e5d14336861..b4d4ad2dc7d719d72c0786791f803fbc
final ConfigurationTransformation.VersionedBuilder versionedBuilder = Transformations.versionedBuilder();
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
index d7c9acaffdcff5e35e026ae90a3e521bab13b074..a426ba82af695426952bb5e04fa721e6ccff2f89 100644
index d193330bfd97767705c878e359969378d43b99d0..4bc6a6572f18b333a3c48b2a96f3079998e7d77f 100644
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
@@ -398,6 +398,7 @@ public class WorldConfiguration extends ConfigurationPart {
@@ -401,6 +401,7 @@ public class WorldConfiguration extends ConfigurationPart {
public boolean useVanillaWorldScoreboardNameColoring = false;
}
@@ -293,7 +293,7 @@ index d7c9acaffdcff5e35e026ae90a3e521bab13b074..a426ba82af695426952bb5e04fa721e6
public Environment environment;
public class Environment extends ConfigurationPart {
@@ -407,7 +408,9 @@ public class WorldConfiguration extends ConfigurationPart {
@@ -410,7 +411,9 @@ public class WorldConfiguration extends ConfigurationPart {
public boolean disableExplosionKnockback = false;
public boolean generateFlatBedrock = false;
public FrostedIce frostedIce;
@@ -558,7 +558,7 @@ index 94ca0407303c4493ab4928b12ec6ecc75aaca549..f2d87c12dd19210ce7e2147fada5c101
+ // Purpur end - OfflinePlayer API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0b085b3748a2700c3eb3bc158e5d42afae1efc1d..1816ec002c91d108529e9b1dcd7b5f0a7fbc52ef 100644
index 93f115da494a66a756961b0cc16dea11010ea54f..feb39ef98af539f0c97cdd2bada7bb8febfb4de8 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -429,6 +429,20 @@ public final class CraftServer implements Server {
@@ -685,8 +685,8 @@ index 0b085b3748a2700c3eb3bc158e5d42afae1efc1d..1816ec002c91d108529e9b1dcd7b5f0a
+
@Override
public void restart() {
org.spigotmc.RestartCommand.restart();
@@ -3358,4 +3441,18 @@ public final class CraftServer implements Server {
CraftServer.this.restart();
@@ -3363,4 +3446,18 @@ public final class CraftServer implements Server {
return MinecraftServer.lastTickOversleepTime;
}
// Gale end - YAPFA - last tick time - API

View File

@@ -27,7 +27,7 @@ index 4c003acccdd2dd17918b15316001e52e7670123e..780f3a48152fef6a06dc67bf7fbd1965
HandlerList handlers = event.getHandlers();
RegisteredListener[] listeners = handlers.getRegisteredListeners();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 514c2d414ac59c71929a7686204465c72d122513..f1d6e2e31ef776a792124d79446323d0bb2c611f 100644
index 989008d7c33813bda72464690690bdf78946eac3..144e876399dd61396ae5d192182b3be87ec84da0 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -322,6 +322,8 @@ public final class CraftServer implements Server {
@@ -48,7 +48,7 @@ index 514c2d414ac59c71929a7686204465c72d122513..f1d6e2e31ef776a792124d79446323d0
@Override
public CraftPlayer apply(ServerPlayer player) {
return player.getBukkitEntity();
@@ -3455,4 +3457,11 @@ public final class CraftServer implements Server {
@@ -3460,4 +3462,11 @@ public final class CraftServer implements Server {
return getServer().lagging;
}
// Purpur end - Lagging threshold

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Including 5s in getTPS()
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f1d6e2e31ef776a792124d79446323d0bb2c611f..ef0c0374261bc4d673e0b8150e268328125e3542 100644
index 144e876399dd61396ae5d192182b3be87ec84da0..230e645e215103b6c09fc09e3653e76879a27727 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3179,6 +3179,8 @@ public final class CraftServer implements Server {
@@ -3184,6 +3184,8 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {