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@1004374a Add further information to thread check errors
PaperMC/Paper@e2f0efd1 Remove nms.Entity#isChunkLoaded
PaperMC/Paper@54b2e9d9 Add buffer to CraftWorld#warnUnsafeChunk
PaperMC/Paper@d4a95784 Experimental annotation changes (#12028)
PaperMC/Paper@5bcfb12a Fix activation range config and water animal status (#12047)
PaperMC/Paper@e0711af5 Deprecate UnsafeValues#getSpawnEggLayerColor (#12041)
PaperMC/Paper@8927091a Do not record movement for vehicles/players unaffected by blocks
PaperMC/Paper@5395ae37 Fix composter block setting bukkit owner twice (#12058)

Gale Changes:
Dreeam-qwq/Gale@534623a0 Updated Upstream (Paper)
Dreeam-qwq/Gale@7274f287 Updated Upstream (Paper)
Dreeam-qwq/Gale@e9ffadfd Updated Upstream (Paper)
Dreeam-qwq/Gale@9e6d19de Updated Upstream (Paper)
Dreeam-qwq/Gale@f35382c4 Updated Upstream (Paper)

Purpur Changes:
PurpurMC/Purpur@9b575764 Updated Upstream (Paper)
PurpurMC/Purpur@88ed7442 Updated Upstream (Paper)
PurpurMC/Purpur@79c11927 only initialize the config once, closes #1637
PurpurMC/Purpur@c7bb955e Updated Upstream (Paper)
PurpurMC/Purpur@2fe4cf18 [ci/skip] fix indentation
PurpurMC/Purpur@65637fa6 fix(mobs/bee): Set `takes-damage-from-water` back to false by default, closes #1639
PurpurMC/Purpur@16cfd04b feat(mobs/bee): Add `can-instantly-start-drowning` option, defaults to `true`
PurpurMC/Purpur@4f481858 fix: correctly call force when sending particles
This commit is contained in:
Dreeam
2025-02-03 15:56:12 -05:00
parent 47847ebd51
commit 7e89480eef
10 changed files with 106 additions and 90 deletions

View File

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

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 5583a3f19b75a9d07367e2ca80adbbafa9af6593 Commit: 4f481858a32b9636fcd19f539f13fb03e1bbf443
Patches listed below are removed in this patch, They exists in Gale or Leaf: Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "net/minecraft/CrashReport.java.patch" * "net/minecraft/CrashReport.java.patch"
@@ -42,7 +42,7 @@ Patches listed below are removed in this patch, They exists in Gale or Leaf:
- Rebrand - Rebrand
diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java diff --git a/io/papermc/paper/entity/activation/ActivationRange.java b/io/papermc/paper/entity/activation/ActivationRange.java
index cd2fa33f6e655419f2a1155aed8566742385d922..7ab41616b0c3e3766c13f86920965165ac800ba3 100644 index a9269356de964585028e69a3713ca64f67ba02bf..9a81a642698ade8a06c3a3bb4766f3c004a0b030 100644
--- a/io/papermc/paper/entity/activation/ActivationRange.java --- a/io/papermc/paper/entity/activation/ActivationRange.java
+++ b/io/papermc/paper/entity/activation/ActivationRange.java +++ b/io/papermc/paper/entity/activation/ActivationRange.java
@@ -155,6 +155,8 @@ public final class ActivationRange { @@ -155,6 +155,8 @@ public final class ActivationRange {
@@ -490,7 +490,7 @@ index 8b7af734ca4ed3cafa810460b2cea6c1e6342a69..c394e4ea9b066895a8ad370615383a4a
ItemEntity itemEntity = serverPlayer.drop(itemStack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event ItemEntity itemEntity = serverPlayer.drop(itemStack, false, false, false); // CraftBukkit - SPIGOT-2942: Add boolean to call event
if (itemEntity != null) { if (itemEntity != null) {
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index 30dc45b2201bf7435d7f38866dfa4b5fbbf44957..22b0f33dc3ef9f51ba2ca3cb665b07a16bd1c9d9 100644 index 30dc45b2201bf7435d7f38866dfa4b5fbbf44957..6e7ac9128378586160230bd33462edb7d6880154 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java --- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java +++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -106,6 +106,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -106,6 +106,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -521,7 +521,7 @@ index 30dc45b2201bf7435d7f38866dfa4b5fbbf44957..22b0f33dc3ef9f51ba2ca3cb665b07a1
org.galemc.gale.command.GaleCommands.registerCommands(this); // Gale - Gale commands - register commands org.galemc.gale.command.GaleCommands.registerCommands(this); // Gale - Gale commands - register commands
this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark this.server.spark.registerCommandBeforePlugins(this.server); // Paper - spark
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics
+ // Purpur start - Purpur config files + /*// Purpur start - Purpur config files // Purpur - Configurable void damage height and damage
+ try { + try {
+ org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings")); + org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
+ } catch (Exception e) { + } catch (Exception e) {
@@ -529,7 +529,7 @@ index 30dc45b2201bf7435d7f38866dfa4b5fbbf44957..22b0f33dc3ef9f51ba2ca3cb665b07a1
+ return false; + return false;
+ } + }
+ org.purpurmc.purpur.PurpurConfig.registerCommands(); + org.purpurmc.purpur.PurpurConfig.registerCommands();
+ // Purpur end - Purpur config files + */// Purpur end - Purpur config files // Purpur - Configurable void damage height and damage
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
// Gale start - Pufferfish - SIMD support // Gale start - Pufferfish - SIMD support
@@ -1279,7 +1279,7 @@ index ea34bb4913e7357f5b76a64443f7e744abdf7b5e..de115ee71fa240440b54c553e0d3ddaf
try { try {
String channels = payload.toString(com.google.common.base.Charsets.UTF_8); 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 diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 6a36f6e498fbba976c5f1f48c3648e2e19d46ebc..29b81470ce8cbc8c8c5644b8c07738bf9d90460c 100644 index 657fbc5e5d81b44fefc2d9d6c6bfe47f179a7843..ca16bef85f94ffb87eb27c9ec1429cba77e7fbc1 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl @@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl
@@ -1527,7 +1527,7 @@ index e802cecf30a2bfa4390ca70c45a9840032c8c046..7401200f6a11bf552d128d833f25d825
} }
} catch (AuthenticationUnavailableException var4) { } catch (AuthenticationUnavailableException var4) {
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index ef533e2038fa110f3ce0936290023d54c0a98471..6ae663ce0b88f1c91425a67f2c765eecf49cdef7 100644 index e7181a2ce0e3cdbcc05bd602c3c5447d8d1ad143..08a028ac0892552f7e6b95985233c1e625e11e44 100644
--- a/net/minecraft/server/players/PlayerList.java --- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java +++ b/net/minecraft/server/players/PlayerList.java
@@ -407,6 +407,7 @@ public abstract class PlayerList { @@ -407,6 +407,7 @@ public abstract class PlayerList {
@@ -1877,7 +1877,7 @@ index 1fc9e1ad541c46124183a401b2a7d99aea69cecf..881271f0bc77a8a8a7d31daad9a8188b
} }
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 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fced442cf92 100644 index 0f3c00c0d6be858351f00a71e2586212ab0f3668..3be4556a14b61fad5690a4e664e9e27ab94bb41f 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
@@ -134,7 +134,7 @@ import net.minecraft.world.scores.Team; @@ -134,7 +134,7 @@ import net.minecraft.world.scores.Team;
@@ -1920,7 +1920,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
public void inactiveTick() { public void inactiveTick() {
} }
@@ -528,10 +530,39 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -524,10 +526,39 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
// Paper end - optimise entity tracker // Paper end - optimise entity tracker
@@ -1960,7 +1960,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
this.position = Vec3.ZERO; this.position = Vec3.ZERO;
this.blockPosition = BlockPos.ZERO; this.blockPosition = BlockPos.ZERO;
this.chunkPosition = ChunkPos.ZERO; this.chunkPosition = ChunkPos.ZERO;
@@ -912,6 +943,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -908,6 +939,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
&& 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
@@ -1968,7 +1968,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
this.onBelowWorld(); this.onBelowWorld();
} }
} }
@@ -1842,7 +1874,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1838,7 +1870,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public boolean fireImmune() { public boolean fireImmune() {
@@ -1977,7 +1977,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
} }
public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) { public boolean causeFallDamage(float fallDistance, float multiplier, DamageSource source) {
@@ -1911,7 +1943,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1907,7 +1939,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return this.isInWater() || flag; return this.isInWater() || flag;
} }
@@ -1986,7 +1986,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
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)) {
@@ -2547,6 +2579,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2543,6 +2575,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
compound.putBoolean("Paper.FreezeLock", true); compound.putBoolean("Paper.FreezeLock", true);
} }
// Paper end // Paper end
@@ -2000,7 +2000,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
return compound; return compound;
} catch (Throwable var9) { } catch (Throwable var9) {
CrashReport crashReport = CrashReport.forThrowable(var9, "Saving entity NBT"); CrashReport crashReport = CrashReport.forThrowable(var9, "Saving entity NBT");
@@ -2696,6 +2735,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2692,6 +2731,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
freezeLocked = compound.getBoolean("Paper.FreezeLock"); freezeLocked = compound.getBoolean("Paper.FreezeLock");
} }
// Paper end // Paper end
@@ -2014,7 +2014,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
} catch (Throwable var17) { } catch (Throwable var17) {
CrashReport crashReport = CrashReport.forThrowable(var17, "Loading entity NBT"); CrashReport crashReport = CrashReport.forThrowable(var17, "Loading entity NBT");
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded"); CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
@@ -2942,6 +2988,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2938,6 +2984,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
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()) {
@@ -2022,7 +2022,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
// 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());
@@ -3148,6 +3195,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3144,6 +3191,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -2036,7 +2036,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
} }
} }
@@ -3189,6 +3243,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3185,6 +3239,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -2051,7 +2051,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
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 {
@@ -3267,15 +3329,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3263,15 +3325,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return Vec3.directionFromRotation(this.getRotationVector()); return Vec3.directionFromRotation(this.getRotationVector());
} }
@@ -2071,7 +2071,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
} }
} }
} }
@@ -3477,7 +3542,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3473,7 +3538,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public int getMaxAirSupply() { public int getMaxAirSupply() {
@@ -2080,7 +2080,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
} }
public int getAirSupply() { public int getAirSupply() {
@@ -3965,7 +4030,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3961,7 +4026,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
// CraftBukkit end // CraftBukkit end
public boolean canUsePortal(boolean allowPassengers) { public boolean canUsePortal(boolean allowPassengers) {
@@ -2089,7 +2089,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
} }
public boolean canTeleport(Level fromLevel, Level toLevel) { public boolean canTeleport(Level fromLevel, Level toLevel) {
@@ -4502,6 +4567,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4498,6 +4563,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return Mth.lerp(partialTick, this.yRotO, this.yRot); return Mth.lerp(partialTick, this.yRotO, this.yRot);
} }
@@ -2102,7 +2102,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
// Paper start - optimise collisions // Paper start - optimise collisions
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) { public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
if (this.touchingUnloadedChunk()) { if (this.touchingUnloadedChunk()) {
@@ -4910,7 +4981,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4906,7 +4977,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public float maxUpStep() { public float maxUpStep() {
@@ -2111,7 +2111,7 @@ index 22af2c4996601847f2bbe9d6fef2fc4bd82725fc..1ee098b10548de763f7df0c494876fce
} }
public void onExplosionHit(@Nullable Entity entity) { public void onExplosionHit(@Nullable Entity entity) {
@@ -5108,4 +5179,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5104,4 +5175,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
@@ -3548,7 +3548,7 @@ index e34e3b949676aa28dd7c82a47f2ed3b44ad200e3..fa34e7f1c20dfd569b52a9c8e0a8d4d5
animal.resetLove(); animal.resetLove();
level.broadcastEntityEvent(this, (byte)18); level.broadcastEntityEvent(this, (byte)18);
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df3129285143097303 100644 index 94244b148533ef026bf5c56abbc2bb5cfa83c938..d5727999eb67ff30dbf47865d59452483338e170 100644
--- a/net/minecraft/world/entity/animal/Bee.java --- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java +++ b/net/minecraft/world/entity/animal/Bee.java
@@ -145,6 +145,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -145,6 +145,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -3587,7 +3587,7 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df31292851
this.lookControl = new Bee.BeeLookControl(this); this.lookControl = new Bee.BeeLookControl(this);
this.setPathfindingMalus(PathType.DANGER_FIRE, -1.0F); this.setPathfindingMalus(PathType.DANGER_FIRE, -1.0F);
- this.setPathfindingMalus(PathType.WATER, -1.0F); - this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage + if (this.level().purpurConfig.beeCanInstantlyStartDrowning || isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - bee can instantly start drowning in water option // Purpur - Toggle for water sensitive mob damage
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F); this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
this.setPathfindingMalus(PathType.COCOA, -1.0F); this.setPathfindingMalus(PathType.COCOA, -1.0F);
this.setPathfindingMalus(PathType.FENCE, -1.0F); this.setPathfindingMalus(PathType.FENCE, -1.0F);
@@ -3655,6 +3655,15 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df31292851
} }
public void setStayOutOfHiveCountdown(int stayOutOfHiveCountdown) { public void setStayOutOfHiveCountdown(int stayOutOfHiveCountdown) {
@@ -388,7 +438,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@Override
protected void customServerAiStep(ServerLevel level) {
boolean hasStung = this.hasStung();
- if (this.isInWaterOrBubble()) {
+ if (this.level().purpurConfig.beeCanInstantlyStartDrowning && this.isInWaterOrBubble()) { // Purpur - bee can instantly start drowning in water option
this.underWaterTicks++;
} else {
this.underWaterTicks = 0;
@@ -398,6 +448,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -398,6 +448,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.hurtServer(level, this.damageSources().drown(), 1.0F); this.hurtServer(level, this.damageSources().drown(), 1.0F);
} }
@@ -3663,7 +3672,7 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df31292851
if (hasStung) { if (hasStung) {
this.timeSinceSting++; this.timeSinceSting++;
if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) { if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) {
@@ -421,6 +472,33 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -421,6 +472,35 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
return beehiveBlockEntity != null && beehiveBlockEntity.isFireNearby(); return beehiveBlockEntity != null && beehiveBlockEntity.isFireNearby();
} }
@@ -3682,22 +3691,24 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df31292851
+ } + }
+ // Purpur end - Make entity breeding times configurable + // Purpur end - Make entity breeding times configurable
+ +
+ // Purpur start - Toggle for water sensitive mob damage
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.beeTakeDamageFromWater;
+ }
+ // Purpur end - Toggle for water sensitive mob damage
+
+ // Purpur start - Mobs always drop experience + // Purpur start - Mobs always drop experience
+ @Override + @Override
+ protected boolean isAlwaysExperienceDropper() { + protected boolean isAlwaysExperienceDropper() {
+ return this.level().purpurConfig.beeAlwaysDropExp; + return this.level().purpurConfig.beeAlwaysDropExp;
+ } + }
+ // Purpur end - Mobs always drop experience + // Purpur end - Mobs always drop experience
+
+ @Override
+ public boolean isSensitiveToWater() {
+ return this.level().purpurConfig.beeTakeDamageFromWater;
+ }
+ +
@Override @Override
public int getRemainingPersistentAngerTime() { public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME); return this.entityData.get(DATA_REMAINING_ANGER_TIME);
@@ -1083,15 +1161,15 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -1083,15 +1163,15 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
} }
} }
@@ -3716,7 +3727,7 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df31292851
} }
} }
@@ -1136,6 +1214,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -1136,6 +1216,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
Bee.this.savedFlowerPos = optional.get(); Bee.this.savedFlowerPos = optional.get();
Bee.this.navigation Bee.this.navigation
.moveTo(Bee.this.savedFlowerPos.getX() + 0.5, Bee.this.savedFlowerPos.getY() + 0.5, Bee.this.savedFlowerPos.getZ() + 0.5, 1.2F); .moveTo(Bee.this.savedFlowerPos.getX() + 0.5, Bee.this.savedFlowerPos.getY() + 0.5, Bee.this.savedFlowerPos.getZ() + 0.5, 1.2F);
@@ -3724,7 +3735,7 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df31292851
return true; return true;
} else { } else {
Bee.this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(Bee.this.random, 20, 60); Bee.this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(Bee.this.random, 20, 60);
@@ -1182,6 +1261,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -1182,6 +1263,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.pollinating = false; this.pollinating = false;
Bee.this.navigation.stop(); Bee.this.navigation.stop();
Bee.this.remainingCooldownBeforeLocatingNewFlower = 200; Bee.this.remainingCooldownBeforeLocatingNewFlower = 200;
@@ -3732,7 +3743,7 @@ index 94244b148533ef026bf5c56abbc2bb5cfa83c938..57c50ce5724b073b1aedf4df31292851
} }
@Override @Override
@@ -1228,6 +1308,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -1228,6 +1310,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
this.setWantedPos(); this.setWantedPos();
} }
@@ -11050,7 +11061,7 @@ index cbae85171a1bb64ee3be40ba211d88e68bf672e4..241526239bdbd5d9276f85e7fca46a70
if (isFood && !this.isSilent()) { if (isFood && !this.isSilent()) {
this.level() this.level()
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index 7f1cdea810db24182f8f87076c42a19b1b43e98a..0ce9eb1f4108b6afab6df84d5e709be0882e515a 100644 index af3fef70998cff4e4832adfa2071832324ebd91c..0d9dd9919b2b9902137df861bcac8057e4b741de 100644
--- a/net/minecraft/world/entity/monster/Vex.java --- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java +++ b/net/minecraft/world/entity/monster/Vex.java
@@ -58,6 +58,72 @@ public class Vex extends Monster implements TraceableEntity { @@ -58,6 +58,72 @@ public class Vex extends Monster implements TraceableEntity {
@@ -13881,7 +13892,7 @@ index 57c933af200551162774f1d473437521e5a85833..b3e003694ce0da357e91ab3ce2b1380f
} else { } else {
player.startUsingItem(hand); player.startUsingItem(hand);
diff --git a/net/minecraft/world/item/BucketItem.java b/net/minecraft/world/item/BucketItem.java diff --git a/net/minecraft/world/item/BucketItem.java b/net/minecraft/world/item/BucketItem.java
index 62d79cb25879e6e48a1541f864d0b3782d926313..4dccebf97b720aa2189d3ae7b8e2d8066fa13573 100644 index 62d79cb25879e6e48a1541f864d0b3782d926313..b820ecfbe71dd57a0f04b1c3381ffb76b0c16f16 100644
--- a/net/minecraft/world/item/BucketItem.java --- a/net/minecraft/world/item/BucketItem.java
+++ b/net/minecraft/world/item/BucketItem.java +++ b/net/minecraft/world/item/BucketItem.java
@@ -147,7 +147,7 @@ public class BucketItem extends Item implements DispensibleContainerItem { @@ -147,7 +147,7 @@ public class BucketItem extends Item implements DispensibleContainerItem {
@@ -13898,7 +13909,7 @@ index 62d79cb25879e6e48a1541f864d0b3782d926313..4dccebf97b720aa2189d3ae7b8e2d806
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
- level.addParticle(ParticleTypes.LARGE_SMOKE, x + Math.random(), y + Math.random(), z + Math.random(), 0.0, 0.0, 0.0); - level.addParticle(ParticleTypes.LARGE_SMOKE, x + Math.random(), y + Math.random(), z + Math.random(), 0.0, 0.0, 0.0);
+ ((net.minecraft.server.level.ServerLevel) level).sendParticlesSource(null, ParticleTypes.LARGE_SMOKE, false, true, x + Math.random(), y + Math.random(), z + Math.random(), 1, 0.0D, 0.0D, 0.0D, 0.0D); // Purpur - Add allow water in end world option + ((net.minecraft.server.level.ServerLevel) level).sendParticlesSource(null, ParticleTypes.LARGE_SMOKE, true, false, x + Math.random(), y + Math.random(), z + Math.random(), 1, 0.0D, 0.0D, 0.0D, 0.0D); // Purpur - Add allow water in end world option
} }
return true; return true;
@@ -15119,7 +15130,7 @@ index 9ed50f09147984ba8864edabb89669e2f4fc7bea..af4abe255da35e9b7ecfd29914d5e54e
return level.getBlockState(blockPos).isRedstoneConductor(level, blockPos); return level.getBlockState(blockPos).isRedstoneConductor(level, blockPos);
} }
diff --git a/net/minecraft/world/level/block/ComposterBlock.java b/net/minecraft/world/level/block/ComposterBlock.java diff --git a/net/minecraft/world/level/block/ComposterBlock.java b/net/minecraft/world/level/block/ComposterBlock.java
index 0d34839618648bb8c606dd2d9b1f9db93641c742..d71ac1d023cc5a5d00b20c0001a49f52591a3a9b 100644 index c8ffb634df661a6a4520731be725b51480764976..9fb36207ce829d1a8b952017d3b60db015efdaaf 100644
--- a/net/minecraft/world/level/block/ComposterBlock.java --- a/net/minecraft/world/level/block/ComposterBlock.java
+++ b/net/minecraft/world/level/block/ComposterBlock.java +++ b/net/minecraft/world/level/block/ComposterBlock.java
@@ -241,17 +241,27 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { @@ -241,17 +241,27 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
@@ -16752,7 +16763,7 @@ index 85148858db1fd5e9da8bbdde4b0d84110d80e373..c9c6e4e460ad8435f12761704bb9b028
} }
diff --git a/org/purpurmc/purpur/PurpurConfig.java b/org/purpurmc/purpur/PurpurConfig.java diff --git a/org/purpurmc/purpur/PurpurConfig.java b/org/purpurmc/purpur/PurpurConfig.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..aca85686fb0b9ec78d4e83574bbfe6313785f40f index 0000000000000000000000000000000000000000..e0db3230c3912588ed527e131751bef082665294
--- /dev/null --- /dev/null
+++ b/org/purpurmc/purpur/PurpurConfig.java +++ b/org/purpurmc/purpur/PurpurConfig.java
@@ -0,0 +1,581 @@ @@ -0,0 +1,581 @@
@@ -16832,8 +16843,8 @@ index 0000000000000000000000000000000000000000..aca85686fb0b9ec78d4e83574bbfe631
+ commands = new HashMap<>(); + commands = new HashMap<>();
+ commands.put("purpur", new PurpurCommand("purpur")); + commands.put("purpur", new PurpurCommand("purpur"));
+ +
+ version = getInt("config-version", 38); + version = getInt("config-version", 40);
+ set("config-version", 38); + set("config-version", 40);
+ +
+ readConfig(PurpurConfig.class, null); + readConfig(PurpurConfig.class, null);
+ +
@@ -17339,10 +17350,10 @@ index 0000000000000000000000000000000000000000..aca85686fb0b9ec78d4e83574bbfe631
+} +}
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..2aac26f50958d8653eb1472daa7761d36093cf4c index 0000000000000000000000000000000000000000..40ee86981c24b79b209b5a0fb0705ff62fb65863
--- /dev/null --- /dev/null
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -0,0 +1,3440 @@ @@ -0,0 +1,3445 @@
+package org.purpurmc.purpur; +package org.purpurmc.purpur;
+ +
+import java.util.ArrayList; +import java.util.ArrayList;
@@ -17951,7 +17962,7 @@ index 0000000000000000000000000000000000000000..2aac26f50958d8653eb1472daa7761d3
+ PurpurConfig.config.set("world-settings.default.tools.axe.weatherables.minecraft:weathered_copper_bulb", Map.of("into", "minecraft:exposed_copper_bulb", "drops", new HashMap<String, Double>())); + PurpurConfig.config.set("world-settings.default.tools.axe.weatherables.minecraft:weathered_copper_bulb", Map.of("into", "minecraft:exposed_copper_bulb", "drops", new HashMap<String, Double>()));
+ PurpurConfig.config.set("world-settings.default.tools.axe.weatherables.minecraft:oxidized_copper_bulb", Map.of("into", "minecraft:weathered_copper_bulb", "drops", new HashMap<String, Double>())); + PurpurConfig.config.set("world-settings.default.tools.axe.weatherables.minecraft:oxidized_copper_bulb", Map.of("into", "minecraft:weathered_copper_bulb", "drops", new HashMap<String, Double>()));
+ } + }
+ if (PurpurConfig.version < 38) { + if (PurpurConfig.version < 39) {
+ PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:pale_oak_wood", Map.of("into", "minecraft:stripped_pale_oak_wood", "drops", new HashMap<String, Double>())); + PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:pale_oak_wood", Map.of("into", "minecraft:stripped_pale_oak_wood", "drops", new HashMap<String, Double>()));
+ PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:pale_oak_log", Map.of("into", "minecraft:stripped_pale_oak_log", "drops", new HashMap<String, Double>())); + PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:pale_oak_log", Map.of("into", "minecraft:stripped_pale_oak_log", "drops", new HashMap<String, Double>()));
+ } + }
@@ -18567,7 +18578,8 @@ index 0000000000000000000000000000000000000000..2aac26f50958d8653eb1472daa7761d3
+ public double beeMaxHealth = 10.0D; + public double beeMaxHealth = 10.0D;
+ public double beeScale = 1.0D; + public double beeScale = 1.0D;
+ public int beeBreedingTicks = 6000; + public int beeBreedingTicks = 6000;
+ public boolean beeTakeDamageFromWater = true; + public boolean beeTakeDamageFromWater = false;
+ public boolean beeCanInstantlyStartDrowning = true;
+ public boolean beeCanWorkAtNight = false; + public boolean beeCanWorkAtNight = false;
+ public boolean beeCanWorkInRain = false; + public boolean beeCanWorkInRain = false;
+ public boolean beeAlwaysDropExp = false; + public boolean beeAlwaysDropExp = false;
@@ -18585,9 +18597,13 @@ index 0000000000000000000000000000000000000000..2aac26f50958d8653eb1472daa7761d3
+ beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); + beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth);
+ beeScale = Mth.clamp(getDouble("mobs.bee.attributes.scale", beeScale), 0.0625D, 16.0D); + beeScale = Mth.clamp(getDouble("mobs.bee.attributes.scale", beeScale), 0.0625D, 16.0D);
+ beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); + beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks);
+ if (PurpurConfig.version < 40) {
+ set("mobs.bee.takes-damage-from-water", false);
+ }
+ beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); + beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater);
+ beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); + beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight);
+ beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); + beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain);
+ beeCanInstantlyStartDrowning = getBoolean("mobs.bee.can-instantly-start-drowning", beeCanInstantlyStartDrowning);
+ beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp); + beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp);
+ beeDiesAfterSting = getBoolean("mobs.bee.dies-after-sting", beeDiesAfterSting); + beeDiesAfterSting = getBoolean("mobs.bee.dies-after-sting", beeDiesAfterSting);
+ } + }
@@ -21882,7 +21898,7 @@ index 0000000000000000000000000000000000000000..9660716f4162a4441c6e1b0baddef8f5
+} +}
diff --git a/org/purpurmc/purpur/entity/projectile/DolphinSpit.java b/org/purpurmc/purpur/entity/projectile/DolphinSpit.java diff --git a/org/purpurmc/purpur/entity/projectile/DolphinSpit.java b/org/purpurmc/purpur/entity/projectile/DolphinSpit.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..8ffacde0417d29bb2de12d58fe42fd0717735f9d index 0000000000000000000000000000000000000000..e489b16983b8eea75726baf6323b41af0929bdec
--- /dev/null --- /dev/null
+++ b/org/purpurmc/purpur/entity/projectile/DolphinSpit.java +++ b/org/purpurmc/purpur/entity/projectile/DolphinSpit.java
@@ -0,0 +1,105 @@ @@ -0,0 +1,105 @@
@@ -21945,7 +21961,7 @@ index 0000000000000000000000000000000000000000..8ffacde0417d29bb2de12d58fe42fd07
+ Vec3 motDouble = mot.scale(2.0); + Vec3 motDouble = mot.scale(2.0);
+ for (int i = 0; i < 5; i++) { + for (int i = 0; i < 5; i++) {
+ ((ServerLevel) level()).sendParticlesSource(null, ParticleTypes.BUBBLE, + ((ServerLevel) level()).sendParticlesSource(null, ParticleTypes.BUBBLE,
+ false, true, + true, false,
+ getX() + random.nextFloat() / 2 - 0.25F, + getX() + random.nextFloat() / 2 - 0.25F,
+ getY() + random.nextFloat() / 2 - 0.25F, + getY() + random.nextFloat() / 2 - 0.25F,
+ getZ() + random.nextFloat() / 2 - 0.25F, + getZ() + random.nextFloat() / 2 - 0.25F,
@@ -21993,7 +22009,7 @@ index 0000000000000000000000000000000000000000..8ffacde0417d29bb2de12d58fe42fd07
+} +}
diff --git a/org/purpurmc/purpur/entity/projectile/PhantomFlames.java b/org/purpurmc/purpur/entity/projectile/PhantomFlames.java diff --git a/org/purpurmc/purpur/entity/projectile/PhantomFlames.java b/org/purpurmc/purpur/entity/projectile/PhantomFlames.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..580d8dc556da951e2e1ab4e199317e2f5b166f2f index 0000000000000000000000000000000000000000..bac5eee2d101fa286285747170ba3365c47c87c3
--- /dev/null --- /dev/null
+++ b/org/purpurmc/purpur/entity/projectile/PhantomFlames.java +++ b/org/purpurmc/purpur/entity/projectile/PhantomFlames.java
@@ -0,0 +1,127 @@ @@ -0,0 +1,127 @@
@@ -22058,7 +22074,7 @@ index 0000000000000000000000000000000000000000..580d8dc556da951e2e1ab4e199317e2f
+ Vec3 motDouble = mot.scale(2.0); + Vec3 motDouble = mot.scale(2.0);
+ for (int i = 0; i < 5; i++) { + for (int i = 0; i < 5; i++) {
+ ((ServerLevel) level()).sendParticlesSource(null, ParticleTypes.FLAME, + ((ServerLevel) level()).sendParticlesSource(null, ParticleTypes.FLAME,
+ false, true, + true, false,
+ getX() + random.nextFloat() / 2 - 0.25F, + getX() + random.nextFloat() / 2 - 0.25F,
+ getY() + random.nextFloat() / 2 - 0.25F, + getY() + random.nextFloat() / 2 - 0.25F,
+ getZ() + random.nextFloat() / 2 - 0.25F, + getZ() + random.nextFloat() / 2 - 0.25F,

View File

@@ -78,7 +78,7 @@ index 72cdd8f72fb3f552d9729f21de438405abe3acdb..90a8494840faa0e7f605c904c657a953
// Gale end - MultiPaper - skip unnecessary mob spawning computations // Gale end - MultiPaper - skip unnecessary mob spawning computations
int _int = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING); int _int = this.level.getGameRules().getInt(GameRules.RULE_RANDOMTICKING);
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 29b81470ce8cbc8c8c5644b8c07738bf9d90460c..e3fa94538ec5756e39ca55ba2216971d499215cc 100644 index ca16bef85f94ffb87eb27c9ec1429cba77e7fbc1..64841780b8fb037e730d947b21b1469e3f86229f 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1232,7 +1232,7 @@ public class ServerGamePacketListenerImpl @@ -1232,7 +1232,7 @@ public class ServerGamePacketListenerImpl
@@ -91,10 +91,10 @@ index 29b81470ce8cbc8c8c5644b8c07738bf9d90460c..e3fa94538ec5756e39ca55ba2216971d
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect 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; return;
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 1ee098b10548de763f7df0c494876fced442cf92..df0b6d21a7d629ba759e322d3e886fbc0cc53173 100644 index 3be4556a14b61fad5690a4e664e9e27ab94bb41f..761b3806ddec0675935dc2e24d36e4b221c53c9b 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
@@ -536,23 +536,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -532,23 +532,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
// Purpur end - Add canSaveToDisk to Entity // Purpur end - Add canSaveToDisk to Entity

View File

@@ -558,10 +558,10 @@ index 1f96fd5085bacb4c584576c7cb9f51e7898e9b03..8819717c5307a90abc493cf801b4e795
+ // Leaf end - Kaiiju - await on async path processing + // Leaf end - Kaiiju - await on async path processing
} }
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 57c50ce5724b073b1aedf4df3129285143097303..91635b344ac02b66e51aa5620acf9ca481004853 100644 index d5727999eb67ff30dbf47865d59452483338e170..6fffa2e98e54ab015762417af8507d11c164e765 100644
--- a/net/minecraft/world/entity/animal/Bee.java --- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java +++ b/net/minecraft/world/entity/animal/Bee.java
@@ -934,7 +934,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -936,7 +936,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
} else { } else {
Bee.this.pathfindRandomlyTowards(Bee.this.hivePos); Bee.this.pathfindRandomlyTowards(Bee.this.hivePos);
} }
@@ -570,7 +570,7 @@ index 57c50ce5724b073b1aedf4df3129285143097303..91635b344ac02b66e51aa5620acf9ca4
boolean flag = this.pathfindDirectlyTowards(Bee.this.hivePos); boolean flag = this.pathfindDirectlyTowards(Bee.this.hivePos);
if (!flag) { if (!flag) {
this.dropAndBlacklistHive(); this.dropAndBlacklistHive();
@@ -988,7 +988,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -990,7 +990,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
return true; return true;
} else { } else {
Path path = Bee.this.navigation.getPath(); Path path = Bee.this.navigation.getPath();

View File

@@ -83,10 +83,10 @@ index fddbbffafea275dad187b7908386cf4c05c86743..89a67db9bbdb31661fa4f71f1270198b
} }
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb713163fa 100644 index 40ee86981c24b79b209b5a0fb0705ff62fb65863..53f7d89a68e3e05c2303d4ef5185b2ad41135380 100644
--- a/org/purpurmc/purpur/PurpurWorldConfig.java --- a/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1563,6 +1563,7 @@ public class PurpurWorldConfig { @@ -1568,6 +1568,7 @@ public class PurpurWorldConfig {
public boolean drownedTakeDamageFromWater = false; public boolean drownedTakeDamageFromWater = false;
public boolean drownedBreakDoors = false; public boolean drownedBreakDoors = false;
public boolean drownedAlwaysDropExp = false; public boolean drownedAlwaysDropExp = false;
@@ -94,7 +94,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
private void drownedSettings() { private void drownedSettings() {
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
@@ -1581,6 +1582,7 @@ public class PurpurWorldConfig { @@ -1586,6 +1587,7 @@ public class PurpurWorldConfig {
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);
drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors);
drownedAlwaysDropExp = getBoolean("mobs.drowned.always-drop-exp", drownedAlwaysDropExp); drownedAlwaysDropExp = getBoolean("mobs.drowned.always-drop-exp", drownedAlwaysDropExp);
@@ -102,7 +102,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
} }
public boolean elderGuardianRidable = false; public boolean elderGuardianRidable = false;
@@ -1955,6 +1957,7 @@ public class PurpurWorldConfig { @@ -1960,6 +1962,7 @@ public class PurpurWorldConfig {
public boolean huskJockeyTryExistingChickens = true; public boolean huskJockeyTryExistingChickens = true;
public boolean huskTakeDamageFromWater = false; public boolean huskTakeDamageFromWater = false;
public boolean huskAlwaysDropExp = false; public boolean huskAlwaysDropExp = false;
@@ -110,7 +110,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
private void huskSettings() { private void huskSettings() {
huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
@@ -1972,6 +1975,7 @@ public class PurpurWorldConfig { @@ -1977,6 +1980,7 @@ public class PurpurWorldConfig {
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater);
huskAlwaysDropExp = getBoolean("mobs.husk.always-drop-exp", huskAlwaysDropExp); huskAlwaysDropExp = getBoolean("mobs.husk.always-drop-exp", huskAlwaysDropExp);
@@ -118,7 +118,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
} }
public boolean illusionerRidable = false; public boolean illusionerRidable = false;
@@ -3269,6 +3273,7 @@ public class PurpurWorldConfig { @@ -3274,6 +3278,7 @@ public class PurpurWorldConfig {
public boolean zombieTakeDamageFromWater = false; public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false; public boolean zombieAlwaysDropExp = false;
public double zombieHeadVisibilityPercent = 0.5D; public double zombieHeadVisibilityPercent = 0.5D;
@@ -126,7 +126,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
private void zombieSettings() { private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -3289,6 +3294,7 @@ public class PurpurWorldConfig { @@ -3294,6 +3299,7 @@ public class PurpurWorldConfig {
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp); zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp);
zombieHeadVisibilityPercent = getDouble("mobs.zombie.head-visibility-percent", zombieHeadVisibilityPercent); zombieHeadVisibilityPercent = getDouble("mobs.zombie.head-visibility-percent", zombieHeadVisibilityPercent);
@@ -134,7 +134,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
} }
public boolean zombieHorseRidable = false; public boolean zombieHorseRidable = false;
@@ -3338,6 +3344,7 @@ public class PurpurWorldConfig { @@ -3343,6 +3349,7 @@ public class PurpurWorldConfig {
public int zombieVillagerCuringTimeMax = 6000; public int zombieVillagerCuringTimeMax = 6000;
public boolean zombieVillagerCureEnabled = true; public boolean zombieVillagerCureEnabled = true;
public boolean zombieVillagerAlwaysDropExp = false; public boolean zombieVillagerAlwaysDropExp = false;
@@ -142,7 +142,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
private void zombieVillagerSettings() { private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -3358,6 +3365,7 @@ public class PurpurWorldConfig { @@ -3363,6 +3370,7 @@ public class PurpurWorldConfig {
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);
zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled);
zombieVillagerAlwaysDropExp = getBoolean("mobs.zombie_villager.always-drop-exp", zombieVillagerAlwaysDropExp); zombieVillagerAlwaysDropExp = getBoolean("mobs.zombie_villager.always-drop-exp", zombieVillagerAlwaysDropExp);
@@ -150,7 +150,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
} }
public boolean zombifiedPiglinRidable = false; public boolean zombifiedPiglinRidable = false;
@@ -3372,6 +3380,7 @@ public class PurpurWorldConfig { @@ -3377,6 +3385,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
public boolean zombifiedPiglinTakeDamageFromWater = false; public boolean zombifiedPiglinTakeDamageFromWater = false;
public boolean zombifiedPiglinAlwaysDropExp = false; public boolean zombifiedPiglinAlwaysDropExp = false;
@@ -158,7 +158,7 @@ index e58be75264a319bc09988ce4f26cce95b41f9b50..14a2a57126279bb3f12d77773fe036eb
private void zombifiedPiglinSettings() { private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -3390,6 +3399,7 @@ public class PurpurWorldConfig { @@ -3395,6 +3404,7 @@ public class PurpurWorldConfig {
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
zombifiedPiglinAlwaysDropExp = getBoolean("mobs.zombified_piglin.always-drop-exp", zombifiedPiglinAlwaysDropExp); zombifiedPiglinAlwaysDropExp = getBoolean("mobs.zombified_piglin.always-drop-exp", zombifiedPiglinAlwaysDropExp);

View File

@@ -244,7 +244,7 @@ index b230955ae880d84fde40b4feffa5caf3c4449eb7..c8bdfaaf41e2309e4865806b42677064
@Override @Override
diff --git a/org/purpurmc/purpur/PurpurConfig.java b/org/purpurmc/purpur/PurpurConfig.java diff --git a/org/purpurmc/purpur/PurpurConfig.java b/org/purpurmc/purpur/PurpurConfig.java
index aca85686fb0b9ec78d4e83574bbfe6313785f40f..c168e9d2c395044a662efd2d9ccde8b20c070b22 100644 index e0db3230c3912588ed527e131751bef082665294..e58c5c338000218a0ed200987870c8c79193d5b1 100644
--- a/org/purpurmc/purpur/PurpurConfig.java --- a/org/purpurmc/purpur/PurpurConfig.java
+++ b/org/purpurmc/purpur/PurpurConfig.java +++ b/org/purpurmc/purpur/PurpurConfig.java
@@ -322,6 +322,7 @@ public class PurpurConfig { @@ -322,6 +322,7 @@ public class PurpurConfig {
@@ -264,7 +264,7 @@ index aca85686fb0b9ec78d4e83574bbfe6313785f40f..c168e9d2c395044a662efd2d9ccde8b2
org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27); org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27);
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows); enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96292b72fc 100644 index 53f7d89a68e3e05c2303d4ef5185b2ad41135380..06fb46236023d7d73de40583c20e96656f3ace19 100644
--- a/org/purpurmc/purpur/PurpurWorldConfig.java --- a/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1137,12 +1137,20 @@ public class PurpurWorldConfig { @@ -1137,12 +1137,20 @@ public class PurpurWorldConfig {
@@ -288,7 +288,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
} }
public boolean armadilloRidable = false; public boolean armadilloRidable = false;
@@ -1292,6 +1300,10 @@ public class PurpurWorldConfig { @@ -1297,6 +1305,10 @@ public class PurpurWorldConfig {
public double camelMovementSpeedMin = 0.09D; public double camelMovementSpeedMin = 0.09D;
public double camelMovementSpeedMax = 0.09D; public double camelMovementSpeedMax = 0.09D;
public int camelBreedingTicks = 6000; public int camelBreedingTicks = 6000;
@@ -299,7 +299,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
private void camelSettings() { private void camelSettings() {
camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater); camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin); camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin);
@@ -1301,6 +1313,10 @@ public class PurpurWorldConfig { @@ -1306,6 +1318,10 @@ public class PurpurWorldConfig {
camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin); camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin);
camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax); camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax);
camelBreedingTicks = getInt("mobs.camel.breeding-delay-ticks", camelBreedingTicks); camelBreedingTicks = getInt("mobs.camel.breeding-delay-ticks", camelBreedingTicks);
@@ -310,7 +310,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
} }
public boolean catRidable = false; public boolean catRidable = false;
@@ -1447,12 +1463,20 @@ public class PurpurWorldConfig { @@ -1452,12 +1468,20 @@ public class PurpurWorldConfig {
public boolean creakingControllable = true; public boolean creakingControllable = true;
public double creakingMaxHealth = 1.0D; public double creakingMaxHealth = 1.0D;
public double creakingScale = 1.0D; public double creakingScale = 1.0D;
@@ -331,7 +331,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
} }
public boolean creeperRidable = false; public boolean creeperRidable = false;
@@ -1759,12 +1783,22 @@ public class PurpurWorldConfig { @@ -1764,12 +1788,22 @@ public class PurpurWorldConfig {
public boolean frogControllable = true; public boolean frogControllable = true;
public float frogRidableJumpHeight = 0.65F; public float frogRidableJumpHeight = 0.65F;
public int frogBreedingTicks = 6000; public int frogBreedingTicks = 6000;
@@ -354,7 +354,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
} }
public boolean ghastRidable = false; public boolean ghastRidable = false;
@@ -2773,6 +2807,10 @@ public class PurpurWorldConfig { @@ -2778,6 +2812,10 @@ public class PurpurWorldConfig {
public double snifferMaxHealth = 14.0D; public double snifferMaxHealth = 14.0D;
public double snifferScale = 1.0D; public double snifferScale = 1.0D;
public int snifferBreedingTicks = 6000; public int snifferBreedingTicks = 6000;
@@ -365,7 +365,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
private void snifferSettings() { private void snifferSettings() {
snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable); snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable);
snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater); snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater);
@@ -2780,6 +2818,10 @@ public class PurpurWorldConfig { @@ -2785,6 +2823,10 @@ public class PurpurWorldConfig {
snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth); snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth);
snifferScale = Mth.clamp(getDouble("mobs.sniffer.attributes.scale", snifferScale), 0.0625D, 16.0D); snifferScale = Mth.clamp(getDouble("mobs.sniffer.attributes.scale", snifferScale), 0.0625D, 16.0D);
snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", snifferBreedingTicks); snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", snifferBreedingTicks);
@@ -376,7 +376,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
} }
public boolean squidRidable = false; public boolean squidRidable = false;
@@ -2881,10 +2923,20 @@ public class PurpurWorldConfig { @@ -2886,10 +2928,20 @@ public class PurpurWorldConfig {
public boolean tadpoleRidable = false; public boolean tadpoleRidable = false;
public boolean tadpoleRidableInWater = true; public boolean tadpoleRidableInWater = true;
public boolean tadpoleControllable = true; public boolean tadpoleControllable = true;
@@ -397,7 +397,7 @@ index 14a2a57126279bb3f12d77773fe036eb713163fa..306998eeba4bbb0311697b42ae5e1b96
} }
public boolean traderLlamaRidable = false; public boolean traderLlamaRidable = false;
@@ -3113,10 +3165,20 @@ public class PurpurWorldConfig { @@ -3118,10 +3170,20 @@ public class PurpurWorldConfig {
public boolean wardenRidable = false; public boolean wardenRidable = false;
public boolean wardenRidableInWater = true; public boolean wardenRidableInWater = true;
public boolean wardenControllable = true; public boolean wardenControllable = true;

View File

@@ -46,10 +46,10 @@ index 6c7edbbf3935c40ccb78bee680ea75431718b9bd..a1b4dc70d555cce5e06c0298736d8b89
public String toString() { public String toString() {
return "Reference{" + this.key + "=" + this.value + "}"; return "Reference{" + this.key + "=" + this.value + "}";
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 02e13e84da7424598b329cf34b7203658f1ff0af..b79e27f03f67ecc01547163c053cdb96c16ce1bb 100644 index 8bb2abb01f1af34d6829cbbf759a425d871f3e3f..40bc2f9ffc565229f1ba8910ebc3bb7be5f849c6 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
@@ -1987,7 +1987,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -1983,7 +1983,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
FluidState fluidState = this.level().getFluidState(blockPos); FluidState fluidState = this.level().getFluidState(blockPos);
double d = blockPos.getY() + fluidState.getHeight(this.level(), blockPos); double d = blockPos.getY() + fluidState.getHeight(this.level(), blockPos);
if (d > eyeY) { if (d > eyeY) {

View File

@@ -8,10 +8,10 @@ avoids multiple casting in Entity#distanceTo, using Math#sqrt directly instead o
these methods more able to be inlined by the JIT compiler. 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 diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index b79e27f03f67ecc01547163c053cdb96c16ce1bb..0daece03b8b14dfa9198952064545b50a0de7d1c 100644 index 40bc2f9ffc565229f1ba8910ebc3bb7be5f849c6..3beb2b05265cf274f52170018cc22243b06c05e9 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
@@ -2197,31 +2197,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2193,31 +2193,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return new Vec3(this.xOld, this.yOld, this.zOld); return new Vec3(this.xOld, this.yOld, this.zOld);
} }
@@ -43,7 +43,7 @@ index b79e27f03f67ecc01547163c053cdb96c16ce1bb..0daece03b8b14dfa9198952064545b50
public void playerTouch(Player player) { public void playerTouch(Player player) {
} }
@@ -5233,4 +5208,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5229,4 +5204,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// Purpur end - Ridables // Purpur end - Ridables

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Paper Changes
Original license: MIT Original license: MIT
Original project: https://github.com/PurpurMC/Purpur Original project: https://github.com/PurpurMC/Purpur
Commit: 5583a3f19b75a9d07367e2ca80adbbafa9af6593 Commit: 4f481858a32b9636fcd19f539f13fb03e1bbf443
Patches listed below are removed in this patch, They exists in Gale or Leaf: Patches listed below are removed in this patch, They exists in Gale or Leaf:
* "Rebrand.patch" * "Rebrand.patch"
@@ -707,10 +707,10 @@ index 5ad91693178b5645c98804ab04a56e85a28eb426..60389075b86a7c030e59fbc4c493a4f3
+ // Purpur end - Lagging threshold + // Purpur end - Lagging threshold
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 20f709a4e8d7756375dc7742a87bdac57f1b4d1f..fca96230406e49afef4c55eb4e1b7fd4478ccbab 100644 index 284b58ece65d9cf6411a79abb748f1dfa52edc92..ba5797e9e518d7a1054bad0c7a1fb10b9eaf32bd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2372,6 +2372,50 @@ public class CraftWorld extends CraftRegionAccessor implements World { @@ -2373,6 +2373,50 @@ public class CraftWorld extends CraftRegionAccessor implements World {
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
} }
@@ -931,7 +931,7 @@ index d657fd2c507a5b215aeab0a5f3e9c2ee892a27c8..3604d92c122b5c8be823098ce7b91e57
// Paper start // Paper start
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 6d81a19741868983c54aff6c2c4c0e2bf690ba0d..dca2761fe4765c6e95b5db0d0cb5c818eb8697b4 100644 index 659f0f9c7e45e5174f4736c4878a78d330b1d4ee..0d46585c0128cea7265870de5fe260681c65d7c3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -90,6 +90,25 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { @@ -90,6 +90,25 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -7,10 +7,10 @@ Original license: MIT
Original project: https://github.com/thebrightspark/AsyncLocator Original project: https://github.com/thebrightspark/AsyncLocator
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java b/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java diff --git a/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java b/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java
index 157e5edb507d6d2a922833c70a1c27abc93c9c34..0e2f43598575d3ed80ebfcd35144d56e6affe1a7 100644 index 69cdd304d255d52c9b7dc9b6a33ffdb630b79abe..a4aa2615823d77920ff55b8aa0bcc27a54b8c3e1 100644
--- a/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java --- a/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java
+++ b/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java +++ b/src/main/java/ca/spottedleaf/moonrise/common/util/TickThread.java
@@ -101,6 +101,12 @@ public class TickThread extends Thread { @@ -105,6 +105,12 @@ public class TickThread extends Thread {
this(null, run, name); this(null, run, name);
} }