mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
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:
@@ -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
|
|
||||||
@@ -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) {
|
||||||
@@ -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 {
|
||||||
@@ -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
|
||||||
+ /**
|
+ /**
|
||||||
@@ -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> {
|
||||||
@@ -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;
|
||||||
@@ -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 {
|
||||||
File diff suppressed because it is too large
Load Diff
113
patches/server/0002-Fix-pufferfish-issues.patch
Normal file
113
patches/server/0002-Fix-pufferfish-issues.patch
Normal 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
|
||||||
@@ -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();
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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) {
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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() {
|
||||||
@@ -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();
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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) {
|
||||||
@@ -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() {
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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() {
|
||||||
@@ -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));
|
||||||
@@ -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));
|
||||||
}
|
}
|
||||||
@@ -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
Reference in New Issue
Block a user