Updated Upstream (Pufferfish) (#1575)

Upstream has released updates that appear to apply and compile correctly

Pufferfish Changes:
pufferfish-gg/Pufferfish@c9f4e20 Final 1.20.4 Update
pufferfish-gg/Pufferfish@1f3ad02 Final 1.20.4 update, for realzies
pufferfish-gg/Pufferfish@b1ab664 Enable SIMD on java 21
pufferfish-gg/Pufferfish@0674c2b 1.21 compiles
pufferfish-gg/Pufferfish@98ea973 Fix 1.21 version checkers
pufferfish-gg/Pufferfish@68f859c Fix lambda/tick guard patch
pufferfish-gg/Pufferfish@eaa18d5 Updated Upstream (Paper)
pufferfish-gg/Pufferfish@1d72eea Updated Upstream (Paper)
pufferfish-gg/Pufferfish@1d3c743 Update pufferfish version detector stuff
pufferfish-gg/Pufferfish@5e30963 Fix crash bug
pufferfish-gg/Pufferfish@12571eb Use mojmapped paperclip jar instead (CI only)
pufferfish-gg/Pufferfish@4d16ae0 Drop a patch - moonrise includes it
pufferfish-gg/Pufferfish@52c2d05 Revert "Drop a patch - moonrise includes it"
pufferfish-gg/Pufferfish@bdb56f1 Fix entity interactions with fluids
pufferfish-gg/Pufferfish@469e5c1 Updated Upstream (Paper)
pufferfish-gg/Pufferfish@d75961f 1.21.1 Update (Updated Upstream (Paper))
This commit is contained in:
granny
2024-08-15 14:07:11 -07:00
committed by GitHub
parent 3f790ac3a7
commit 201e928fa6
346 changed files with 1012 additions and 1814 deletions

View File

@@ -1,113 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <blake.galbreath@gmail.com>
Date: Sun, 12 Jun 2022 09:18:57 -0500
Subject: [PATCH] Fix pufferfish issues
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
index 6464682e2f93659e73aca491031c8051ab000033..5a73aa17a963ae2d57e9bd5b5e3e5b0030d06216 100644
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -86,7 +86,7 @@ public class PufferfishConfig {
// Attempt to detect vectorization
try {
SIMDDetection.isEnabled = SIMDDetection.canEnable(PufferfishLogger.LOGGER);
- SIMDDetection.versionLimited = SIMDDetection.getJavaVersion() != 17 && SIMDDetection.getJavaVersion() != 18 && SIMDDetection.getJavaVersion() != 19;
+ SIMDDetection.versionLimited = SIMDDetection.getJavaVersion() < 17 || SIMDDetection.getJavaVersion() > 21;
} catch (NoClassDefFoundError | Exception ignored) {
ignored.printStackTrace();
}
@@ -94,7 +94,7 @@ public class PufferfishConfig {
if (SIMDDetection.isEnabled) {
PufferfishLogger.LOGGER.info("SIMD operations detected as functional. Will replace some operations with faster versions.");
} else if (SIMDDetection.versionLimited) {
- PufferfishLogger.LOGGER.warning("Will not enable SIMD! These optimizations are only safely supported on Java 17, Java 18, and Java 19.");
+ PufferfishLogger.LOGGER.warning("Will not enable SIMD! These optimizations are only safely supported on Java 17 through Java 21.");
} else {
PufferfishLogger.LOGGER.warning("SIMD operations are available for your server, but are not configured!");
PufferfishLogger.LOGGER.warning("To enable additional optimizations, add \"--add-modules=jdk.incubator.vector\" to your startup flags, BEFORE the \"-jar\".");
@@ -232,7 +232,7 @@ public class PufferfishConfig {
public static int activationDistanceMod;
private static void dynamicActivationOfBrains() throws IOException {
- dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", true);
+ dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", false); // Purpur
startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12,
"This value determines how far away an entity has to be",
"from the player to start being effected by DEAR.");
@@ -276,7 +276,7 @@ public class PufferfishConfig {
public static boolean throttleInactiveGoalSelectorTick;
private static void inactiveGoalSelectorThrottle() {
- throttleInactiveGoalSelectorTick = getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", true,
+ throttleInactiveGoalSelectorTick = getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", false, // Purpur
"Throttles the AI goal selector in entity inactive ticks.",
"This can improve performance by a few percent, but has minor gameplay implications.");
}
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index fbffe3dab1b7812b50df5d6bddf4fbdb2e583339..881ba370b098a4a202fbfb9c5c3d9304719d155e 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -992,7 +992,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
// Paper start - optimise random block ticking
private final BlockPos.MutableBlockPos chunkTickMutablePosition = new BlockPos.MutableBlockPos();
- // private final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(); // Pufferfish - moved to super
+ private final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(this.random.nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - moved to super // Purpur - dont break ABI
// Paper end
private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.randomTickRandom.nextInt(16); } // Pufferfish
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 1aa45e64e49ea011c2ba5e943b4e72c4f3a47176..6f7b34357788faecf8368cc9a27d26585935f789 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -825,7 +825,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void tick() {
// Pufferfish start - entity TTL
if (type != EntityType.PLAYER && type.ttl >= 0 && this.tickCount >= type.ttl) {
- discard();
+ discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DISCARD); // Purpur
return;
}
// Pufferfish end - entity TTL
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index 837f68825f601971f374be47952b23108bf66ba6..2a8a8030feefae84e394460612405887e63f2ac7 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -64,7 +64,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
if (!isLoaded) {
if (Projectile.loadedThisTick > gg.pufferfish.pufferfish.PufferfishConfig.maxProjectileLoadsPerTick) {
if (++this.loadedLifetime > gg.pufferfish.pufferfish.PufferfishConfig.maxProjectileLoadsPerProjectile) {
- this.discard();
+ this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DISCARD); // Purpur
}
return;
}
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index a82de7111915b19cdc3f065910465a5e7e843aff..fc32b6342b7553265f2a012f91f4dd9c0386f8f2 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -215,8 +215,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Paper end
public abstract ResourceKey<LevelStem> getTypeKey();
-
- protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter
+
+ //protected final io.papermc.paper.util.math.ThreadUnsafeRandom randomTickRandom = new io.papermc.paper.util.math.ThreadUnsafeRandom(java.util.concurrent.ThreadLocalRandom.current().nextLong()); public net.minecraft.util.RandomSource getThreadUnsafeRandom() { return this.randomTickRandom; } // Pufferfish - move thread unsafe random initialization // Pufferfish - getter // Purpur - dont break ABI
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, Supplier<ProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index 270a892373ecbb3982990d6201d79c8a66de4f60..d087c8271dbdfe3dc6d805539a710d37ed6d7f21 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess {
this.blockTicks = blockTickScheduler;
this.fluidTicks = fluidTickScheduler;
- this.lightningTick = this.level.getThreadUnsafeRandom().nextInt(100000) << 1; // Pufferfish - initialize lightning tick
+ this.lightningTick = java.util.concurrent.ThreadLocalRandom.current().nextInt(100000) << 1; // Pufferfish - initialize lightning tick // Purpur - any random will do
}
// CraftBukkit start

View File

@@ -20,10 +20,10 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 04853c43b99951bf0d4c96ef73724625bdaf018f..9164120d299d062c62529a7ef74eac0ded367993 100644 index 540fe7e2c110e79c3742f229b3ed8c54b101d260..07945418e95cbe07c45bfa815d828fa311c7f033 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -51,6 +51,7 @@ dependencies { @@ -52,6 +52,7 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-logger-slf4j") apiAndDocs("net.kyori:adventure-text-logger-slf4j")
api("org.apache.logging.log4j:log4j-api:$log4jVersion") api("org.apache.logging.log4j:log4j-api:$log4jVersion")
api("org.slf4j:slf4j-api:$slf4jVersion") api("org.slf4j:slf4j-api:$slf4jVersion")
@@ -31,7 +31,7 @@ index 04853c43b99951bf0d4c96ef73724625bdaf018f..9164120d299d062c62529a7ef74eac0d
implementation("org.ow2.asm:asm:9.7") implementation("org.ow2.asm:asm:9.7")
implementation("org.ow2.asm:asm-commons:9.7") implementation("org.ow2.asm:asm-commons:9.7")
@@ -109,6 +110,13 @@ val generateApiVersioningFile by tasks.registering { @@ -130,6 +131,13 @@ val generateApiVersioningFile by tasks.registering {
} }
} }
@@ -214,7 +214,7 @@ index 0000000000000000000000000000000000000000..10310fdd53de28efb8a8250f6d3b0c8e
+} +}
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..ab5fea0b03224bf249352ce340e94704ff713345 index 0000000000000000000000000000000000000000..3441cdad70da1bd523c5933b1a914688718c2657
--- /dev/null --- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java +++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java
@@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
@@ -235,7 +235,7 @@ index 0000000000000000000000000000000000000000..ab5fea0b03224bf249352ce340e94704
+ @Deprecated + @Deprecated
+ public static boolean canEnable(Logger logger) { + public static boolean canEnable(Logger logger) {
+ try { + try {
+ if (SIMDDetection.getJavaVersion() != 17 && SIMDDetection.getJavaVersion() != 18 && SIMDDetection.getJavaVersion() != 19) { + if (SIMDDetection.getJavaVersion() < 17 || SIMDDetection.getJavaVersion() > 21) {
+ return false; + return false;
+ } else { + } else {
+ SIMDDetection.testRun = true; + SIMDDetection.testRun = true;
@@ -426,10 +426,10 @@ index c80faa079eca1564847070f0338fc98024639829..e632d51d3487eb4807243b6705999ad1
} }
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index fc2dae69165776d08274e34a69962cc70445f411..899d67fa782fac639fe7fb096e05c551d75bd647 100644 index 003bece642b682985625db93cad93026352bfc66..e8ba4f1108f2548a487877027e37d81fc150e042 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -584,7 +584,9 @@ public final class SimplePluginManager implements PluginManager { @@ -597,7 +597,9 @@ public final class SimplePluginManager implements PluginManager {
// Paper start // Paper start
private void handlePluginException(String msg, Throwable ex, Plugin plugin) { private void handlePluginException(String msg, Throwable ex, Plugin plugin) {
@@ -439,7 +439,7 @@ index fc2dae69165776d08274e34a69962cc70445f411..899d67fa782fac639fe7fb096e05c551
callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerPluginEnableDisableException(msg, ex, plugin))); callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerPluginEnableDisableException(msg, ex, plugin)));
} }
// Paper end // Paper end
@@ -654,9 +656,11 @@ public final class SimplePluginManager implements PluginManager { @@ -667,9 +669,11 @@ public final class SimplePluginManager implements PluginManager {
)); ));
} }
} catch (Throwable ex) { } catch (Throwable ex) {

View File

@@ -4,21 +4,26 @@ Date: Tue, 4 Jan 2022 23:05:41 -0600
Subject: [PATCH] Fix pufferfish issues Subject: [PATCH] Fix pufferfish issues
diff --git a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java
index ab5fea0b03224bf249352ce340e94704ff713345..3441cdad70da1bd523c5933b1a914688718c2657 100644 index 9df9d09aa477d4cd3c496ba0933c816df1ef0964..2655f98322bcab8622e5f84db1085c3b1f5174b7 100644
--- a/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java --- a/src/main/java/io/papermc/paper/ServerBuildInfo.java
+++ b/src/main/java/gg/pufferfish/pufferfish/simd/SIMDChecker.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java
@@ -15,7 +15,7 @@ public class SIMDChecker { @@ -18,6 +18,13 @@ public interface ServerBuildInfo {
@Deprecated */
public static boolean canEnable(Logger logger) { Key BRAND_PAPER_ID = Key.key("papermc", "paper");
try {
- if (SIMDDetection.getJavaVersion() != 17 && SIMDDetection.getJavaVersion() != 18 && SIMDDetection.getJavaVersion() != 19) { + // Purpur start
+ if (SIMDDetection.getJavaVersion() < 17 || SIMDDetection.getJavaVersion() > 21) { + /**
return false; + * The brand id for Pufferfish.
} else { + */
SIMDDetection.testRun = true; + Key BRAND_PUFFERFISH_ID = Key.key("pufferfish", "pufferfish");
+ // Purpur end
+
/**
* Gets the {@code ServerBuildInfo}.
*
diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java
index 88f1ca89fa640a686231b8eec87e70419b2d73ef..d6b91c49a267c89d7df2ddee7ccfe64675d117be 100644 index b82f07a2879412f6b30643ca93a97439aa49a98a..6369124775f8b51b10476a6819969fd075cb61e1 100644
--- a/src/test/java/org/bukkit/AnnotationTest.java --- a/src/test/java/org/bukkit/AnnotationTest.java
+++ b/src/test/java/org/bukkit/AnnotationTest.java +++ b/src/test/java/org/bukkit/AnnotationTest.java
@@ -47,6 +47,10 @@ public class AnnotationTest { @@ -47,6 +47,10 @@ public class AnnotationTest {

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Rebrand
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java
index 9df9d09aa477d4cd3c496ba0933c816df1ef0964..7107eabf02d9d9b69d97c978ba421ad52031ec3f 100644 index 2655f98322bcab8622e5f84db1085c3b1f5174b7..8c2c5ea14a839c8767bbf120ae5512f65475cbb0 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java --- a/src/main/java/io/papermc/paper/ServerBuildInfo.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java
@@ -18,6 +18,13 @@ public interface ServerBuildInfo { @@ -25,6 +25,13 @@ public interface ServerBuildInfo {
*/ Key BRAND_PUFFERFISH_ID = Key.key("pufferfish", "pufferfish");
Key BRAND_PAPER_ID = Key.key("papermc", "paper"); // Purpur end
+ // Purpur start + // Purpur start
+ /** + /**

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Build System Changes
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index fd39ed209b20c927054b8482c400beeeeab460a3..6aef83558a5ef7e84873b127c3bb43a6468c9a24 100644 index 07945418e95cbe07c45bfa815d828fa311c7f033..b7d584c8b96eb7699e5df90ed04bf22ee256d571 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -142,6 +142,8 @@ tasks.jar { @@ -150,6 +150,8 @@ tasks.jar {
} }
tasks.withType<Javadoc> { tasks.withType<Javadoc> {

View File

@@ -50,7 +50,7 @@ index 54704da43cf9c429f3914f0580246dde99aa93c0..e1a677cfde05aba487a09e34e170fea6
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index 8bbd98ea729755e7666403b96f277fd419560951..cb37a8af9e54349fc8a3eb70bbe2fddaaa3767d6 100644 index b3abe3bde05d4a360e31e490bff8a859dc2bd4a6..9b8b958ce181b60eb5db89d4720380153152a2ac 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java --- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -19,6 +19,17 @@ import org.bukkit.inventory.meta.ItemMeta; @@ -19,6 +19,17 @@ import org.bukkit.inventory.meta.ItemMeta;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add log suppression for LibraryLoader
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index eaefbb00e9993d54906cc8cf35cf753c0d6c7707..f1e58639213be0c43cd2ff090b625e7d0a67e8be 100644 index 301e82369603f3dd6e6c1bd380da4bacacd7ef6c..0c6ca7588fb3d6b6497ddf032fe75e5c6c9719e5 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -55,6 +55,7 @@ public final class JavaPluginLoader implements PluginLoader { @@ -55,6 +55,7 @@ public final class JavaPluginLoader implements PluginLoader {

View File

@@ -0,0 +1,113 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@Gmail.com>
Date: Tue, 4 Jan 2022 23:05:41 -0600
Subject: [PATCH] Fix pufferfish issues
diff --git a/build.gradle.kts b/build.gradle.kts
index fd1ac5dbc39068d4332fd264f3359e4845e529e1..f138c6fb5410c416d6af4d49ae51c9ac840515d6 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -49,7 +49,7 @@ dependencies {
// Pufferfish start
implementation("org.yaml:snakeyaml:1.32")
- implementation ("me.carleslc.Simple-YAML:Simple-Yaml:1.8.4") {
+ implementation ("com.github.carleslc.Simple-YAML:Simple-Yaml:1.8.4") { // Purpur
exclude(group="org.yaml", module="snakeyaml")
}
// Pufferfish end
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
index d63994b04e8848c620024c148f72af9095cd93a3..92685ae1288fa509301c696bd7e49fcdab8062af 100644
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -232,7 +232,7 @@ public class PufferfishConfig {
public static int activationDistanceMod;
private static void dynamicActivationOfBrains() throws IOException {
- dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", true);
+ dearEnabled = getBoolean("dab.enabled", "activation-range.enabled", false); // Purpur
startDistance = getInt("dab.start-distance", "activation-range.start-distance", 12,
"This value determines how far away an entity has to be",
"from the player to start being effected by DEAR.");
@@ -276,7 +276,7 @@ public class PufferfishConfig {
public static boolean throttleInactiveGoalSelectorTick;
private static void inactiveGoalSelectorThrottle() {
- throttleInactiveGoalSelectorTick = getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", true,
+ throttleInactiveGoalSelectorTick = getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", false, // Purpur
"Throttles the AI goal selector in entity inactive ticks.",
"This can improve performance by a few percent, but has minor gameplay implications.");
}
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
index 790bad0494454ca12ee152e3de6da3da634d9b20..bf1aacdfac2d501c62038a22cb9eac7f9b946619 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
@@ -31,6 +31,7 @@ public record ServerBuildInfoImpl(
private static final String ATTRIBUTE_GIT_COMMIT = "Git-Commit";
private static final String BRAND_PAPER_NAME = "Paper";
+ private static final String BRAND_PUFFERFISH_NAME = "Pufferfish"; // Purpur
private static final String BUILD_DEV = "DEV";
@@ -42,9 +43,9 @@ public record ServerBuildInfoImpl(
this(
getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID)
.map(Key::key)
- .orElse(BRAND_PAPER_ID),
+ .orElse(BRAND_PUFFERFISH_ID), // Purpur
getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME)
- .orElse(BRAND_PAPER_NAME),
+ .orElse(BRAND_PUFFERFISH_NAME), // Purpur
SharedConstants.getCurrentVersion().getId(),
SharedConstants.getCurrentVersion().getName(),
getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER)
@@ -61,7 +62,7 @@ public record ServerBuildInfoImpl(
@Override
public boolean isBrandCompatible(final @NotNull Key brandId) {
- return brandId.equals(this.brandId);
+ return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID); // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3f7812c55dae82433336d6e091aa83434615fa04..52af2341b1ce1ee358d60505f34018a5acd09176 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -850,7 +850,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
public void tick() {
// Pufferfish start - entity TTL
if (type != EntityType.PLAYER && type.ttl >= 0 && this.tickCount >= type.ttl) {
- discard();
+ discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DISCARD); // Purpur
return;
}
// Pufferfish end - entity TTL
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index a694fe9cffe96fc425bbd29af430f67813ff8e8c..369452f3392b53a1e7e8b6e0e2048bc71274f439 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -71,7 +71,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
if (!isLoaded) {
if (Projectile.loadedThisTick > gg.pufferfish.pufferfish.PufferfishConfig.maxProjectileLoadsPerTick) {
if (++this.loadedLifetime > gg.pufferfish.pufferfish.PufferfishConfig.maxProjectileLoadsPerProjectile) {
- this.discard();
+ this.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DISCARD); // Purpur
}
return;
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
index 8ccd3b8fcaa80f60b91a6c066e312542d349246a..db4bd5d94ba58ad0457bfd957f708f5354ce669b 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -130,7 +130,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p
this.defaultBlockState = empty ? VOID_AIR_BLOCKSTATE : AIR_BLOCKSTATE;
// Paper end - get block chunk optimisation
- this.lightningTick = new java.util.Random().nextInt(100000) << 1; // Pufferfish - initialize lightning tick
+ this.lightningTick = java.util.concurrent.ThreadLocalRandom.current().nextInt(100000) << 1; // Pufferfish - initialize lightning tick // Purpur - any random will do
}
// CraftBukkit start

View File

@@ -5,21 +5,21 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 421f6b3dc8890d63d2e7aa774d0bf8f7e15890ab..409a46eb82262b00a626683072f2734255f2c2b8 100644 index f138c6fb5410c416d6af4d49ae51c9ac840515d6..97a4a54dfa74df7aafd9df5a0f2fdac72471c2d5 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) { @@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
val alsoShade: Configuration by configurations.creating val alsoShade: Configuration by configurations.creating
dependencies { dependencies {
- implementation(project(":paper-api")) - implementation(project(":pufferfish-api")) // Pufferfish // Paper
+ implementation(project(":purpur-api")) // Purpur + implementation(project(":purpur-api")) // Pufferfish // Paper // Purpur
// Paper start // Paper start
implementation("org.jline:jline-terminal-jansi:3.21.0") implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("net.minecrell:terminalconsoleappender:1.3.0") implementation("net.minecrell:terminalconsoleappender:1.3.0")
@@ -47,6 +47,10 @@ dependencies { @@ -54,6 +54,10 @@ dependencies {
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18") }
runtimeOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18") // Pufferfish end
+ implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur + implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur
+ implementation("org.mozilla:rhino-engine:1.7.14") // Purpur + implementation("org.mozilla:rhino-engine:1.7.14") // Purpur
@@ -28,27 +28,27 @@ index 421f6b3dc8890d63d2e7aa774d0bf8f7e15890ab..409a46eb82262b00a626683072f27342
testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2") testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
testImplementation("org.hamcrest:hamcrest:2.2") testImplementation("org.hamcrest:hamcrest:2.2")
@@ -84,14 +88,14 @@ tasks.jar { @@ -99,14 +103,14 @@ tasks.jar {
val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper
attributes( attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main", "Main-Class" to "org.bukkit.craftbukkit.Main",
- "Implementation-Title" to "Paper", - "Implementation-Title" to "Pufferfish", // Pufferfish
+ "Implementation-Title" to "Purpur", // Purpur + "Implementation-Title" to "Purpur", // Pufferfish // Purpur
"Implementation-Version" to implementationVersion, "Implementation-Version" to implementationVersion,
"Implementation-Vendor" to date, // Paper "Implementation-Vendor" to date, // Paper
- "Specification-Title" to "Paper", - "Specification-Title" to "Pufferfish", // Pufferfish
+ "Specification-Title" to "Purpur", // Purpur + "Specification-Title" to "Purpur", // Pufferfish // Purpur
"Specification-Version" to project.version, "Specification-Version" to project.version,
- "Specification-Vendor" to "Paper Team", - "Specification-Vendor" to "Pufferfish Studios LLC", // Pufferfish
- "Brand-Id" to "papermc:paper", - "Brand-Id" to "pufferfish:pufferfish", // Pufferfish
- "Brand-Name" to "Paper", - "Brand-Name" to "Pufferfish", // Pufferfish
+ "Specification-Vendor" to "Purpur Team", // Purpur + "Specification-Vendor" to "Purpur Team", // Pufferfish // Purpur
+ "Brand-Id" to "purpurmc:purpur", // Purpur + "Brand-Id" to "purpurmc:purpur", // Pufferfish // Purpur
+ "Brand-Name" to "Purpur", // Purpur + "Brand-Name" to "Purpur", // Pufferfish // Purpur
"Build-Number" to (build ?: ""), "Build-Number" to (build ?: ""),
"Build-Time" to Instant.now().toString(), "Build-Time" to Instant.now().toString(),
"Git-Branch" to gitBranch, // Paper "Git-Branch" to gitBranch, // Paper
@@ -148,7 +152,7 @@ fun TaskContainer.registerRunTask( @@ -163,7 +167,7 @@ fun TaskContainer.registerRunTask(
name: String, name: String,
block: JavaExec.() -> Unit block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) { ): TaskProvider<JavaExec> = register<JavaExec>(name) {
@@ -151,35 +151,35 @@ index c5d5648f4ca603ef2b1df723b58f9caf4dd3c722..3cb56595822799926a8141e60a42f5d1
.completer(new ConsoleCommandCompleter(this.server)) .completer(new ConsoleCommandCompleter(this.server))
.option(LineReader.Option.COMPLETE_IN_WORD, true); .option(LineReader.Option.COMPLETE_IN_WORD, true);
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
index 790bad0494454ca12ee152e3de6da3da634d9b20..a6e5950b5875cafd734300cdfbf58f5d3736f3c8 100644 index bf1aacdfac2d501c62038a22cb9eac7f9b946619..3099c21ee589acf6edff5903a23673adf489024f 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java --- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java +++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
@@ -31,6 +31,7 @@ public record ServerBuildInfoImpl( @@ -32,6 +32,7 @@ public record ServerBuildInfoImpl(
private static final String ATTRIBUTE_GIT_COMMIT = "Git-Commit";
private static final String BRAND_PAPER_NAME = "Paper"; private static final String BRAND_PAPER_NAME = "Paper";
private static final String BRAND_PUFFERFISH_NAME = "Pufferfish"; // Purpur
+ private static final String BRAND_PURPUR_NAME = "Purpur"; // Purpur + private static final String BRAND_PURPUR_NAME = "Purpur"; // Purpur
private static final String BUILD_DEV = "DEV"; private static final String BUILD_DEV = "DEV";
@@ -42,9 +43,9 @@ public record ServerBuildInfoImpl( @@ -43,9 +44,9 @@ public record ServerBuildInfoImpl(
this( this(
getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID) getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID)
.map(Key::key) .map(Key::key)
- .orElse(BRAND_PAPER_ID), - .orElse(BRAND_PUFFERFISH_ID), // Purpur
+ .orElse(BRAND_PURPUR_ID), // Purpur + .orElse(BRAND_PURPUR_ID), // Purpur
getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME) getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME)
- .orElse(BRAND_PAPER_NAME), - .orElse(BRAND_PUFFERFISH_NAME), // Purpur
+ .orElse(BRAND_PURPUR_NAME), // Purpur + .orElse(BRAND_PURPUR_NAME), // Purpur
SharedConstants.getCurrentVersion().getId(), SharedConstants.getCurrentVersion().getId(),
SharedConstants.getCurrentVersion().getName(), SharedConstants.getCurrentVersion().getName(),
getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER) getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER)
@@ -61,7 +62,7 @@ public record ServerBuildInfoImpl( @@ -62,7 +63,7 @@ public record ServerBuildInfoImpl(
@Override @Override
public boolean isBrandCompatible(final @NotNull Key brandId) { public boolean isBrandCompatible(final @NotNull Key brandId) {
- return brandId.equals(this.brandId); - return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID); // Purpur
+ return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID); // Purpur + return brandId.equals(this.brandId) || brandId.equals(BRAND_PAPER_ID) || brandId.equals(BRAND_PUFFERFISH_ID); // Purpur
} }
@Override @Override
@@ -267,27 +267,27 @@ index 2f4d6b56301195f8d39ed50dffe842464065bfe1..30ddb35140ae4a6faba98c191bb8eadb
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code) // (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 41c34ffdf9d95a04ed55a1e09ebc78e8cf946777..4f25368d55496667f1dc2cb2879b6d783464292b 100644 index 00918d92a4105cc82a4d871423e516939cad951f..d85fe70212cb3203c432585e8c7ca4776338fc83 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -487,7 +487,7 @@ public final class CraftMagicNumbers implements UnsafeValues { @@ -487,7 +487,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@Override @Override
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() { public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
- return new com.destroystokyo.paper.PaperVersionFetcher(); - return new gg.pufferfish.pufferfish.PufferfishVersionFetcher(); // Pufferfish
+ return new com.destroystokyo.paper.PaperVersionFetcher(); // Purpur - TODO: Pufferfish + return new com.destroystokyo.paper.PaperVersionFetcher(); // Pufferfish // Purpur
} }
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 774556a62eb240da42e84db4502e2ed43495be17..99597258e8e88cd9e2c901c4ac3ff7faeeabee2b 100644 index 80553face9c70c2a3d897681e7761df85b22d464..99597258e8e88cd9e2c901c4ac3ff7faeeabee2b 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java --- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java +++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
@@ -11,7 +11,7 @@ public final class Versioning { @@ -11,7 +11,7 @@ public final class Versioning {
public static String getBukkitVersion() { public static String getBukkitVersion() {
String result = "Unknown-Version"; String result = "Unknown-Version";
- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/io.papermc.paper/paper-api/pom.properties"); - InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/gg.pufferfish.pufferfish/pufferfish-api/pom.properties"); // Pufferfish
+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Pufferfish // Purpur + InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.purpurmc.purpur/purpur-api/pom.properties"); // Pufferfish // Purpur
Properties properties = new Properties(); Properties properties = new Properties();

View File

@@ -5,14 +5,14 @@ Subject: [PATCH] Purpur config files
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
index 4b002e8b75d117b726b0de274a76d3596fce015b..8cde30544e14f8fc2dac32966ae3c21f8cf3a551 100644 index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f8cf3a551 100644
--- a/src/main/java/com/destroystokyo/paper/Metrics.java --- a/src/main/java/com/destroystokyo/paper/Metrics.java
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java
@@ -593,7 +593,7 @@ public class Metrics { @@ -593,7 +593,7 @@ public class Metrics {
boolean logFailedRequests = config.getBoolean("logFailedRequests", false); boolean logFailedRequests = config.getBoolean("logFailedRequests", false);
// Only start Metrics, if it's enabled in the config // Only start Metrics, if it's enabled in the config
if (config.getBoolean("enabled", true)) { if (config.getBoolean("enabled", true)) {
- Metrics metrics = new Metrics("Paper", serverUUID, logFailedRequests, Bukkit.getLogger()); - Metrics metrics = new Metrics("Pufferfish", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish
+ Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish // Purpur + Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish // Purpur
metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> { metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> {
@@ -26,11 +26,11 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..8cde30544e14f8fc2dac32966ae3c21f
- final String implVersion = org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion(); - final String implVersion = org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion();
- if (implVersion != null) { - if (implVersion != null) {
- final String buildOrHash = implVersion.substring(implVersion.lastIndexOf('-') + 1); - final String buildOrHash = implVersion.substring(implVersion.lastIndexOf('-') + 1);
- paperVersion = "git-Paper-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); - paperVersion = "git-Pufferfish-%s-%s".formatted(Bukkit.getServer().getMinecraftVersion(), buildOrHash); // Pufferfish
- } else { - } else {
- paperVersion = "unknown"; - paperVersion = "unknown";
- } - }
- metrics.addCustomChart(new Metrics.SimplePie("paper_version", () -> paperVersion)); - metrics.addCustomChart(new Metrics.SimplePie("pufferfish_version", () -> paperVersion)); // Pufferfish
+ metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur + metrics.addCustomChart(new Metrics.SimplePie("online_mode", () -> Bukkit.getOnlineMode() ? "online" : (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() ? "bungee" : "offline"))); // Purpur
+ metrics.addCustomChart(new Metrics.SimplePie("purpur_version", () -> (org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() != null) ? org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() : "unknown")); // Purpur + metrics.addCustomChart(new Metrics.SimplePie("purpur_version", () -> (org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() != null) ? org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() : "unknown")); // Purpur
@@ -72,7 +72,7 @@ index 2d344df35d47b4b1ecddf32ccaa4dae41e5f58cb..2f7ed5b38e8930b3a615f160cdf4c5b0
boolean flag1 = this.source.acceptsSuccess() && !this.silent; boolean flag1 = this.source.acceptsSuccess() && !this.silent;
boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent; boolean flag2 = broadcastToOps && this.source.shouldInformAdmins() && !this.silent;
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index dd56c8e041116ef3602a9f89c998c8208ab89b51..a96e7df92b7d45e1c6750368fda647be026f657b 100644 index 18bf9c42e76c8c35f57d74ea4adfa5b3bb53762f..ca9afa93a9c43208ef64f86d534e5540d34a6b09 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -238,6 +238,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -238,6 +238,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -89,10 +89,10 @@ index dd56c8e041116ef3602a9f89c998c8208ab89b51..a96e7df92b7d45e1c6750368fda647be
+ org.purpurmc.purpur.PurpurConfig.registerCommands(); + org.purpurmc.purpur.PurpurConfig.registerCommands();
+ // Purpur end + // Purpur end
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
gg.pufferfish.pufferfish.PufferfishConfig.load(); // Pufferfish
this.setPvpAllowed(dedicatedserverproperties.pvp); gg.pufferfish.pufferfish.PufferfishCommand.init(); // Pufferfish
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index e2a0487089eb5a7bdc1433e4c75f69d8e9f9d5f9..04953d12a6aab561b9510adad145918aee7768c1 100644 index d3cc65612c44f42ecae2e09b942438a03bc244bd..116cfd126df3ed5c6643e70912c0d6a63f4a6eb2 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -173,6 +173,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl @@ -173,6 +173,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Component related conveniences
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index ce09c4900aee5a75c0d13a7bffd97a0711ead774..37adf5d3c6248547d830248714f32dbec653d653 100644 index cb25a8796dda84fb08865a2af769fb4d10597685..ffc7f4f4544df21b713b780eded8aeba4090db52 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2005,6 +2005,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2004,6 +2004,26 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
this.lastSentExp = -1; // CraftBukkit - Added to reset this.lastSentExp = -1; // CraftBukkit - Added to reset
} }
@@ -81,10 +81,10 @@ index bb1a60180e58c1333e7bb33e8acf1b0225eda8a8..c83e80ebdbbfb2d0e08561a44486a308
return this.type().msgId(); return this.type().msgId();
} }
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 1f7594e22f0f08ae110ef9b42f15119358aa5723..78a218bf01609dffcd3741ddc7b27190af7f2731 100644 index 52af2341b1ce1ee358d60505f34018a5acd09176..9dd838972d83196dfda620b223ea17fbf7c125a4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4176,6 +4176,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4185,6 +4185,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return SlotAccess.NULL; return SlotAccess.NULL;
} }

View File

@@ -22,10 +22,10 @@ index 2767d6f97e8b314d23a8e62f22dfd396f5660d31..a64e5997b94cc8173f0512d1e282355f
super(x, y, z); super(x, y, z);
} }
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 23ddd26af762c1cd7fb3920669abb96b3213ab37..e5ae7478cf2d3ef9d484116db742dd8c5bfb74b2 100644 index 30907b63234642a4e760ae865c4a91e3162e52f2..7910506ea405498826a3150af131f5b0aac4b577 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1785,6 +1785,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1792,6 +1792,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
worldserver.updateLagCompensationTick(); // Paper - lag compensation worldserver.updateLagCompensationTick(); // Paper - lag compensation
@@ -34,7 +34,7 @@ index 23ddd26af762c1cd7fb3920669abb96b3213ab37..e5ae7478cf2d3ef9d484116db742dd8c
this.profiler.push(() -> { this.profiler.push(() -> {
String s = String.valueOf(worldserver); String s = String.valueOf(worldserver);
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 2fe9d9b38c01d04416843fdd48d3e33899b7de63..559bec25060eb8981bf80213ceedb79d6c99e411 100644 index 5a9712de8abe3c3ccd08c5699f89e3ce54b1f28d..13541b8d94981705bd32fdd8d8e9c170f9143317 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -229,6 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -229,6 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
@@ -46,7 +46,7 @@ index 2fe9d9b38c01d04416843fdd48d3e33899b7de63..559bec25060eb8981bf80213ceedb79d
public LevelChunk getChunkIfLoaded(int x, int z) { public LevelChunk getChunkIfLoaded(int x, int z) {
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 2bd74f003b132b9925002ac79ea066973c9047a4..50ff7afa040c54e538e191322146df48c6675df0 100644 index ffc7f4f4544df21b713b780eded8aeba4090db52..6cad742f0141ac0e4b4b5a1dd07874eb7588e70f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -805,6 +805,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -805,6 +805,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
@@ -66,10 +66,10 @@ index 2bd74f003b132b9925002ac79ea066973c9047a4..50ff7afa040c54e538e191322146df48
private void updatePlayerAttributes() { private void updatePlayerAttributes() {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 60ff21c8df4168f14da04a12073bde47cd4693c4..a7f7c140b2c6ee936699e25a72b7e4fcb3705b97 100644 index 301dc8ea0574f02f28067cda397683c7e7a6152f..ff97005181c2b55ffb2be6d19f27b34f26a2e20c 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2712,6 +2712,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2713,6 +2713,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -79,7 +79,7 @@ index 60ff21c8df4168f14da04a12073bde47cd4693c4..a7f7c140b2c6ee936699e25a72b7e4fc
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
entity.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it entity.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 0d54e2c5c1a65c979a1188e1cd9f61e23981dd5d..6b3a97195be55076fa287a9463e1727575b9b49b 100644 index 9dd838972d83196dfda620b223ea17fbf7c125a4..5d2d310da657963b830efa7de2486180736613f0 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -383,7 +383,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -383,7 +383,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -91,7 +91,7 @@ index 0d54e2c5c1a65c979a1188e1cd9f61e23981dd5d..6b3a97195be55076fa287a9463e17275
private float eyeHeight; private float eyeHeight;
public boolean isInPowderSnow; public boolean isInPowderSnow;
public boolean wasInPowderSnow; public boolean wasInPowderSnow;
@@ -3124,6 +3124,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3133,6 +3133,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.passengers = ImmutableList.copyOf(list); this.passengers = ImmutableList.copyOf(list);
} }
@@ -105,7 +105,7 @@ index 0d54e2c5c1a65c979a1188e1cd9f61e23981dd5d..6b3a97195be55076fa287a9463e17275
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger); this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
} }
} }
@@ -3163,6 +3170,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -3172,6 +3179,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return false; return false;
} }
// CraftBukkit end // CraftBukkit end
@@ -120,7 +120,7 @@ index 0d54e2c5c1a65c979a1188e1cd9f61e23981dd5d..6b3a97195be55076fa287a9463e17275
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) { if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of(); this.passengers = ImmutableList.of();
} else { } else {
@@ -5002,4 +5017,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -5063,4 +5078,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this); return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
} }
// Paper end - Expose entity id counter // Paper end - Expose entity id counter
@@ -190,10 +190,10 @@ index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..aa76a24421cdb3908a3544d92eb3d1e3
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..b32460d324d93fed734be5d92baf0359ad5b0a80 100644 index ce0d28cafcae0b7edc861749a1652ecc08d298b5..e7b9f129a31c57df65e9be082de1d2f31a327599 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -237,9 +237,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -236,9 +236,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected int deathScore; protected int deathScore;
public float lastHurt; public float lastHurt;
public boolean jumping; public boolean jumping;
@@ -206,7 +206,7 @@ index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..b32460d324d93fed734be5d92baf0359
protected int lerpSteps; protected int lerpSteps;
protected double lerpX; protected double lerpX;
protected double lerpY; protected double lerpY;
@@ -313,7 +313,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -312,7 +312,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.lastClimbablePos = Optional.empty(); this.lastClimbablePos = Optional.empty();
this.activeLocationDependentEnchantments = new Reference2ObjectArrayMap(); this.activeLocationDependentEnchantments = new Reference2ObjectArrayMap();
this.appliedScale = 1.0F; this.appliedScale = 1.0F;
@@ -215,7 +215,7 @@ index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..b32460d324d93fed734be5d92baf0359
this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor // CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue()); this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
@@ -363,6 +363,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -362,6 +362,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
public static AttributeSupplier.Builder createLivingAttributes() { public static AttributeSupplier.Builder createLivingAttributes() {
return AttributeSupplier.builder().add(Attributes.MAX_HEALTH).add(Attributes.KNOCKBACK_RESISTANCE).add(Attributes.MOVEMENT_SPEED).add(Attributes.ARMOR).add(Attributes.ARMOR_TOUGHNESS).add(Attributes.MAX_ABSORPTION).add(Attributes.STEP_HEIGHT).add(Attributes.SCALE).add(Attributes.GRAVITY).add(Attributes.SAFE_FALL_DISTANCE).add(Attributes.FALL_DAMAGE_MULTIPLIER).add(Attributes.JUMP_STRENGTH).add(Attributes.OXYGEN_BONUS).add(Attributes.BURNING_TIME).add(Attributes.EXPLOSION_KNOCKBACK_RESISTANCE).add(Attributes.WATER_MOVEMENT_EFFICIENCY).add(Attributes.MOVEMENT_EFFICIENCY).add(Attributes.ATTACK_KNOCKBACK); return AttributeSupplier.builder().add(Attributes.MAX_HEALTH).add(Attributes.KNOCKBACK_RESISTANCE).add(Attributes.MOVEMENT_SPEED).add(Attributes.ARMOR).add(Attributes.ARMOR_TOUGHNESS).add(Attributes.MAX_ABSORPTION).add(Attributes.STEP_HEIGHT).add(Attributes.SCALE).add(Attributes.GRAVITY).add(Attributes.SAFE_FALL_DISTANCE).add(Attributes.FALL_DAMAGE_MULTIPLIER).add(Attributes.JUMP_STRENGTH).add(Attributes.OXYGEN_BONUS).add(Attributes.BURNING_TIME).add(Attributes.EXPLOSION_KNOCKBACK_RESISTANCE).add(Attributes.WATER_MOVEMENT_EFFICIENCY).add(Attributes.MOVEMENT_EFFICIENCY).add(Attributes.ATTACK_KNOCKBACK);
} }
@@ -223,7 +223,7 @@ index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..b32460d324d93fed734be5d92baf0359
@Override @Override
protected void checkFallDamage(double heightDifference, boolean onGround, BlockState state, BlockPos landedPosition) { protected void checkFallDamage(double heightDifference, boolean onGround, BlockState state, BlockPos landedPosition) {
@@ -3553,8 +3554,10 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -3579,8 +3580,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.pushEntities(); this.pushEntities();
this.level().getProfiler().pop(); this.level().getProfiler().pop();
// Paper start - Add EntityMoveEvent // Paper start - Add EntityMoveEvent
@@ -236,7 +236,7 @@ index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..b32460d324d93fed734be5d92baf0359
Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO); Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
Location to = new Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot()); Location to = new Location(this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone()); io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
@@ -3564,6 +3567,21 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -3590,6 +3593,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch()); this.absMoveTo(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
} }
} }
@@ -259,7 +259,7 @@ index ccd9dff20a60f019e0c320acfb526b8bf3e5f806..b32460d324d93fed734be5d92baf0359
// Paper end - Add EntityMoveEvent // Paper end - Add EntityMoveEvent
if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index bd7c6ce15698aed70376c109ba36f52d6794a2f8..99b227dc5940ddc16d41b2e37c4683268b9e4112 100644 index 7c207bd1da82255bf504f9212c08201fe9389f1a..9010da67e2a20c58195d8a49244d6850468fb153 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java --- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -160,8 +160,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -160,8 +160,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -273,7 +273,7 @@ index bd7c6ce15698aed70376c109ba36f52d6794a2f8..99b227dc5940ddc16d41b2e37c468326
this.jumpControl = new JumpControl(this); this.jumpControl = new JumpControl(this);
this.bodyRotationControl = this.createBodyControl(); this.bodyRotationControl = this.createBodyControl();
this.navigation = this.createNavigation(world); this.navigation = this.createNavigation(world);
@@ -1504,7 +1504,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1510,7 +1510,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
protected InteractionResult mobInteract(Player player, InteractionHand hand) { protected InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -282,7 +282,7 @@ index bd7c6ce15698aed70376c109ba36f52d6794a2f8..99b227dc5940ddc16d41b2e37c468326
} }
public boolean isWithinRestriction() { public boolean isWithinRestriction() {
@@ -1802,4 +1802,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab @@ -1808,4 +1808,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
} }
@@ -340,13 +340,13 @@ index bd7c6ce15698aed70376c109ba36f52d6794a2f8..99b227dc5940ddc16d41b2e37c468326
+ // Purpur end + // Purpur end
} }
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
index 69992ebc999ea3ff9e47e4e049bcc514c01150ca..1ec4ba9799cccb6337a63d8287e269b102f59aa1 100644 index 2c9aab24b51d2f0a50100089fe72093b501d383a..00346f83e71193d1378937d51c5e846edcf7e7ba 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java --- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java +++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
@@ -23,14 +23,21 @@ public class AttributeMap { @@ -24,15 +24,22 @@ public class AttributeMap {
private final Set<AttributeInstance> attributesToSync = new ObjectOpenHashSet<>();
private final Set<AttributeInstance> attributesToUpdate = new ObjectOpenHashSet<>(); private final Set<AttributeInstance> attributesToUpdate = new ObjectOpenHashSet<>();
private final AttributeSupplier supplier; private final AttributeSupplier supplier;
private final java.util.function.Function<Holder<Attribute>, AttributeInstance> createInstance; // Pufferfish
+ private final net.minecraft.world.entity.LivingEntity entity; // Purpur + private final net.minecraft.world.entity.LivingEntity entity; // Purpur
public AttributeMap(AttributeSupplier defaultAttributes) { public AttributeMap(AttributeSupplier defaultAttributes) {
@@ -357,6 +357,7 @@ index 69992ebc999ea3ff9e47e4e049bcc514c01150ca..1ec4ba9799cccb6337a63d8287e269b1
+ this.entity = entity; + this.entity = entity;
+ // Purpur end + // Purpur end
this.supplier = defaultAttributes; this.supplier = defaultAttributes;
this.createInstance = attributex -> this.supplier.createInstance(this::onAttributeModified, attributex); // Pufferfish
} }
private void onAttributeModified(AttributeInstance instance) { private void onAttributeModified(AttributeInstance instance) {
@@ -366,7 +367,7 @@ index 69992ebc999ea3ff9e47e4e049bcc514c01150ca..1ec4ba9799cccb6337a63d8287e269b1
this.attributesToSync.add(instance); this.attributesToSync.add(instance);
} }
} }
@@ -44,7 +51,7 @@ public class AttributeMap { @@ -46,7 +53,7 @@ public class AttributeMap {
} }
public Collection<AttributeInstance> getSyncableAttributes() { public Collection<AttributeInstance> getSyncableAttributes() {
@@ -374,7 +375,7 @@ index 69992ebc999ea3ff9e47e4e049bcc514c01150ca..1ec4ba9799cccb6337a63d8287e269b1
+ return this.attributes.values().stream().filter(attribute -> attribute.getAttribute().value().isClientSyncable() && (entity == null || entity.shouldSendAttribute(attribute.getAttribute().value()))).collect(Collectors.toList()); // Purpur + return this.attributes.values().stream().filter(attribute -> attribute.getAttribute().value().isClientSyncable() && (entity == null || entity.shouldSendAttribute(attribute.getAttribute().value()))).collect(Collectors.toList()); // Purpur
} }
@Nullable
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
index 10a1434313b11dae8210484583c6bf3b627416f7..35af18f371b3beaf81fcdca79fefe85e0a862b50 100644 index 10a1434313b11dae8210484583c6bf3b627416f7..35af18f371b3beaf81fcdca79fefe85e0a862b50 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java --- a/src/main/java/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
@@ -436,7 +437,7 @@ index fbfc2f2515ad709b2c1212aef9521e795547d66b..e77bd11af62682d5eca41f6c9e1aed30
this.lookAtCooldown--; this.lookAtCooldown--;
this.getYRotD().ifPresent(yaw -> this.mob.yHeadRot = this.rotateTowards(this.mob.yHeadRot, yaw + 20.0F, this.yMaxRotSpeed)); this.getYRotD().ifPresent(yaw -> this.mob.yHeadRot = this.rotateTowards(this.mob.yHeadRot, yaw + 20.0F, this.yMaxRotSpeed));
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index dc27ddf5131e7398a5390a5187261d4c7fb6ccaa..c4a09778ca6bf5c15b588234bcadec3496017e3d 100644 index e44af851263f27aa0009b14a60bb2d0642a5ce74..082fa26528d3861702db423db092c1cea3cc7c2c 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -44,12 +44,59 @@ public class Bat extends AmbientCreature { @@ -44,12 +44,59 @@ public class Bat extends AmbientCreature {
@@ -2011,7 +2012,7 @@ index 22024d79b566ad5d388ceb644605ada3123ca608..9f2d7ea463f663c0706ebaf73d140aa5
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers());
diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
index 69986f75d3cf729204cca0c7e5428536af31f695..49dccfc0010b5727250f7e27591502408c903739 100644 index 98a759dbe46e2ead39af0f340c9b73c8f4ddce1e..9071ef2a5751bd691cd1ef85e3889e54a3f8bf8b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
+++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
@@ -102,10 +102,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @@ -102,10 +102,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@@ -2068,11 +2069,12 @@ index 69986f75d3cf729204cca0c7e5428536af31f695..49dccfc0010b5727250f7e2759150240
@Override @Override
protected Brain.Provider<Allay> brainProvider() { protected Brain.Provider<Allay> brainProvider() {
return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES); return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES);
@@ -220,6 +255,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @@ -221,7 +256,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
this.level().getProfiler().push("allayBrain"); this.level().getProfiler().push("allayBrain");
+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level(), this); this.getBrain().tick((ServerLevel) this.level(), this);
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("allayActivityUpdate"); this.level().getProfiler().push("allayActivityUpdate");
@@ -2105,7 +2107,7 @@ index 729fd2d52dd48e25ee7a077a3ffafc80ecef7c9f..8fcaf6860ad3c21ea13649219b91a1eb
protected void defineSynchedData(SynchedEntityData.Builder builder) { protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder); super.defineSynchedData(builder);
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 01a0731e92d39c8718538244e34a271fb8717fc2..384fb16dac5eede49d89ad9fdcddcec442f0e7ca 100644 index 44937570f8e968ba4fe2822f69ca8f09679da89d..9165585d212ad624d5973203c372dd4ff55e64c9 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -97,6 +97,23 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -97,6 +97,23 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -2132,15 +2134,16 @@ index 01a0731e92d39c8718538244e34a271fb8717fc2..384fb16dac5eede49d89ad9fdcddcec4
@Override @Override
public Map<String, Vector3f> getModelRotationValues() { public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues; return this.modelRotationValues;
@@ -272,6 +289,7 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -273,7 +290,7 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
this.level().getProfiler().push("axolotlBrain"); this.level().getProfiler().push("axolotlBrain");
+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level(), this); this.getBrain().tick((ServerLevel) this.level(), this);
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("axolotlActivityUpdate"); this.level().getProfiler().push("axolotlActivityUpdate");
@@ -497,14 +515,22 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -499,14 +516,22 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
private static class AxolotlMoveControl extends SmoothSwimmingMoveControl { private static class AxolotlMoveControl extends SmoothSwimmingMoveControl {
private final Axolotl axolotl; private final Axolotl axolotl;
@@ -2163,7 +2166,7 @@ index 01a0731e92d39c8718538244e34a271fb8717fc2..384fb16dac5eede49d89ad9fdcddcec4
if (!this.axolotl.isPlayingDead()) { if (!this.axolotl.isPlayingDead()) {
super.tick(); super.tick();
} }
@@ -519,9 +545,9 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -521,9 +546,9 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
} }
@Override @Override
@@ -2194,7 +2197,7 @@ index 8941752e4600ccd11b3fa1147b2e414785589eed..8fd7e6308b99328dce559d9140cbe182
public void addAdditionalSaveData(CompoundTag nbt) { public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt); super.addAdditionalSaveData(nbt);
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
index 816977990639ec0559b652fc9666afd5046f0a5d..b6a4b4e66ca67e4dcb4b14a13ab6586a94e1b020 100644 index 714703519965e8dae42be7442f292b581cc7c049..d3983b69bacd30b548b110feb1946cc55b83efb9 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -103,6 +103,8 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> { @@ -103,6 +103,8 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> {
@@ -2262,15 +2265,16 @@ index 816977990639ec0559b652fc9666afd5046f0a5d..b6a4b4e66ca67e4dcb4b14a13ab6586a
@Override @Override
protected Brain.Provider<Frog> brainProvider() { protected Brain.Provider<Frog> brainProvider() {
@@ -184,6 +234,7 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> { @@ -185,7 +235,7 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> {
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
this.level().getProfiler().push("frogBrain"); this.level().getProfiler().push("frogBrain");
+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel)this.level(), this); this.getBrain().tick((ServerLevel)this.level(), this);
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("frogActivityUpdate"); this.level().getProfiler().push("frogActivityUpdate");
@@ -371,7 +422,7 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> { @@ -373,7 +423,7 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> {
return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos); return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos);
} }
@@ -2280,7 +2284,7 @@ index 816977990639ec0559b652fc9666afd5046f0a5d..b6a4b4e66ca67e4dcb4b14a13ab6586a
super(entity); super(entity);
} }
diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
index 43046f4a0cff620834ac4647efdcde227185b2ff..057096c5252e86d828a69080bdc70538e516ce99 100644 index 90393485ebcf8a4c8c74802fff942b1af8cfbf00..b05276065c977ea5eae3e74d15b2b5c90e352e61 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
@@ -51,13 +51,50 @@ public class Tadpole extends AbstractFish { @@ -51,13 +51,50 @@ public class Tadpole extends AbstractFish {
@@ -2335,16 +2339,17 @@ index 43046f4a0cff620834ac4647efdcde227185b2ff..057096c5252e86d828a69080bdc70538
@Override @Override
protected PathNavigation createNavigation(Level world) { protected PathNavigation createNavigation(Level world) {
return new WaterBoundPathNavigation(this, world); return new WaterBoundPathNavigation(this, world);
@@ -86,6 +123,7 @@ public class Tadpole extends AbstractFish { @@ -87,7 +124,7 @@ public class Tadpole extends AbstractFish {
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
this.level().getProfiler().push("tadpoleBrain"); this.level().getProfiler().push("tadpoleBrain");
+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level(), this); this.getBrain().tick((ServerLevel) this.level(), this);
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("tadpoleActivityUpdate"); this.level().getProfiler().push("tadpoleActivityUpdate");
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
index 376bcbc189008464f4d518c1e07643431ba96306..691f5020df77b01523d1e292be40552089e2f538 100644 index 07bdea8a7d6706839a758afe0242202c7e841416..ca68973e851ae933015d5dbcbca7b48f872ddd07 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -91,6 +91,23 @@ public class Goat extends Animal { @@ -91,6 +91,23 @@ public class Goat extends Animal {
@@ -2371,11 +2376,12 @@ index 376bcbc189008464f4d518c1e07643431ba96306..691f5020df77b01523d1e292be405520
@Override @Override
protected Brain.Provider<Goat> brainProvider() { protected Brain.Provider<Goat> brainProvider() {
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES); return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
@@ -193,6 +210,7 @@ public class Goat extends Animal { @@ -194,7 +211,7 @@ public class Goat extends Animal {
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
this.level().getProfiler().push("goatBrain"); this.level().getProfiler().push("goatBrain");
+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level(), this); this.getBrain().tick((ServerLevel) this.level(), this);
this.level().getProfiler().pop(); this.level().getProfiler().pop();
this.level().getProfiler().push("goatActivityUpdate"); this.level().getProfiler().push("goatActivityUpdate");
@@ -2833,7 +2839,7 @@ index 5868d2e9e05a698c77117cf87c79b636b50fe289..0c9defe9651e3281172d70a154cd06e3
this.dragonFight.updateDragon(this); this.dragonFight.updateDragon(this);
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index d3b4d492aee380dc17f4232d90eaae4f07bb9f86..b3c52d0b74528136523f5194acac14cc3421ef73 100644 index 82921c56c49edb0ca07425da563aa4876d4e6fb1..229f66dec52fbc50401294e83634ac950fd75941 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -88,16 +88,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -88,16 +88,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -2983,7 +2989,7 @@ index d3b4d492aee380dc17f4232d90eaae4f07bb9f86..b3c52d0b74528136523f5194acac14cc
this.targetSelector.addGoal(1, new HurtByTargetGoal(this, new Class[0])); this.targetSelector.addGoal(1, new HurtByTargetGoal(this, new Class[0]));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 0, false, false, WitherBoss.LIVING_ENTITY_SELECTOR)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 0, false, false, WitherBoss.LIVING_ENTITY_SELECTOR));
} }
@@ -263,6 +378,16 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -270,6 +385,16 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
@@ -3000,7 +3006,7 @@ index d3b4d492aee380dc17f4232d90eaae4f07bb9f86..b3c52d0b74528136523f5194acac14cc
int i; int i;
if (this.getInvulnerableTicks() > 0) { if (this.getInvulnerableTicks() > 0) {
@@ -580,11 +705,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -587,11 +712,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
} }
public int getAlternativeTarget(int headIndex) { public int getAlternativeTarget(int headIndex) {
@@ -3372,7 +3378,7 @@ index fd995b1f29c47884e9db2cb92f1dd615d62ae032..430899602940aa04c21d45ae94bcc506
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 828c51477cd8f35d591367b30bf4feef6a250292..d77e4a354983b6d6c4d5bbc37d886193af396dff 100644 index ace4959f818bf56882b290d109b8b97f2c145631..6cc64bb79abeb49040d008b1db0be263e3dfc787 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -95,9 +95,27 @@ public class EnderMan extends Monster implements NeutralMob { @@ -95,9 +95,27 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -3420,7 +3426,7 @@ index 828c51477cd8f35d591367b30bf4feef6a250292..d77e4a354983b6d6c4d5bbc37d886193
float f = this.getLightLevelDependentMagicValue(); float f = this.getLightLevelDependentMagicValue();
if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper - EndermanEscapeEvent if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper - EndermanEscapeEvent
@@ -396,6 +415,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -402,6 +421,7 @@ public class EnderMan extends Monster implements NeutralMob {
public boolean hurt(DamageSource source, float amount) { public boolean hurt(DamageSource source, float amount) {
if (this.isInvulnerableTo(source)) { if (this.isInvulnerableTo(source)) {
return false; return false;
@@ -4753,7 +4759,7 @@ index 10388cf33f6f33070aa84b3b2d7bd14fc50ceea8..18e6a56da9f714f4e5b78ec63df6cf31
public void setPersistentAngerTarget(@Nullable UUID angryAt) { public void setPersistentAngerTarget(@Nullable UUID angryAt) {
this.persistentAngerTarget = angryAt; this.persistentAngerTarget = angryAt;
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index d5e0c493f4c348724958193795ceb987765a465f..a2c0f73c84651f713781deaaa588a3c704eb32b3 100644 index 7de73564bc73d6504e18977e97a2ef5f46189e15..e182291061d64ea9922647aa4778856390c5a215 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -90,6 +90,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -90,6 +90,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -4780,16 +4786,17 @@ index d5e0c493f4c348724958193795ceb987765a465f..a2c0f73c84651f713781deaaa588a3c7
@Override @Override
public boolean canBeLeashed() { public boolean canBeLeashed() {
return true; return true;
@@ -156,6 +173,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -157,7 +174,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
this.level().getProfiler().push("hoglinBrain"); this.level().getProfiler().push("hoglinBrain");
+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel)this.level(), this); this.getBrain().tick((ServerLevel)this.level(), this);
this.level().getProfiler().pop(); this.level().getProfiler().pop();
HoglinAi.updateActivity(this); HoglinAi.updateActivity(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index bc58323801ee16fe9b63c21332144ec002a902f2..a8df353eef6ab0dc2a6bd4242f6b85af91444ae9 100644 index b2ae7088f90bf3cd04a59c6ddfdba60c58c6e1c8..fbf1109833abaf7bbfa7956431102cd533ae9d3c 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -93,6 +93,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -93,6 +93,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -4816,11 +4823,12 @@ index bc58323801ee16fe9b63c21332144ec002a902f2..a8df353eef6ab0dc2a6bd4242f6b85af
@Override @Override
public void addAdditionalSaveData(CompoundTag nbt) { public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt); super.addAdditionalSaveData(nbt);
@@ -296,6 +313,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -297,7 +314,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@Override @Override
protected void customServerAiStep() { protected void customServerAiStep() {
this.level().getProfiler().push("piglinBrain"); this.level().getProfiler().push("piglinBrain");
+ //if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish - if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level(), this); this.getBrain().tick((ServerLevel) this.level(), this);
this.level().getProfiler().pop(); this.level().getProfiler().pop();
PiglinAi.updateActivity(this); PiglinAi.updateActivity(this);
@@ -4861,7 +4869,7 @@ index fcadd7f28ccb81bbb36e97d8b8d8a8ba3f3d6a16..17e2457bc83e7ee4402c10ee7d2ef5aa
this.level().getProfiler().pop(); this.level().getProfiler().pop();
PiglinBruteAi.updateActivity(this); PiglinBruteAi.updateActivity(this);
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index 38bf417a9ad4647f4af24d969f3bf4fed9c4bad7..ba560ab0340c06614547dcddbdcbd1bbda44bb79 100644 index 40bbd80b1ed4afede6f0769e7f3fcfc61200452f..e8af1136b76704767e1ef1859968448c28e07f41 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -124,8 +124,32 @@ public class Warden extends Monster implements VibrationSystem { @@ -124,8 +124,32 @@ public class Warden extends Monster implements VibrationSystem {
@@ -4897,7 +4905,7 @@ index 38bf417a9ad4647f4af24d969f3bf4fed9c4bad7..ba560ab0340c06614547dcddbdcbd1bb
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket(ServerEntity entityTrackerEntry) { public Packet<ClientGamePacketListener> getAddEntityPacket(ServerEntity entityTrackerEntry) {
return new ClientboundAddEntityPacket(this, entityTrackerEntry, this.hasPose(Pose.EMERGING) ? 1 : 0); return new ClientboundAddEntityPacket(this, entityTrackerEntry, this.hasPose(Pose.EMERGING) ? 1 : 0);
@@ -393,17 +417,14 @@ public class Warden extends Monster implements VibrationSystem { @@ -395,17 +419,14 @@ public class Warden extends Monster implements VibrationSystem {
@Contract("null->false") @Contract("null->false")
public boolean canTargetEntity(@Nullable Entity entity) { public boolean canTargetEntity(@Nullable Entity entity) {
@@ -4919,10 +4927,10 @@ index 38bf417a9ad4647f4af24d969f3bf4fed9c4bad7..ba560ab0340c06614547dcddbdcbd1bb
public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) { public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) {
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 7e1871401ec5e3e9a85232053490259f132aec0a..7c4c545fca0858caac1cf98ad24b6d59be79dc32 100644 index a16d9c1661690de0374a4a3c31b119293d8fa52b..4f3de74a903dbb965ac513cc703f532fb119f5c4 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -156,6 +156,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -158,6 +158,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE)); this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));
} }
@@ -4951,19 +4959,16 @@ index 7e1871401ec5e3e9a85232053490259f132aec0a..7c4c545fca0858caac1cf98ad24b6d59
@Override @Override
public Brain<Villager> getBrain() { public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
@@ -256,6 +278,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -259,7 +281,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
// Paper end // Paper end
this.level().getProfiler().push("villagerBrain"); this.level().getProfiler().push("villagerBrain");
if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper // Pufferfish start
+ /*// Purpur start // Purpur - TODO: Pufferfish - if (!inactive && this.behaviorTick++ % this.activatedPriority == 0) {
+ if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider + if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider
+ this.getBrain().tick((ServerLevel) this.level(), this); // Paper this.getBrain().tick((ServerLevel) this.level(), this); // Paper
+ } }
+ // Purpur end*/ // Purpur - TODO: Pufferfish // Pufferfish end
this.level().getProfiler().pop(); @@ -319,7 +341,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
if (this.assignProfessionWhenSpawned) {
this.assignProfessionWhenSpawned = false;
@@ -312,7 +339,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) { if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) {
if (this.isBaby()) { if (this.isBaby()) {
this.setUnhappy(); this.setUnhappy();
@@ -4972,7 +4977,7 @@ index 7e1871401ec5e3e9a85232053490259f132aec0a..7c4c545fca0858caac1cf98ad24b6d59
} else { } else {
if (!this.level().isClientSide) { if (!this.level().isClientSide) {
boolean flag = this.getOffers().isEmpty(); boolean flag = this.getOffers().isEmpty();
@@ -326,9 +353,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -333,9 +355,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
} }
if (flag) { if (flag) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 9cc922a6b75dde1f73b6b1e823cf2918d975f3f4..10c06b32deb91dc4a65b501e57b395742ecda75b 100644 index 5d2d310da657963b830efa7de2486180736613f0..5ffab39e5159a7eb6360fd26043887da50936130 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -168,7 +168,7 @@ import org.bukkit.plugin.PluginManager; @@ -168,7 +168,7 @@ import org.bukkit.plugin.PluginManager;
@@ -34,10 +34,10 @@ index aa76a24421cdb3908a3544d92eb3d1e3c2ebedc4..8211c152e6f4232e82e452b08047e457
protected ParticleOptions getInkParticle() { protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK; return ParticleTypes.GLOW_SQUID_INK;
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index a387268659a17a4508359f2a69d50593cefd4629..13f8289aa23fd4554235e22e4be924abe7517e27 100644 index a4f2e5bb14ef28191a4955578e43ee856ab924b1..df19c74439e8855410446201135a997efcc88c24 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -314,6 +314,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -313,6 +313,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.activeLocationDependentEnchantments = new Reference2ObjectArrayMap(); this.activeLocationDependentEnchantments = new Reference2ObjectArrayMap();
this.appliedScale = 1.0F; this.appliedScale = 1.0F;
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur
@@ -45,7 +45,7 @@ index a387268659a17a4508359f2a69d50593cefd4629..13f8289aa23fd4554235e22e4be924ab
this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit this.craftAttributes = new CraftAttributeMap(this.attributes); // CraftBukkit
// CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor // CraftBukkit - setHealth(getMaxHealth()) inlined and simplified to skip the instanceof check for EntityPlayer, as getBukkitEntity() is not initialized in constructor
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue()); this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
@@ -328,6 +329,8 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -327,6 +328,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (Tag) dynamicopsnbt.emptyMap())))); this.brain = this.makeBrain(new Dynamic(dynamicopsnbt, (Tag) dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), (Tag) dynamicopsnbt.emptyMap()))));
} }
@@ -55,7 +55,7 @@ index a387268659a17a4508359f2a69d50593cefd4629..13f8289aa23fd4554235e22e4be924ab
return this.brain; return this.brain;
} }
diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
index c4a09778ca6bf5c15b588234bcadec3496017e3d..04df50970188cf6b9fbdcc1e99ea6cf8a0beee59 100644 index 082fa26528d3861702db423db092c1cea3cc7c2c..115314cf19f8ed8f1c115f95438dee5cbe329900 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -265,6 +265,19 @@ public class Bat extends AmbientCreature { @@ -265,6 +265,19 @@ public class Bat extends AmbientCreature {
@@ -480,7 +480,7 @@ index 9f2d7ea463f663c0706ebaf73d140aa51ac307f0..2985a7bcd4153798c347efa086120ed8
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this)); this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
index 49dccfc0010b5727250f7e27591502408c903739..902882ca639eee6efe102ea70e182fb17df801c2 100644 index 9071ef2a5751bd691cd1ef85e3889e54a3f8bf8b..498cd9cec1693445e98333c62052189bc276b1bb 100644
--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
+++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
@@ -152,6 +152,12 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS @@ -152,6 +152,12 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@@ -514,7 +514,7 @@ index 8fcaf6860ad3c21ea13649219b91a1eb3490242b..3cc0d4f7a8483fc5133ff3a3e42e0bb0
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 384fb16dac5eede49d89ad9fdcddcec442f0e7ca..0cf2dbc7d4ce89bddc8f23095272532cf62b3f51 100644 index 9165585d212ad624d5973203c372dd4ff55e64c9..909ee626d9ffb4c50423d84ff4c136f0440f9b21 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -114,6 +114,12 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo @@ -114,6 +114,12 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -840,7 +840,7 @@ index 0c9defe9651e3281172d70a154cd06e3d8764f23..7060bb491ecec866837ea4d50b6607c6
} }
} }
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
index b3c52d0b74528136523f5194acac14cc3421ef73..0e2e7f935deb674bfcbdf4f1ba7de7834ed1c61a 100644 index 229f66dec52fbc50401294e83634ac950fd75941..8a4f48956cb0804c0d717783556b97603a1e59b2 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -116,6 +116,12 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -116,6 +116,12 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -856,7 +856,7 @@ index b3c52d0b74528136523f5194acac14cc3421ef73..0e2e7f935deb674bfcbdf4f1ba7de783
@Override @Override
protected PathNavigation createNavigation(Level world) { protected PathNavigation createNavigation(Level world) {
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world); FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world);
@@ -429,7 +435,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -436,7 +442,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
this.setInvulnerableTicks(i); this.setInvulnerableTicks(i);
if (this.tickCount % 10 == 0) { if (this.tickCount % 10 == 0) {
@@ -973,7 +973,7 @@ index 430899602940aa04c21d45ae94bcc506352389cf..986a0f75dd8ac3d36e827d88e1e8e6a0
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D);
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index d77e4a354983b6d6c4d5bbc37d886193af396dff..819acd711b3446231ea0c74f8c170098315dbf6c 100644 index 6cc64bb79abeb49040d008b1db0be263e3dfc787..aa97f7ce1117c57c1b77dd9a8bb6afbffe51e205 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -112,6 +112,12 @@ public class EnderMan extends Monster implements NeutralMob { @@ -112,6 +112,12 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -1553,7 +1553,7 @@ index 18e6a56da9f714f4e5b78ec63df6cf310deb1247..42e3e992cc725627e8b03fa2c057c59b
@Nullable @Nullable
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index a2c0f73c84651f713781deaaa588a3c704eb32b3..66ebc75ddfd944277e7f7be43ed0d215eb2030f1 100644 index e182291061d64ea9922647aa4778856390c5a215..cd6428d0d61f68eafa8829fc21084586447cd61e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -105,6 +105,12 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -105,6 +105,12 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1570,7 +1570,7 @@ index a2c0f73c84651f713781deaaa588a3c704eb32b3..66ebc75ddfd944277e7f7be43ed0d215
@Override @Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
index a8df353eef6ab0dc2a6bd4242f6b85af91444ae9..1d66809216703a9ef9129f8e31887658726ad9ce 100644 index fbf1109833abaf7bbfa7956431102cd533ae9d3c..65bb3045cd74ef1695eb8c1edd71f8b72b2d9378 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -110,6 +110,12 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -110,6 +110,12 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1604,10 +1604,10 @@ index 17e2457bc83e7ee4402c10ee7d2ef5aa36901565..ea62ab46518647759bd8ce3e4f3d5ced
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0).add(Attributes.MOVEMENT_SPEED, 0.35F).add(Attributes.ATTACK_DAMAGE, 7.0); return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0).add(Attributes.MOVEMENT_SPEED, 0.35F).add(Attributes.ATTACK_DAMAGE, 7.0);
} }
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 7c4c545fca0858caac1cf98ad24b6d59be79dc32..93f6097c0dd749e7bd8b129bae09641a36c85b74 100644 index 4f3de74a903dbb965ac513cc703f532fb119f5c4..91369a00aae35cd51c79882fb53c1b45677890bd 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -178,6 +178,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -180,6 +180,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
} }
// Purpur end // Purpur end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 50ff7afa040c54e538e191322146df48c6675df0..f19907853edae46b0db4edcbec286add2da6c5f6 100644 index 6cad742f0141ac0e4b4b5a1dd07874eb7588e70f..fe0bbaec0a47305da244bbca7b9ce64015ea39b8 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2368,8 +2368,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -2367,8 +2367,68 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
public void resetLastActionTime() { public void resetLastActionTime() {
this.lastActionTime = Util.getMillis(); this.lastActionTime = Util.getMillis();
@@ -78,7 +78,7 @@ index 50ff7afa040c54e538e191322146df48c6675df0..f19907853edae46b0db4edcbec286add
return this.stats; return this.stats;
} }
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index a7f7c140b2c6ee936699e25a72b7e4fcb3705b97..a38be909672f833b70ae74817673e6080e4a467a 100644 index ff97005181c2b55ffb2be6d19f27b34f26a2e20c..cb9efbba91510d90fa4a7dbe01fa6e9ba8206612 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -332,6 +332,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -332,6 +332,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -124,7 +124,7 @@ index a7f7c140b2c6ee936699e25a72b7e4fcb3705b97..a38be909672f833b70ae74817673e608
Location oldTo = to.clone(); Location oldTo = to.clone();
PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to);
this.cserver.getPluginManager().callEvent(event); this.cserver.getPluginManager().callEvent(event);
@@ -1449,7 +1471,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1450,7 +1472,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
movedWrongly = true; movedWrongly = true;
if (event.getLogWarning()) if (event.getLogWarning())
// Paper end // Paper end
@@ -133,7 +133,7 @@ index a7f7c140b2c6ee936699e25a72b7e4fcb3705b97..a38be909672f833b70ae74817673e608
} // Paper } // Paper
} }
@@ -1507,6 +1529,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -1508,6 +1530,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw(); this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch(); this.lastPitch = to.getPitch();
@@ -177,7 +177,7 @@ index d8cc5614502db7025349e085381b6b32ad32296a..f1b9e83206cc67e6ef29ebe088351b0a
private EntitySelector() {} private EntitySelector() {}
// Paper start - Affects Spawning API // Paper start - Affects Spawning API
diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java diff --git a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
index aecb0ad814586bfc5e56755ee14379a69388b38c..98a2a469e3d62f963968ef1be3e97892748858c9 100644 index 00ef7f6d60bcaee2506cf111461f2c2f8eedd59a..02a328bb22ebb3593f9f41a1ffc1008ae8414121 100644
--- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java --- a/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
+++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java +++ b/src/main/java/net/minecraft/world/entity/ai/targeting/TargetingConditions.java
@@ -64,6 +64,10 @@ public class TargetingConditions { @@ -64,6 +64,10 @@ public class TargetingConditions {
@@ -317,10 +317,10 @@ index 65cbd35892ab48fccda9bccf2b4dd66be5c84a0d..42bff6f2d864a31dcb1c0087a4e0c902
public boolean untamedTamablesAreRidable = true; public boolean untamedTamablesAreRidable = true;
public boolean useNightVisionWhenRiding = false; public boolean useNightVisionWhenRiding = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index bf2d18f74b0f0da7c3c30310c74224a1c0853564..02be091f2ee12a728fec72c6eaf390eac4c9a806 100644 index 1461daa08c5b671b8556f29f90400b7e98285a44..378c889b3315fc578629990df361e37baac110d3 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java --- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -201,6 +201,8 @@ public class ActivationRange @@ -205,6 +205,8 @@ public class ActivationRange
continue; continue;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e5ae7478cf2d3ef9d484116db742dd8c5bfb74b2..90c7602b83134fdd84dcd0a96908256fa5bfd172 100644 index 7910506ea405498826a3150af131f5b0aac4b577..7ed60bb2e85a3a2664eb3abb6d1a9196948ad197 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1943,7 +1943,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1950,7 +1950,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate @DontObfuscate
public String getServerModName() { public String getServerModName() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Lagging threshold
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 90c7602b83134fdd84dcd0a96908256fa5bfd172..fba769c07e17b4e2401e6cbb15bfd7717d0afe03 100644 index 7ed60bb2e85a3a2664eb3abb6d1a9196948ad197..079c432647055337f9d251615c6db2319e11e39d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -319,6 +319,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -319,6 +319,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -16,7 +16,7 @@ index 90c7602b83134fdd84dcd0a96908256fa5bfd172..fba769c07e17b4e2401e6cbb15bfd771
public volatile Thread shutdownThread; // Paper public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper public volatile boolean abnormalExit = false; // Paper
@@ -1284,6 +1285,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1285,6 +1286,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.recentTps[0] = tps1.getAverage(); this.recentTps[0] = tps1.getAverage();
this.recentTps[1] = tps5.getAverage(); this.recentTps[1] = tps5.getAverage();
this.recentTps[2] = tps15.getAverage(); this.recentTps[2] = tps15.getAverage();

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerSetSpawnerTypeWithEggEvent
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index cb61462d4691a055a4b25f7b953609d8a154fdfe..9d6ca8c6f009cb34fab07cc4d17a6dd5aa45bd12 100644 index f9440014ab2fe753c16b9383f5fffbb8adb76e79..5a80b1f1168d17ef62d756f8eed751e721f09f79 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java --- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java +++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -330,6 +330,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT @@ -332,6 +332,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType<T>) type.build(id)); // CraftBukkit - decompile error
} }
@@ -25,7 +25,7 @@ index cb61462d4691a055a4b25f7b953609d8a154fdfe..9d6ca8c6f009cb34fab07cc4d17a6dd5
public static ResourceLocation getKey(EntityType<?> type) { public static ResourceLocation getKey(EntityType<?> type) {
return BuiltInRegistries.ENTITY_TYPE.getKey(type); return BuiltInRegistries.ENTITY_TYPE.getKey(type);
} }
@@ -537,6 +547,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT @@ -539,6 +549,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
return this.category; return this.category;
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 559bec25060eb8981bf80213ceedb79d6c99e411..2b7f3935b5224709a295b8ed16ac28f6c67b36fc 100644 index 13541b8d94981705bd32fdd8d8e9c170f9143317..ef645bf72db80a0d085c8bca29bf67cab189ffde 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -872,10 +872,18 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf. @@ -886,10 +886,18 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper - Configurable spawn chances for skeleton horses boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * this.paperConfig().entities.spawning.skeletonHorseThunderSpawnChance.or(0.01D) && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper - Configurable spawn chances for skeleton horses
if (flag1) { if (flag1) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add option to set armorstand step height
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 17ba651e9663793c9ab35a4333a7530d7f74f785..bd24ff21097498bbd8a37e3b35c6a94b4c18d046 100644 index 5ffab39e5159a7eb6360fd26043887da50936130..3708fe0bb7af7b542ffd103f803223893e6dea72 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -343,6 +343,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -343,6 +343,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -16,7 +16,7 @@ index 17ba651e9663793c9ab35a4333a7530d7f74f785..bd24ff21097498bbd8a37e3b35c6a94b
public boolean noPhysics; public boolean noPhysics;
public final RandomSource random; public final RandomSource random;
public int tickCount; public int tickCount;
@@ -4825,7 +4826,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -4886,7 +4887,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
} }
public float maxUpStep() { public float maxUpStep() {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 585b41a7e890aa6b5ea27f8fb84a8ca0310ddeb6..73015adb991322b998aad4b244b2fc2a57c6224c 100644 index fe0bbaec0a47305da244bbca7b9ce64015ea39b8..f9d2cb898e8f19accf30de609b5f0b1ef17fa9c7 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1182,6 +1182,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple @@ -1182,6 +1182,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Disable loot drops on death by cramming
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 13f8289aa23fd4554235e22e4be924abe7517e27..67d34911412aad13bfaede82b9bc9ca21a97087a 100644 index df19c74439e8855410446201135a997efcc88c24..b4c50e28cad3a063c2168cd9a813dfc6349d86e3 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1868,7 +1868,8 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1880,7 +1880,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
boolean flag = this.lastHurtByPlayerTime > 0; boolean flag = this.lastHurtByPlayerTime > 0;
this.dropEquipment(); // CraftBukkit - from below this.dropEquipment(); // CraftBukkit - from below
@@ -18,7 +18,7 @@ index 13f8289aa23fd4554235e22e4be924abe7517e27..67d34911412aad13bfaede82b9bc9ca2
this.dropFromLootTable(damageSource, flag); this.dropFromLootTable(damageSource, flag);
// Paper start // Paper start
final boolean prev = this.clearEquipmentSlots; final boolean prev = this.clearEquipmentSlots;
@@ -1877,6 +1878,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -1889,6 +1890,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
// Paper end // Paper end
this.dropCustomDeathLoot(world, damageSource, flag); this.dropCustomDeathLoot(world, damageSource, flag);
this.clearEquipmentSlots = prev; // Paper this.clearEquipmentSlots = prev; // Paper

View File

@@ -5,22 +5,18 @@ Subject: [PATCH] Configurable TPS Catchup
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index fba769c07e17b4e2401e6cbb15bfd7717d0afe03..4b0d28678136756b7c199bbc84d0fc8b0c69f904 100644 index 079c432647055337f9d251615c6db2319e11e39d..a4d7396a013515331297b2c548cfb23d9c2c1407 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1316,6 +1316,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @@ -1318,7 +1318,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.profiler.popPush("nextTickWait");
this.mayHaveDelayedTasks = true; this.mayHaveDelayedTasks = true;
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos); this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + i, this.nextTickTimeNanos);
+ // Purpur start // Pufferfish start - tps catchup
+ if (!org.purpurmc.purpur.PurpurConfig.tpsCatchup) { - if (!gg.pufferfish.pufferfish.PufferfishConfig.tpsCatchup) {
+ this.nextTickTimeNanos = currentTime + i; + if (!org.purpurmc.purpur.PurpurConfig.tpsCatchup || !gg.pufferfish.pufferfish.PufferfishConfig.tpsCatchup) { // Purpur
+ this.delayedTasksMaxNextTickTimeNanos = nextTickTimeNanos; this.nextTickTimeNanos = currentTime + i;
+ } this.delayedTasksMaxNextTickTimeNanos = nextTickTimeNanos;
+ // Purpur end }
this.startMeasuringTaskExecutionTime();
this.waitUntilNextTick();
this.finishMeasuringTaskExecutionTime();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 49737a87b75c971b823bc1f3a20c17faee9d537c..5fc5ae6f6e04e1fe4edfd22379bbfa52b5af0bc2 100644 index 49737a87b75c971b823bc1f3a20c17faee9d537c..5fc5ae6f6e04e1fe4edfd22379bbfa52b5af0bc2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java

View File

@@ -18,10 +18,10 @@ index 84263f85412039811d9e56a292464158675b5418..576d8288a9a5e39479623cac6cbf0f2c
this.triggerOnDeathMobEffects(Entity.RemovalReason.KILLED); this.triggerOnDeathMobEffects(Entity.RemovalReason.KILLED);
this.discard(EntityRemoveEvent.Cause.EXPLODE); // CraftBukkit - add Bukkit remove cause this.discard(EntityRemoveEvent.Cause.EXPLODE); // CraftBukkit - add Bukkit remove cause
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
index 819acd711b3446231ea0c74f8c170098315dbf6c..6306d0452f0bfcb20a90e0f46b34fd7fc0426e10 100644 index aa97f7ce1117c57c1b77dd9a8bb6afbffe51e205..108dca0b1b97e01fd9cadf4ae330fab770fce0c8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -527,6 +527,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -533,6 +533,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean canUse() { public boolean canUse() {
@@ -29,7 +29,7 @@ index 819acd711b3446231ea0c74f8c170098315dbf6c..6306d0452f0bfcb20a90e0f46b34fd7f
return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0); return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0);
} }
@@ -572,6 +573,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -578,6 +579,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override @Override
public boolean canUse() { public boolean canUse() {

View File

@@ -30,10 +30,10 @@ index 49b35fab8ee98a384ee12d36bbe2ac813342f1d6..142bcf71448e2c54991fd144269f74c7
// CraftBukkit start // CraftBukkit start
private CraftMerchant craftMerchant; private CraftMerchant craftMerchant;
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 93f6097c0dd749e7bd8b129bae09641a36c85b74..87f1fbf405e5b71a25600030a98d8f1f187e0044 100644 index 91369a00aae35cd51c79882fb53c1b45677890bd..70b8e26baaf15b7cc6363c96647c58219dd3bbab 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -154,6 +154,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -156,6 +156,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getNavigation().setCanFloat(true); this.getNavigation().setCanFloat(true);
this.setCanPickUpLoot(true); this.setCanPickUpLoot(true);
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE)); this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 654b454a79f564a1bbf03e3cf8c3c1fcc5ebe489..a9e441c7a6aadb7bb9891dba41b257b70b071ceb 100644 index 3708fe0bb7af7b542ffd103f803223893e6dea72..79b158062b37fe19956a025ae6d74563092e3b8e 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java --- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2922,6 +2922,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -2931,6 +2931,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()) {
@@ -17,10 +17,10 @@ index 654b454a79f564a1bbf03e3cf8c3c1fcc5ebe489..a9e441c7a6aadb7bb9891dba41b257b7
// Paper start - Expand EntityUnleashEvent // Paper start - Expand EntityUnleashEvent
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials()); org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.hasInfiniteMaterials());
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 87f1fbf405e5b71a25600030a98d8f1f187e0044..aa17159f54402dc2bb0f8336ef79614186f1ddd1 100644 index 70b8e26baaf15b7cc6363c96647c58219dd3bbab..f083de2448e0e6dfa277c58a082b305cdc1e11e7 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -177,6 +177,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -179,6 +179,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
protected void registerGoals() { protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this));
} }

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement infinite liquids
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index 1c0712295695727ee9c4d430d4157b8e17cbd71f..3b197331f51b12b55a40f2abb6ce99ef0fb65f17 100644 index 6785baf574f233ed1c3bea8d406be8a524d9ff82..d2f9ffa09d46287707324fd67e60736991b632ac 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java --- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java +++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
@@ -217,7 +217,7 @@ public abstract class FlowingFluid extends Fluid { @@ -227,7 +227,7 @@ public abstract class FlowingFluid extends Fluid {
} }
} }
@@ -17,7 +17,7 @@ index 1c0712295695727ee9c4d430d4157b8e17cbd71f..3b197331f51b12b55a40f2abb6ce99ef
BlockState iblockdata2 = world.getBlockState(pos.below()); BlockState iblockdata2 = world.getBlockState(pos.below());
FluidState fluid1 = iblockdata2.getFluidState(); FluidState fluid1 = iblockdata2.getFluidState();
@@ -290,6 +290,12 @@ public abstract class FlowingFluid extends Fluid { @@ -325,6 +325,12 @@ public abstract class FlowingFluid extends Fluid {
protected abstract boolean canConvertToSource(Level world); protected abstract boolean canConvertToSource(Level world);

Some files were not shown because too many files have changed in this diff Show More