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:
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user