add back pufferfish patches \o/

This commit is contained in:
granny
2023-12-25 20:15:34 -08:00
parent 10685bb957
commit 6f17a3da52
360 changed files with 841 additions and 820 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -5,27 +5,29 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts
index 58da26ad2f128ba0b66f86820f60853f4be352f0..12f4b3d753b56947e3759888ba3d98fa693c2a3f 100644
index 5134bd15ff55d3407dec6756663394535a0ddf69..a627c4b4814cde0581884145eba498a76baed0b2 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -13,8 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@@ -13,12 +13,12 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
val alsoShade: Configuration by configurations.creating
dependencies {
- implementation(project(":paper-api"))
- implementation(project(":paper-mojangapi"))
- implementation(project(":pufferfish-api")) // Pufferfish // Paper
- // Pufferfish start
- implementation("io.papermc.paper:paper-mojangapi:1.19.2-R0.1-SNAPSHOT") {
+ // Purpur start
+ implementation(project(":purpur-api"))
+ implementation("io.papermc.paper:paper-mojangapi:${project.version}") {
+ exclude("io.papermc.paper", "paper-api")
+ }
exclude("io.papermc.paper", "paper-api")
}
- // Pufferfish end
+ // Purpur end
// Paper start
implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("net.minecrell:terminalconsoleappender:1.3.0")
@@ -51,6 +55,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")
@@ -62,6 +62,10 @@ dependencies {
}
// Pufferfish end
+ implementation("org.mozilla:rhino-runtime:1.7.14") // Purpur
+ implementation("org.mozilla:rhino-engine:1.7.14") // Purpur
@@ -34,16 +36,16 @@ index 58da26ad2f128ba0b66f86820f60853f4be352f0..12f4b3d753b56947e3759888ba3d98fa
testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
testImplementation("org.hamcrest:hamcrest:2.2")
@@ -70,7 +78,7 @@ tasks.jar {
@@ -89,7 +93,7 @@ tasks.jar {
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
- "Implementation-Version" to "git-Paper-$implementationVersion",
+ "Implementation-Version" to "git-Purpur-$implementationVersion", // Purpur
- "Implementation-Version" to "git-Pufferfish-$implementationVersion", // Pufferfish
+ "Implementation-Version" to "git-Purpur-$implementationVersion", // Pufferfish // Purpur
"Implementation-Vendor" to date, // Paper
"Specification-Title" to "Bukkit",
"Specification-Version" to project.version,
@@ -154,7 +162,7 @@ fun TaskContainer.registerRunTask(
@@ -173,7 +177,7 @@ fun TaskContainer.registerRunTask(
name: String,
block: JavaExec.() -> Unit
): TaskProvider<JavaExec> = register<JavaExec>(name) {
@@ -175,10 +177,10 @@ index e047dee632022abfe05865d1e71838be8d5d053a..888e31a0454888c36cb27602a28619f1
stringbuilder.append(CrashReport.getErrorComment());
stringbuilder.append("\n\n");
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..88b79cd90e936e1c48b84d7f762f425e1ae09259 100644
index 53d0a930ae5ec34c1f3a58e96e92f54dd9c7881c..6e8d7a22e9301704fd8d3e08e806b186f2578038 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -954,7 +954,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -956,7 +956,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
shutdownThread = Thread.currentThread();
org.spigotmc.WatchdogThread.doStop(); // Paper
if (!isSameThread()) {
@@ -187,25 +189,25 @@ index 34f19ac897a30c0c4e3ab406013fcca1c8b7db93..88b79cd90e936e1c48b84d7f762f425e
while (this.getRunningThread().isAlive()) {
this.getRunningThread().stop();
try {
@@ -1866,7 +1866,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1868,7 +1868,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
- return "Paper"; // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
+ return "Purpur"; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
- return "Pufferfish"; // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
+ return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
}
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index e011cfcdda2e0a609d4158b0454bdf046b04c9d9..ace8ef2a55cf8e87d092f0b67b2d64b3a9e4f366 100644
index 6550d4ea03b5b56159b19e297f03b0b141c59c62..aa4ec4d17880230bb59b0fa8aabdb2212e95015f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {
- private final String serverName = "Paper"; // Paper
+ private final String serverName = "Purpur"; // Paper // Purpur
- private final String serverName = "Pufferfish"; // Paper // Pufferfish
+ private final String serverName = "Purpur"; // Paper // Pufferfish // Purpur
private final String serverVersion;
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
@@ -263,28 +265,28 @@ index 700932b65e4fda560d684b0aa079bcee3923f73e..d1b1bc4845fc9519fc892e962c3e7d89
// (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
index ec2396f0e5d62b10450eaa7239a8c5479638b3c3..72bb60535d2f35435ae8b96faced60a1b8d70db6 100644
index c909efd2060dc95bd3ecb8c9fec36a1e69a642ff..6eeebfaf577263316f3562a8f968310acd616763 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -482,7 +482,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@Override
public com.destroystokyo.paper.util.VersionFetcher getVersionFetcher() {
- return new com.destroystokyo.paper.PaperVersionFetcher();
+ return new com.destroystokyo.paper.PaperVersionFetcher(); // Purpur - TODO: Pufferfish
- return new gg.pufferfish.pufferfish.PufferfishVersionFetcher(); // Pufferfish
+ return new com.destroystokyo.paper.PaperVersionFetcher(); // Purpur
}
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 774556a62eb240da42e84db4502e2ed43495be17..fb87620c742ff7912f5e8ccd2a7930dd605576d9 100644
index 80553face9c70c2a3d897681e7761df85b22d464..99597258e8e88cd9e2c901c4ac3ff7faeeabee2b 100644
--- a/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 {
public static String getBukkitVersion() {
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/org.purpurmc.purpur/purpur-api/pom.properties"); // Purpur
- 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
Properties properties = new Properties();
if (stream != null) {

View File

@@ -0,0 +1,80 @@
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/build.gradle.kts b/build.gradle.kts
index a627c4b4814cde0581884145eba498a76baed0b2..790835a0c4889d17b4efd06cb463744973642a48 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -233,5 +233,7 @@ val runtimeClasspathForRunDev = sourceSets.main.flatMap { src ->
}
tasks.registerRunTask("runDev") {
description = "Spin up a non-relocated Mojang-mapped test server"
- classpath(sourceSets.main.map { it.runtimeClasspath })
+ classpath(tasks.filterProjectDir.flatMap { it.outputJar })
+ classpath(runtimeClasspathForRunDev)
+ jvmArgs("-DPaper.isRunDev=true")
}
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
index 0dd3374468e05f7a312ba5856b9cf8a4787dfa59..960c0555a001fe63de78d77d5ea47d08a520d029 100644
--- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -224,7 +224,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.");
@@ -268,7 +268,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 66cbea2fd146bdabf1241dae72bd76dc256afe45..5493e7e8ec1de5bb52ee7bd145e436fdb03e59b6 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -993,7 +993,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/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 3fb317e5df780abb7fa8c3d78717306cad2bc650..879f9ba2395b2856e8cd0c78a2b25782e29a7234 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -213,7 +213,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
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 - 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 7fd68d4aba72b15b2e21e5c88b44e677b794fe57..b9aca339851cdaa6325c04e5cea847904752c63c 100644
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
@@ -122,7 +122,7 @@ public class LevelChunk extends ChunkAccess {
this.blockTicks = blockTickScheduler;
this.fluidTicks = fluidTickScheduler;
- this.lightningTick = this.level.getThreadUnsafeRandom().nextInt(100000) << 1; // Pufferfish - initialize lightning tick
+ this.lightningTick = java.util.concurrent.ThreadLocalRandom.current().nextInt(100000) << 1; // Pufferfish - initialize lightning tick // Purpur - any random will do
}
// CraftBukkit start

View File

@@ -5,15 +5,15 @@ 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
index 4b002e8b75d117b726b0de274a76d3596fce015b..9713263c3bd34ab8a3bfc0a8797ba0b1b88ed733 100644
index 692c962193cf9fcc6801fc93f3220bdc673d527b..8cde30544e14f8fc2dac32966ae3c21f8cf3a551 100644
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
+++ b/src/main/java/com/destroystokyo/paper/Metrics.java
@@ -593,7 +593,7 @@ public class Metrics {
boolean logFailedRequests = config.getBoolean("logFailedRequests", false);
// Only start Metrics, if it's enabled in the config
if (config.getBoolean("enabled", true)) {
- Metrics metrics = new Metrics("Paper", serverUUID, logFailedRequests, Bukkit.getLogger());
+ Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Purpur
- Metrics metrics = new Metrics("Pufferfish", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish
+ Metrics metrics = new Metrics("Purpur", serverUUID, logFailedRequests, Bukkit.getLogger()); // Pufferfish // Purpur
metrics.addCustomChart(new Metrics.SimplePie("minecraft_version", () -> {
String minecraftVersion = Bukkit.getVersion();
@@ -26,11 +26,11 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..9713263c3bd34ab8a3bfc0a8797ba0b1
- final String implVersion = org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion();
- if (implVersion != null) {
- 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 {
- 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("purpur_version", () -> (org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() != null) ? org.bukkit.craftbukkit.Main.class.getPackage().getImplementationVersion() : "unknown")); // Purpur
@@ -72,7 +72,7 @@ index 14f4c0a93372a58cf36dc95265b5e210ea1605e5..ff27787313a3337e29eac6f623b08f1f
boolean flag1 = this.source.acceptsSuccess() && !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
index 58536aabf607015939a1326f80207c0a06eed8ff..e5aa98430309eef04770fb68fd8314ac97fde167 100644
index 3b8c810a228a59bf02a8557b229e5eca56c16562..5ebe7e5c4f12ccb8a91a1e6a0f029d0f54b09e15 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -218,6 +218,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -92,7 +92,7 @@ index 58536aabf607015939a1326f80207c0a06eed8ff..e5aa98430309eef04770fb68fd8314ac
io.papermc.paper.brigadier.PaperBrigadierProviderImpl.INSTANCE.getClass(); // init PaperBrigadierProvider
// Paper end
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 0b56e5f7f18fc4286992af22d402205b771165a3..d89e36f90c7d84eaa627ef1dd9002ea0a03d8a79 100644
index 879f9ba2395b2856e8cd0c78a2b25782e29a7234..b13b0be860df85af973c36f0ef10bfe09aa0aaf9 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -179,6 +179,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -103,7 +103,7 @@ index 0b56e5f7f18fc4286992af22d402205b771165a3..d89e36f90c7d84eaa627ef1dd9002ea0
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
@@ -216,6 +217,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -218,6 +219,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
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 - Async-Anti-Xray - Pass executor
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
@@ -112,7 +112,7 @@ index 0b56e5f7f18fc4286992af22d402205b771165a3..d89e36f90c7d84eaa627ef1dd9002ea0
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index ace8ef2a55cf8e87d092f0b67b2d64b3a9e4f366..29f28a197d39b58c6eb3eac14b788dafb7768d91 100644
index aa4ec4d17880230bb59b0fa8aabdb2212e95015f..eb6b2727d43ca991ef99a88413de95c1546b7696 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1037,6 +1037,7 @@ public final class CraftServer implements Server {
@@ -139,7 +139,7 @@ index ace8ef2a55cf8e87d092f0b67b2d64b3a9e4f366..29f28a197d39b58c6eb3eac14b788daf
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -3011,6 +3014,18 @@ public final class CraftServer implements Server {
@@ -3016,6 +3019,18 @@ public final class CraftServer implements Server {
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}

View File

@@ -5,7 +5,7 @@ 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
index 86cf69de7a35f1ac8e2c56f988e74832332470d2..b0e698b2532ed6af84ca2dd0d8b1c795921c5823 100644
index 393edc13408ed8b3aad36121891eddf75ea321ff..ae9dfb2719ff2372e3a73adc2163330db886dfbe 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1883,6 +1883,26 @@ public class ServerPlayer extends Player {
@@ -81,10 +81,10 @@ index 25a5a3b949a0eb632611355e74ccd4865be108ca..14fcfd7c1d3a62833978e163f4e0d6f9
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
index 0c46a4aeafd03fbbfd590b0362d41bf2b1d5ca74..b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf 100644
index b8810cce6f4995d78dca3691b0a1cbd133a05e06..acb0f8ff57e4e08bdbcb93994064d9d216ac69b5 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4125,6 +4125,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4137,6 +4137,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return SlotAccess.NULL;
}

View File

@@ -22,10 +22,10 @@ index 83cab746d1d6fe25c043c8aee28c39412b90c127..ec6b58dae525c81bbb1c0e2d96fbded6
super(x, y, z);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 88b79cd90e936e1c48b84d7f762f425e1ae09259..81e4b7254e1c3cb714a9c37d941ff1b5d9e758ed 100644
index 6e8d7a22e9301704fd8d3e08e806b186f2578038..2dd32f61efa12689b08a54f30deac397ec49cef4 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1698,6 +1698,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1700,6 +1700,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
@@ -34,7 +34,7 @@ index 88b79cd90e936e1c48b84d7f762f425e1ae09259..81e4b7254e1c3cb714a9c37d941ff1b5
this.profiler.push(() -> {
return worldserver + " " + worldserver.dimension().location();
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index b78a9628a88f2a495ef6de74446a02a14d41a1f6..d328cc90fc6e333ea3079e462046a017a6cfc6f8 100644
index 5493e7e8ec1de5bb52ee7bd145e436fdb03e59b6..53131fc1fc02df8f60f0a44dd8c3a5a53e24fddb 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -225,6 +225,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -46,7 +46,7 @@ index b78a9628a88f2a495ef6de74446a02a14d41a1f6..d328cc90fc6e333ea3079e462046a017
final Throwable thr = new Throwable(entity + " Added to world at " + new java.util.Date());
io.papermc.paper.util.StacktraceDeobfuscator.INSTANCE.deobfuscateThrowable(thr);
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index b0e698b2532ed6af84ca2dd0d8b1c795921c5823..d5940e560ea890f7f017ff9c37939a485be94540 100644
index ae9dfb2719ff2372e3a73adc2163330db886dfbe..f709667d2efab5f7dac22bb6e4b0bf32917f71e4 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -763,6 +763,15 @@ public class ServerPlayer extends Player {
@@ -66,10 +66,10 @@ index b0e698b2532ed6af84ca2dd0d8b1c795921c5823..d5940e560ea890f7f017ff9c37939a48
public void doTick() {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 30ccbab1586a656e0ae41d7406525fb02d9e025b..bec249a47f1fbcabd6a121399d19d71e21edccae 100644
index 20cd751a602593740e87eb79d5059b5fc7856cb5..44b8b9dfc9182a6ce0d01b003749946e90e3aedb 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2714,6 +2714,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2715,6 +2715,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event);
@@ -79,7 +79,7 @@ index 30ccbab1586a656e0ae41d7406525fb02d9e025b..bec249a47f1fbcabd6a121399d19d71e
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.getEntityData().resendPossiblyDesyncedEntity(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
index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3f363138e 100644
index acb0f8ff57e4e08bdbcb93994064d9d216ac69b5..7fc1887f68092da224a1ea1c56de474b471a8aee 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -377,7 +377,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -91,7 +91,7 @@ index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3
private float eyeHeight;
public boolean isInPowderSnow;
public boolean wasInPowderSnow;
@@ -2996,6 +2996,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3008,6 +3008,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.passengers = ImmutableList.copyOf(list);
}
@@ -105,7 +105,7 @@ index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
}
}
@@ -3036,6 +3043,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3048,6 +3055,14 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false;
}
// Spigot end
@@ -120,7 +120,7 @@ index b81ec809a0ba2462a9b5a212c0362a6b50d1bfbf..3773ae61b9cb747dd33613990339d1e3
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
this.passengers = ImmutableList.of();
} else {
@@ -4925,4 +4940,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4989,4 +5004,44 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
}
// Paper end
@@ -190,10 +190,10 @@ index 1bb8b6e91c44cd13411d96d749fa64835c75a267..75c278b67ad2b78766efd8f89c4c2ca7
protected ParticleOptions getInkParticle() {
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
index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e0839a927915 100644
index 88f736e67107d34514eec231070f42d2ee008e5c..bab5a6c1bcff734620ccb015f071d73b70bbc901 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -218,9 +218,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -217,9 +217,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected int deathScore;
public float lastHurt;
public boolean jumping;
@@ -206,7 +206,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083
protected int lerpSteps;
protected double lerpX;
protected double lerpY;
@@ -286,7 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -285,7 +285,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.effectsDirty = true;
this.useItem = ItemStack.EMPTY;
this.lastClimbablePos = Optional.empty();
@@ -215,7 +215,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083
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
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
@@ -337,6 +337,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -336,6 +336,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
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);
}
@@ -223,7 +223,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083
@Override
protected void checkFallDamage(double heightDifference, boolean onGround, BlockState state, BlockPos landedPosition) {
@@ -2701,7 +2702,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2727,7 +2728,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
protected long lastJumpTime = 0L; // Paper
@@ -232,7 +232,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083
Vec3 vec3d = this.getDeltaMovement();
// Paper start
long time = System.nanoTime();
@@ -3479,8 +3480,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3505,8 +3506,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.pushEntities();
this.level().getProfiler().pop();
// Paper start
@@ -245,7 +245,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083
Location from = new Location(this.level().getWorld(), this.xo, this.yo, this.zo, this.yRotO, this.xRotO);
Location to = new Location (this.level().getWorld(), this.getX(), this.getY(), this.getZ(), this.getYRot(), this.getXRot());
io.papermc.paper.event.entity.EntityMoveEvent event = new io.papermc.paper.event.entity.EntityMoveEvent(this.getBukkitLivingEntity(), from, to.clone());
@@ -3490,6 +3493,21 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3516,6 +3519,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());
}
}
@@ -268,7 +268,7 @@ index 45b1a182acf6b2aef40b714d31ca125d8f74619a..629cfd889ebfbf79b06fc42d81d7e083
// Paper end
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
index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de035aef688 100644
index 1d65d8b3e21373b0f0d2c633742da52d6b208942..05eecaf3147051c44f9c4abce178c3126385c825 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -148,8 +148,8 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -282,7 +282,7 @@ index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de0
this.jumpControl = new JumpControl(this);
this.bodyRotationControl = this.createBodyControl();
this.navigation = this.createNavigation(world);
@@ -1384,7 +1384,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1390,7 +1390,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -291,7 +291,7 @@ index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de0
}
public boolean isWithinRestriction() {
@@ -1769,4 +1769,56 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1775,4 +1775,56 @@ public abstract class Mob extends LivingEntity implements Targeting {
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
}
@@ -349,13 +349,13 @@ index 5af48151159135b869ec4753bbcf79dd257c1570..1fc2b2cee28db5abb8ab33df6fd76de0
+ // 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
index 7204b973c3ad9239e82355513f6d538107102e48..ffd1ae235e6602e73c6585f60c6ef5dd21844a12 100644
index 3087f8359b098682a345399c85395de8a15b6eed..6b0855cffb901dbc7dcc5fd44506275206bc9a2d 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeMap.java
@@ -23,13 +23,20 @@ public class AttributeMap {
private final Map<Attribute, AttributeInstance> attributes = Maps.newHashMap();
@@ -24,14 +24,21 @@ public class AttributeMap {
private final Set<AttributeInstance> dirtyAttributes = Sets.newHashSet();
private final AttributeSupplier supplier;
private final java.util.function.Function<Attribute, AttributeInstance> createInstance; // Pufferfish
+ private final net.minecraft.world.entity.LivingEntity entity; // Purpur
public AttributeMap(AttributeSupplier defaultAttributes) {
@@ -366,6 +366,7 @@ index 7204b973c3ad9239e82355513f6d538107102e48..ffd1ae235e6602e73c6585f60c6ef5dd
+ this.entity = entity;
+ // Purpur end
this.supplier = defaultAttributes;
this.createInstance = attribute -> this.supplier.createInstance(this::onAttributeModified, attribute); // Pufferfish
}
private void onAttributeModified(AttributeInstance instance) {
@@ -374,7 +375,7 @@ index 7204b973c3ad9239e82355513f6d538107102e48..ffd1ae235e6602e73c6585f60c6ef5dd
this.dirtyAttributes.add(instance);
}
@@ -41,7 +48,7 @@ public class AttributeMap {
@@ -43,7 +50,7 @@ public class AttributeMap {
public Collection<AttributeInstance> getSyncableAttributes() {
return this.attributes.values().stream().filter((attribute) -> {
@@ -526,7 +527,7 @@ index 7df56705a4a0de2dc4ff7ab133fc26612c219162..384bed4505b6cabb1ae151cd2c4eb5e5
--this.lookAtCooldown;
this.getYRotD().ifPresent((yaw) -> {
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 6b614818b14ecfc8fc82b523eeb7e21fdf9bf1ba..74b28d8a27b702896906603e7a39b91c79561ac5 100644
index 8820905ac733a8915cc1697259b2bef14d97e471..384fa039b11fb70c2d04df447b689aef3e808968 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -19,6 +19,7 @@ import net.minecraft.world.entity.EntityDimensions;
@@ -2125,7 +2126,7 @@ index eecb7511582e5e316b71fa4a4734881424be5ca7..2efa2e19485f9d959a55115ab62f9854
this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this));
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
index 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..80ff5b8b2041afd7ffef99c33ecd4f5252e827fe 100644
index d241ca4d0295f9fce39c11197bd435cfac7f6e54..09f796ec491f21520e1fcc454249e4696dad3b1b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
+++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java
@@ -100,10 +100,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@@ -2182,16 +2183,17 @@ index 5ad5f22e5aa26445e5eb229958e7bf356bdd460e..80ff5b8b2041afd7ffef99c33ecd4f52
@Override
protected Brain.Provider<Allay> brainProvider() {
return Brain.provider(Allay.MEMORY_TYPES, Allay.SENSOR_TYPES);
@@ -224,6 +259,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@@ -225,7 +260,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@Override
protected void customServerAiStep() {
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.level().getProfiler().pop();
this.level().getProfiler().push("allayActivityUpdate");
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 387006271c246362b0df1bfcadca7b7096660003..12fc57798dae50ffdd6118202309c872ab6b332d 100644
index 9158c5a507904c46a8fe2fdad9a0b6ba3a9b2460..877c1050e4c38943f6e8c3f81fa4f2884aba5b11 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -98,6 +98,23 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -2218,15 +2220,16 @@ index 387006271c246362b0df1bfcadca7b7096660003..12fc57798dae50ffdd6118202309c872
@Override
public Map<String, Vector3f> getModelRotationValues() {
return this.modelRotationValues;
@@ -278,6 +295,7 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -279,7 +296,7 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@Override
protected void customServerAiStep() {
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.level().getProfiler().pop();
this.level().getProfiler().push("axolotlActivityUpdate");
@@ -509,14 +527,22 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -511,14 +528,22 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
private static class AxolotlMoveControl extends SmoothSwimmingMoveControl {
private final Axolotl axolotl;
@@ -2249,7 +2252,7 @@ index 387006271c246362b0df1bfcadca7b7096660003..12fc57798dae50ffdd6118202309c872
if (!this.axolotl.isPlayingDead()) {
super.tick();
}
@@ -531,9 +557,9 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -533,9 +558,9 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
}
@Override
@@ -2280,7 +2283,7 @@ index 7dee2d1c4ce038f42334120f5dedb836f4e21723..02d19eaa4599951dd8a8fe594946c8a3
public void addAdditionalSaveData(CompoundTag 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
index 295769d039f2a1e4f48912a60f9dbe267d8992c1..57a224aa5a1008aa6bdbe268099974f9b8bf70d3 100644
index e88b058c0734e436ef24bab6364b206c13e5a9c2..156fd7b01853f4ad50235646a15893bb03d631b2 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java
@@ -79,16 +79,65 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -2350,15 +2353,16 @@ index 295769d039f2a1e4f48912a60f9dbe267d8992c1..57a224aa5a1008aa6bdbe268099974f9
@Override
protected Brain.Provider<Frog> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
@@ -162,6 +211,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -163,7 +212,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@Override
protected void customServerAiStep() {
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.level().getProfiler().pop();
this.level().getProfiler().push("frogActivityUpdate");
@@ -347,7 +397,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
@@ -349,7 +398,7 @@ public class Frog extends Animal implements VariantHolder<FrogVariant> {
return world.getBlockState(pos.below()).is(BlockTags.FROGS_SPAWNABLE_ON) && isBrightEnoughToSpawn(world, pos);
}
@@ -2368,7 +2372,7 @@ index 295769d039f2a1e4f48912a60f9dbe267d8992c1..57a224aa5a1008aa6bdbe268099974f9
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
index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..e46475c2d44923167da7c654cb8af6b6278c7149 100644
index 6ed4ac06c76b8d0d6e8db778cade15dbd1e3e5f5..3103df74b7ae5a5ed841bf97794284cd43ad59de 100644
--- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
+++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java
@@ -45,13 +45,50 @@ public class Tadpole extends AbstractFish {
@@ -2423,17 +2427,18 @@ index 4aeab90e778629c355189dfe79c39c4b21f5f5ac..e46475c2d44923167da7c654cb8af6b6
@Override
protected PathNavigation createNavigation(Level world) {
return new WaterBoundPathNavigation(this, world);
@@ -80,7 +117,7 @@ public class Tadpole extends AbstractFish {
@@ -81,8 +118,7 @@ public class Tadpole extends AbstractFish {
@Override
protected void customServerAiStep() {
this.level().getProfiler().push("tadpoleBrain");
- if (this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish
- this.getBrain().tick((ServerLevel) this.level(), this);
+ // if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish
+ if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.level().getProfiler().pop();
this.level().getProfiler().push("tadpoleActivityUpdate");
TadpoleAi.updateActivity(this);
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 111a244087e24f25ba8524a46a228da10cd9498a..e48ff5d0592f0d91974a49fd7ed1d0ee97172abe 100644
index ff12ba2b79cb2e7e0bfd0e3b58ff6cb9e770092b..fef3b7d193d20c4fdd50b38c6a0371f05165a49d 100644
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
@@ -92,6 +92,23 @@ public class Goat extends Animal {
@@ -2460,11 +2465,12 @@ index 111a244087e24f25ba8524a46a228da10cd9498a..e48ff5d0592f0d91974a49fd7ed1d0ee
@Override
protected Brain.Provider<Goat> brainProvider() {
return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES);
@@ -194,6 +211,7 @@ public class Goat extends Animal {
@@ -195,7 +212,7 @@ public class Goat extends Animal {
@Override
protected void customServerAiStep() {
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.level().getProfiler().pop();
this.level().getProfiler().push("goatActivityUpdate");
@@ -2929,7 +2935,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..152111ff4c29e6cf13afeba8c9707f40
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
index c9a4feb4a52c0eb621b120e5b8c18d0a74dae0cd..f0fa5f69985dde27d0e7dd1ed2c96d31137be647 100644
index 256598e058db1fd34d36390e45ab9903768343cb..e03a01940eb5a5d7a3924a5ad1214258ce0f4b46 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -84,16 +84,30 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -3078,7 +3084,7 @@ index c9a4feb4a52c0eb621b120e5b8c18d0a74dae0cd..f0fa5f69985dde27d0e7dd1ed2c96d31
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));
}
@@ -256,6 +370,16 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -263,6 +377,16 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@Override
protected void customServerAiStep() {
@@ -3095,7 +3101,7 @@ index c9a4feb4a52c0eb621b120e5b8c18d0a74dae0cd..f0fa5f69985dde27d0e7dd1ed2c96d31
int i;
if (this.getInvulnerableTicks() > 0) {
@@ -576,11 +700,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -583,11 +707,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
}
public int getAlternativeTarget(int headIndex) {
@@ -3440,7 +3446,7 @@ index efc1d49c5bfea7d1674b8a9de2c8b617657eda0f..37afe706c5c453003ea96e62f376f45d
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
index bd5996eef2d946e9d7765b6b315bc5951158810e..14c614dfdffd27756298b0105f0dbe139047e251 100644
index 0d51f435f18f3f9d59a3241a0b7fa1c4af841b72..21e5102761876ceafce87fc824bf8392c354341a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -98,9 +98,27 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -3488,7 +3494,7 @@ index bd5996eef2d946e9d7765b6b315bc5951158810e..14c614dfdffd27756298b0105f0dbe13
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
@@ -409,6 +428,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -415,6 +434,7 @@ public class EnderMan extends Monster implements NeutralMob {
public boolean hurt(DamageSource source, float amount) {
if (this.isInvulnerableTo(source)) {
return false;
@@ -4831,7 +4837,7 @@ index 1afe8a8694c1fd0bf43ce3c0c36a83fda9aec141..252d2994fac423ea1fef36bdc7c09778
public void setPersistentAngerTarget(@Nullable UUID 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
index 4257f2282152aee09533c9a2e53018d3e49effa4..e2ff79328877e417193849a81ae5342a5d0701e2 100644
index e703320717ff620a19ff76d1c10066117c9895d5..d040198ce528293ed95adcdb17ddf0acbc5a93e0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -69,6 +69,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -4858,16 +4864,17 @@ index 4257f2282152aee09533c9a2e53018d3e49effa4..e2ff79328877e417193849a81ae5342a
@Override
public boolean canBeLeashed(Player player) {
return !this.isLeashed();
@@ -131,6 +148,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -132,7 +149,7 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@Override
protected void customServerAiStep() {
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.level().getProfiler().pop();
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
index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..89d2a5b17b7f948fff041d8aec51424b54d3ea49 100644
index cfdc1650783d6855e0d4f33ec68aab48dbee09f0..f57d7fee1ece00aba9bc7b07dda8398e7acc73c3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -96,6 +96,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -4894,11 +4901,12 @@ index 6407ddef8442fce4f310ac4babf3e3de0dd5fc9a..89d2a5b17b7f948fff041d8aec51424b
@Override
public void addAdditionalSaveData(CompoundTag nbt) {
super.addAdditionalSaveData(nbt);
@@ -303,6 +320,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -304,7 +321,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@Override
protected void customServerAiStep() {
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.level().getProfiler().pop();
PiglinAi.updateActivity(this);
@@ -4939,7 +4947,7 @@ index e1be4a77fae0b9120781f460079269b85c993930..2d842c0dfce1c7e7229bd42b2a92c024
this.level().getProfiler().pop();
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
index 9f1b7c629644931074293151ed58a523ca6d488c..53035057b715401381b4f5438c82a61fe6012a7e 100644
index 58a7e61e02b7d72326ed4d57ee514adb63b3873c..63e4688d8055cf4a8883477f7943bf63520c0693 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -123,8 +123,32 @@ public class Warden extends Monster implements VibrationSystem {
@@ -4975,7 +4983,7 @@ index 9f1b7c629644931074293151ed58a523ca6d488c..53035057b715401381b4f5438c82a61f
@Override
public Packet<ClientGamePacketListener> getAddEntityPacket() {
return new ClientboundAddEntityPacket(this, this.hasPose(Pose.EMERGING) ? 1 : 0);
@@ -396,19 +420,16 @@ public class Warden extends Monster implements VibrationSystem {
@@ -398,19 +422,16 @@ public class Warden extends Monster implements VibrationSystem {
@Contract("null->false")
public boolean canTargetEntity(@Nullable Entity entity) {
@@ -4999,10 +5007,10 @@ index 9f1b7c629644931074293151ed58a523ca6d488c..53035057b715401381b4f5438c82a61f
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
index 11935e5b16324af572b07c5b173708f5a91f8289..42cfa847b29d8f265c7059bf4f93319ce938ee05 100644
index 6b869c05bbdb13e23ecaa2c38e0cb05bda5a083d..4ae36a344143c5aed4266dfef2920ff3d83b1b48 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -155,6 +155,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -157,6 +157,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));
}
@@ -5031,21 +5039,22 @@ index 11935e5b16324af572b07c5b173708f5a91f8289..42cfa847b29d8f265c7059bf4f93319c
@Override
public Brain<Villager> getBrain() {
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
@@ -254,7 +276,12 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -257,11 +279,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
protected void customServerAiStep(final boolean inactive) {
// Paper end
this.level().getProfiler().push("villagerBrain");
- if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper
- // Pufferfish start
- if (!inactive && this.behaviorTick++ % this.activatedPriority == 0) {
+ // Purpur start
+ // if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider // Purpur - TODO: Pufferfish
+ if (!inactive && (getRider() == null || !this.isControllable())) { // Purpur - only use brain if no rider
+ this.getBrain().tick((ServerLevel) this.level(), this); // Paper
+ }
+ 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
}
- // Pufferfish end
+ // Purpur end
this.level().getProfiler().pop();
if (this.assignProfessionWhenSpawned) {
this.assignProfessionWhenSpawned = false;
@@ -311,7 +338,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -318,7 +340,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) {
if (this.isBaby()) {
this.setUnhappy();
@@ -5054,7 +5063,7 @@ index 11935e5b16324af572b07c5b173708f5a91f8289..42cfa847b29d8f265c7059bf4f93319c
} else {
boolean flag = this.getOffers().isEmpty();
@@ -324,8 +351,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -331,8 +353,9 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
}
if (flag) {
@@ -5163,7 +5172,7 @@ index 78dd3365dc4d1265fc2102f740d75a384f5df5c5..4a2331c22a022881d66bcfd4134b0ffe
public boolean isPickable() {
return false;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 1727e932ac6b9ca09b5df96f9547ff125114e15a..f8ac77be62ee1220e0373ade55fdee1cb32750e9 100644
index 17113544383fb4e6373d8f6151c536fecb00e0be..1c89cbf1a582604ed4be0849bd65dae5eb17f28a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1227,4 +1227,27 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index eed3fa6b14b1e93f8d6571bba5675796e3418f49..dc685733cbbd83408437085602e7a7c18d109e29 100644
index 7fc1887f68092da224a1ea1c56de474b471a8aee..90c3abe376a89179662022bed1ed390c89ec4279 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -157,7 +157,7 @@ import org.bukkit.plugin.PluginManager;
@@ -34,10 +34,10 @@ index 75c278b67ad2b78766efd8f89c4c2ca7eb7cdcb2..dc99e7f0e6f173c1313c0d5e9ea5dd6b
protected ParticleOptions getInkParticle() {
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
index 629cfd889ebfbf79b06fc42d81d7e0839a927915..23a59cf45f89f3d4d9ac98aada26a9027c2485f0 100644
index bab5a6c1bcff734620ccb015f071d73b70bbc901..0ec25e8bc94b8abb144b47d60e6cfa54c360156f 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -287,6 +287,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.useItem = ItemStack.EMPTY;
this.lastClimbablePos = Optional.empty();
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur
@@ -45,7 +45,7 @@ index 629cfd889ebfbf79b06fc42d81d7e0839a927915..23a59cf45f89f3d4d9ac98aada26a902
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
this.entityData.set(LivingEntity.DATA_HEALTH_ID, (float) this.getAttribute(Attributes.MAX_HEALTH).getValue());
@@ -302,6 +303,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -301,6 +302,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()))));
}
@@ -55,7 +55,7 @@ index 629cfd889ebfbf79b06fc42d81d7e0839a927915..23a59cf45f89f3d4d9ac98aada26a902
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
index 74b28d8a27b702896906603e7a39b91c79561ac5..6aec149f450e0559c613dcc272ba48634d0083c0 100644
index 384fa039b11fb70c2d04df447b689aef3e808968..92777e7f6c6293c5b5689cfa5f992335629d05eb 100644
--- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java
+++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java
@@ -268,6 +268,18 @@ public class Bat extends AmbientCreature {
@@ -459,7 +459,7 @@ index 2efa2e19485f9d959a55115ab62f985454689379..eecdb1f1d49951cb8a294d176afd12c6
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
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 12fc57798dae50ffdd6118202309c872ab6b332d..287fa341c3ec5c3e63c6646b0f88485fcbbdbe51 100644
index 877c1050e4c38943f6e8c3f81fa4f2884aba5b11..c7d9c34582b52d0bb088c624bd909ad5acb248fa 100644
--- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -115,6 +115,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder<Axolo
@@ -775,7 +775,7 @@ index 152111ff4c29e6cf13afeba8c9707f407c2b3531..e9cdda0dd902cade5cc32acf4dcdc6c3
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
}
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 f0fa5f69985dde27d0e7dd1ed2c96d31137be647..8dc320e1b5bdb042d87d4d0f6380ca19bf50a1f3 100644
index e03a01940eb5a5d7a3924a5ad1214258ce0f4b46..8ae399d7e0ff706b0486f198b16dadfe8b5ca32a 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -112,6 +112,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -790,7 +790,7 @@ index f0fa5f69985dde27d0e7dd1ed2c96d31137be647..8dc320e1b5bdb042d87d4d0f6380ca19
@Override
protected PathNavigation createNavigation(Level world) {
FlyingPathNavigation navigationflying = new FlyingPathNavigation(this, world);
@@ -420,7 +425,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -427,7 +432,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
this.setInvulnerableTicks(i);
if (this.tickCount % 10 == 0) {
@@ -832,7 +832,7 @@ index 562faf0257388d9c22146a418f25716cef7471b8..c8bac8cb738ad96003a014b468681c43
public boolean doHurtTarget(Entity target) {
if (super.doHurtTarget(target)) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index 66b2fdcda53fdfd278994dc16be3e12041be6e99..e31094f270117dec3053620c06e409953fb6d710 100644
index 7b17195c3e872822f92760c2977af3afa395b183..33ba948bafc879f6e9cd28f7fe6bce85628cc463 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -250,6 +250,11 @@ public class Creeper extends Monster implements PowerableMob {
@@ -885,7 +885,7 @@ index 37afe706c5c453003ea96e62f376f45d7b8eb4a8..971210c1199ec48f28446e75d8d796a1
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
index 14c614dfdffd27756298b0105f0dbe139047e251..e7fbcd1e1c4a6a8f92c2e6dd3d71f6b71fc04e7b 100644
index 21e5102761876ceafce87fc824bf8392c354341a..ac1c9f44f2a9b7294f2999c70d7dfddb4f0c1ca2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -115,6 +115,11 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -1225,7 +1225,7 @@ index 5d15c491034e2bd9c136935f5b266e2de3e85729..28ee425910a6c2412dc4b4a7f7986e47
this.setHealth(this.getMaxHealth());
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
index 5a578ab80853f8961afeec2aae76ed521f486430..f8e842327375497416783aef486e6960653b0184 100644
index 5944ded9de9fac56136b30858fbf8236f8f6f555..333b064383e9ee3b075429f8cd14b4b71cec1853 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -70,6 +70,11 @@ public class Spider extends Monster {
@@ -1424,7 +1424,7 @@ index 252d2994fac423ea1fef36bdc7c09778203049cb..fa5fa58ee03243054a38475634a6aa67
@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
index e2ff79328877e417193849a81ae5342a5d0701e2..3a98f2fab709cd83f853f59a5678fdd4b7bd70d3 100644
index d040198ce528293ed95adcdb17ddf0acbc5a93e0..22788892f7286f3fa6b40059b2bedaf0c6ec5ef3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -86,6 +86,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1440,7 +1440,7 @@ index e2ff79328877e417193849a81ae5342a5d0701e2..3a98f2fab709cd83f853f59a5678fdd4
public boolean canBeLeashed(Player player) {
return !this.isLeashed();
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 89d2a5b17b7f948fff041d8aec51424b54d3ea49..7c1e3bdd68433319681c67251c82c6810e69dbcb 100644
index f57d7fee1ece00aba9bc7b07dda8398e7acc73c3..d9b1bde3ce458b7e50f7645d07ee578d13006a0a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -113,6 +113,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1472,10 +1472,10 @@ index 2d842c0dfce1c7e7229bd42b2a92c024a4162b68..04e54c241078e6cd6419a21ba1bf913f
return Monster.createMonsterAttributes().add(Attributes.MAX_HEALTH, 50.0D).add(Attributes.MOVEMENT_SPEED, (double)0.35F).add(Attributes.ATTACK_DAMAGE, 7.0D);
}
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 42cfa847b29d8f265c7059bf4f93319ce938ee05..9351ab40c4bef3febcbb8b2c2b7a4391f56a25ef 100644
index 4ae36a344143c5aed4266dfef2920ff3d83b1b48..c21b06edb9507ddf9e5a1de56164d9c187f83cab 100644
--- a/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
}
// Purpur end

View File

@@ -243,7 +243,7 @@ index 3b0d3e9a067fccb10122c273aaf658ba240aa716..9b7fd460d3393e07970c66fec7f35a91
for (int i = 0; i < this.getSize(); i++) {
if (i >= items.length) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 8ad548fc059568d37675e017548b171d4dd1d555..7937023274acf3a1efdd21bbdd2f933f4399baeb 100644
index 463af65182c0894a75a138df8100f3f616143f4c..a0eb18409f72afe393581e6dc8e2260b3a25197f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -177,4 +177,39 @@ public class PurpurConfig {

View File

@@ -78,7 +78,7 @@ index f709667d2efab5f7dac22bb6e4b0bf32917f71e4..387e2423d820e4df1d226ce6159a361d
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
index bec249a47f1fbcabd6a121399d19d71e21edccae..85d927e7970480f98ceeb7926e27413f893ec5a6 100644
index 44b8b9dfc9182a6ce0d01b003749946e90e3aedb..57fb7dc5bb61f4433c6569c8d46656762dcc0cc1 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -326,6 +326,20 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -124,7 +124,7 @@ index bec249a47f1fbcabd6a121399d19d71e21edccae..85d927e7970480f98ceeb7926e27413f
// Skip the first time we do this
if (true) { // Spigot - don't skip any move events
Location oldTo = to.clone();
@@ -1494,7 +1516,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1495,7 +1517,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
if (!event.isAllowed()) {
flag2 = true; // Paper - diff on change, this should be moved wrongly
if (event.getLogWarning())
@@ -133,7 +133,7 @@ index bec249a47f1fbcabd6a121399d19d71e21edccae..85d927e7970480f98ceeb7926e27413f
}
// Paper end
}
@@ -1556,6 +1578,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1557,6 +1579,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -177,7 +177,7 @@ index 2986c3b1c9dd7f3a00ed7f25b25bfc2b513b35eb..8d199ed2f0b2f50a57f9854cc1400548
private EntitySelector() {}
// Paper start
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 c157309ac78e7af084d3acb6e8b2bcd469a39d5e..631b6f26c96e7de65c8ab5377f1b82c7f56df96c 100644
index ac5e5676b194a2a99e5cf53eb89c1152cac963b8..872454743f6dedc27519a13566559195c47cc9f8 100644
--- a/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 {
@@ -317,10 +317,10 @@ index e248395ad5f5f012aeefecf367d54f90cade0996..70f53ccb22de2c05c9ead68f8bd29d0b
public boolean untamedTamablesAreRidable = true;
public boolean useNightVisionWhenRiding = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 59103744ac6beeb12719fdefcda54eeff498229e..30050800118a474dfd0a23cb66fd55de4c65ca1e 100644
index c0333ba8e57cd284bb8ab15181da6b39d55872f9..282a57df4e2e5708e9cfd9c76b1d7de2a8a23900 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -199,6 +199,7 @@ public class ActivationRange
@@ -203,6 +203,7 @@ public class ActivationRange
continue;
}

View File

@@ -17,10 +17,10 @@ index 1643186bcb2caf5d29fd551afd35830726dbb80a..d53e0b67d847dfec2f4b118b5ca3f0ed
public final boolean spawnNpcs = this.get("spawn-npcs", true);
public final boolean pvp = this.get("pvp", true);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 29f28a197d39b58c6eb3eac14b788dafb7768d91..519a42c881c05db60f7e9efd22f1692ccf7359d3 100644
index eb6b2727d43ca991ef99a88413de95c1546b7696..95ecdbc0d06d4ca7afb1be62d25a09cda33a236b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3244,4 +3244,11 @@ public final class CraftServer implements Server {
@@ -3249,4 +3249,11 @@ public final class CraftServer implements Server {
}
// Paper end

View File

@@ -5,20 +5,20 @@ 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
index 81e4b7254e1c3cb714a9c37d941ff1b5d9e758ed..6339131c21398928e771a3172603da3a9c02561b 100644
index 2dd32f61efa12689b08a54f30deac397ec49cef4..c19d456168d36c1c2ea7823f47b25644798a97c7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1867,7 +1867,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1869,7 +1869,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@DontObfuscate
public String getServerModName() {
- return "Purpur"; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
+ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
- return "Purpur"; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
+ return org.purpurmc.purpur.PurpurConfig.serverModName; // Purpur - Purpur > // Pufferfish - Pufferfish > // Paper - Paper > // Spigot - Spigot > // CraftBukkit - cb > vanilla!
}
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 3fba9f640ef03219c89a2a405e4d5a5870e366bf..bb7acf61cf2928181d014a17166d4d1414218e01 100644
index 7312ae7323032a0ba3c47aa7bdfe5dffe9674535..881c5654f181ea9b66e1cdf3bc3bf46869e8557f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -188,6 +188,11 @@ public class PurpurConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity safeFallDistance
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039c8f0750a 100644
index 0ec25e8bc94b8abb144b47d60e6cfa54c360156f..0dceaee37d67d64f73d0434f480934aab320b0e6 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -253,6 +253,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -252,6 +252,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
protected boolean skipDropExperience;
// CraftBukkit start
public int expToDrop;
@@ -16,7 +16,7 @@ index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039
public boolean forceDrops;
public ArrayList<DefaultDrop> drops = new ArrayList<>(); // Paper
public final org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes;
@@ -353,7 +354,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -352,7 +353,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.tryAddSoulSpeed();
}
@@ -25,7 +25,7 @@ index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039
double d1 = this.getX();
double d2 = this.getY();
double d3 = this.getZ();
@@ -368,7 +369,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -367,7 +368,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
d3 = (double) landedPosition.getZ() + 0.5D + d5 / d6 * 0.5D;
}
@@ -34,7 +34,7 @@ index b8375bba69aa8e46db334a1094a071665d9c1a8b..bcdf09cdc8bd54068440237f0a4a1039
double d7 = Math.min((double) (0.2F + f / 15.0F), 2.5D);
int i = (int) (150.0D * d7);
@@ -2068,7 +2069,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2094,7 +2095,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
MobEffectInstance mobeffect = this.getEffect(MobEffects.JUMP);
float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1);

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Lagging threshold
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6339131c21398928e771a3172603da3a9c02561b..c442cf9a6856715ab7c404eb8e287bd67e20ae06 100644
index c19d456168d36c1c2ea7823f47b25644798a97c7..9c176d77420ffe0acdb57b333602c5e2102660a6 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -307,6 +307,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -16,7 +16,7 @@ index 6339131c21398928e771a3172603da3a9c02561b..c442cf9a6856715ab7c404eb8e287bd6
public volatile Thread shutdownThread; // Paper
public volatile boolean abnormalExit = false; // Paper
@@ -1195,6 +1196,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1197,6 +1198,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.recentTps[1] = tps5.getAverage();
this.recentTps[2] = tps15.getAverage();
// Paper end
@@ -25,10 +25,10 @@ index 6339131c21398928e771a3172603da3a9c02561b..c442cf9a6856715ab7c404eb8e287bd6
} else curTime = Util.getNanos(); // Paper
// Spigot end
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 519a42c881c05db60f7e9efd22f1692ccf7359d3..10e3a712305661eaf4a0d3b7f23c404c080d4458 100644
index 95ecdbc0d06d4ca7afb1be62d25a09cda33a236b..69670bf1c4713b70fb731ba43b8d5aea7922393b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -3250,5 +3250,10 @@ public final class CraftServer implements Server {
@@ -3255,5 +3255,10 @@ public final class CraftServer implements Server {
public String getServerName() {
return this.getProperties().serverName;
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] PlayerSetSpawnerTypeWithEggEvent
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..b04f03d422a9ed4c6bf090e895a2d9a74f48ea61 100644
index a63399eedb896c06e96c7fba5cac7102e1c40ba6..44aa32b49fa32fbaf86625c0eed7c2e01d8f212c 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -318,6 +318,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -320,6 +320,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
}
@@ -25,7 +25,7 @@ index 940b8d0b89d7e55c938aefbe80ee71b0db3dacb8..b04f03d422a9ed4c6bf090e895a2d9a7
public static ResourceLocation getKey(EntityType<?> type) {
return BuiltInRegistries.ENTITY_TYPE.getKey(type);
}
@@ -533,6 +543,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -535,6 +545,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
return this.category;
}

View File

@@ -53,7 +53,7 @@ index 2677e21d8239bf0361a3bc5c9a50c328e54d70f6..544a79d5da661aff19e2019f7b83a3a4
if (MinecraftServer.getServer() != null && MinecraftServer.getServer().isDebugging()) {
new Exception().printStackTrace();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index ad239ba9259c5a63b40261ebc44224893496b47d..308d7556f5b12c0aa5b2fde5a23ef6fbacb303de 100644
index a14cf3a5dc2ba265de5e400404afcbd9faa3f25a..a14879f4266c71b7493c05e105114590c6709045 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -237,4 +237,15 @@ public class PurpurConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Disable outdated build check
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index fa38d6dd3a7439de3b2503a90637eabb3e6dd8ec..f93c8a4ca38e7d892b6941d3669445789c2fc227 100644
index 4f81321727b754c0e101bb05bc6474203412e89e..cce747b8a2d87d81429dfaf1e0073b1ea4b1a5d2 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -301,7 +301,7 @@ public class Main {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Zombie horse naturally spawn
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 35cc427755cccb123a866220bd2a72cdbd723465..231d4065b1129815d443e76269eefba45857b59a 100644
index 53131fc1fc02df8f60f0a44dd8c3a5a53e24fddb..7126dacffb7302927a6ca88ce3bfdec975ee342f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1001,10 +1001,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -1017,10 +1017,18 @@ public class ServerLevel extends Level implements WorldGenLevel {
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
if (flag1) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Charged creeper naturally spawn
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index e31094f270117dec3053620c06e409953fb6d710..a1e3f29ce49dc41ad70f74ee224250fe9ebea175 100644
index 33ba948bafc879f6e9cd28f7fe6bce85628cc463..7770880c9525805b67199f3c6b54618af15d106f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -255,6 +255,14 @@ public class Creeper extends Monster implements PowerableMob {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add option to set armorstand step height
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 4e21ff640261d95f7db1134793fb5e2e91015fd6..e664ca676c21b1c7fdc9df00797060053901e1f7 100644
index 90c3abe376a89179662022bed1ed390c89ec4279..5cc0caee5ba7d63fb1ec4144623ec9a94401c86c 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -335,7 +335,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Minecart settings and WASD controls
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index f9db41f311ad564380587bb2a0b69129e93ef87c..cf38a82b53d98aae4938fededcdad7d9110f3c40 100644
index 387e2423d820e4df1d226ce6159a361d6a808fd9..e2e25a4ac86156f0915a0b9886a6f62b2812920b 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -1111,6 +1111,7 @@ public class ServerPlayer extends Player {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Disable loot drops on death by cramming
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index a8d09f76361cc3146aaeba72b7338049b30eb2cb..ade6fcdf6f6fd80bc91ffc313226a41ba0c4e18d 100644
index 0dceaee37d67d64f73d0434f480934aab320b0e6..4d0332666d705610d3e48c96462ef655f2fd2ed5 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1828,6 +1828,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1840,6 +1840,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
this.dropEquipment(); // CraftBukkit - from below
if (this.shouldDropLoot() && this.level().getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT)) {
@@ -16,7 +16,7 @@ index a8d09f76361cc3146aaeba72b7338049b30eb2cb..ade6fcdf6f6fd80bc91ffc313226a41b
this.dropFromLootTable(source, flag);
// Paper start
final boolean prev = this.clearEquipmentSlots;
@@ -1836,6 +1837,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1848,6 +1849,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
// Paper end
this.dropCustomDeathLoot(source, i, flag);
this.clearEquipmentSlots = prev; // Paper

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] End gateway should check if entity can use portal
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
index 1ec80f9c901dff1c9f29befa5a8e3c3f6f37aaf7..9717b37aef9f487502e696c209ae209ab3b8f000 100644
index 7491e075baebc7d412d35593bb844b200e304447..2e264b8b13df9da9163a80b3dd4345af3cff431c 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TheEndGatewayBlockEntity.java
@@ -177,6 +177,7 @@ public class TheEndGatewayBlockEntity extends TheEndPortalBlockEntity {

View File

@@ -5,10 +5,10 @@ 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
index c442cf9a6856715ab7c404eb8e287bd67e20ae06..0d4d62757e7b15767ec62f59e287ab3a94be8c03 100644
index 9c176d77420ffe0acdb57b333602c5e2102660a6..9b757a89bc00deef41bd9adc614bbeff30975034 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1218,7 +1218,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1220,7 +1220,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
} : this::haveTime);
this.profiler.popPush("nextTickWait");
this.mayHaveDelayedTasks = true;
@@ -24,7 +24,7 @@ index c442cf9a6856715ab7c404eb8e287bd67e20ae06..0d4d62757e7b15767ec62f59e287ab3a
if (flag) {
this.tickRateManager.endTickWork();
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 308d7556f5b12c0aa5b2fde5a23ef6fbacb303de..e2edbb0842862b8ffdf30cec104a1d71a71e92e0 100644
index a14879f4266c71b7493c05e105114590c6709045..909cfeba89c2370adc2eebf72ba8ad46d33bce7b 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -248,4 +248,9 @@ public class PurpurConfig {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add enderman and creeper griefing controls
diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
index a1e3f29ce49dc41ad70f74ee224250fe9ebea175..5bfeb39a23a72f57523a3c2db1d79c7aef70eb02 100644
index 7770880c9525805b67199f3c6b54618af15d106f..54184d7641e435654e987f866162b610a9352947 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -362,7 +362,7 @@ public class Creeper extends Monster implements PowerableMob {
@@ -18,10 +18,10 @@ index a1e3f29ce49dc41ad70f74ee224250fe9ebea175..5bfeb39a23a72f57523a3c2db1d79c7a
this.spawnLingeringCloud();
// CraftBukkit start
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 e7fbcd1e1c4a6a8f92c2e6dd3d71f6b71fc04e7b..4530193e6b5d67cc6a1783b6ea537764bb5725cd 100644
index ac1c9f44f2a9b7294f2999c70d7dfddb4f0c1ca2..2af9b2334a4baa15620b06ffddfbc60833bd4187 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -541,6 +541,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -547,6 +547,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {
@@ -29,7 +29,7 @@ index e7fbcd1e1c4a6a8f92c2e6dd3d71f6b71fc04e7b..4530193e6b5d67cc6a1783b6ea537764
return this.enderman.getCarriedBlock() == null ? false : (!this.enderman.level().getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? false : this.enderman.getRandom().nextInt(reducedTickDelay(2000)) == 0);
}
@@ -586,6 +587,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -592,6 +593,7 @@ public class EnderMan extends Monster implements NeutralMob {
@Override
public boolean canUse() {

View File

@@ -30,10 +30,10 @@ index 5a591c439c5cef6b7e7e6f836ab813cb4f29b08c..44bb73e6846fc5f536b6efd5db7c5f15
// CraftBukkit start
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
index 9351ab40c4bef3febcbb8b2c2b7a4391f56a25ef..0f400bfec294e20b620b7a1ad51bb670e1eee418 100644
index c21b06edb9507ddf9e5a1de56164d9c187f83cab..a39457752612fc0dbbb022cb7faebc73bc2ad5e5 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -153,6 +153,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -155,6 +155,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getNavigation().setCanFloat(true);
this.setCanPickUpLoot(true);
this.setVillagerData(this.getVillagerData().setType(type).setProfession(VillagerProfession.NONE));

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 1fc2b2cee28db5abb8ab33df6fd76de035aef688..84a41eaaa3e2bc2be1706dc436dea21195f7d81c 100644
index 05eecaf3147051c44f9c4abce178c3126385c825..c77da33c38ddb9a383cb39e8a8837e67cf545bda 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1311,6 +1311,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1317,6 +1317,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
if (!this.isAlive()) {
return InteractionResult.PASS;
} else if (this.getLeashHolder() == player) {
@@ -17,10 +17,10 @@ index 1fc2b2cee28db5abb8ab33df6fd76de035aef688..84a41eaaa3e2bc2be1706dc436dea211
// Paper start - drop leash variable
org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild);
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 0f400bfec294e20b620b7a1ad51bb670e1eee418..0df7acbdf1c8d0546eb57291bfa952943a5f6520 100644
index a39457752612fc0dbbb022cb7faebc73bc2ad5e5..f4ed6ae7e8f122a0a2ce7f4488b0fe1ed0c7da3d 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -183,6 +183,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -185,6 +185,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.villagerMaxHealth);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement infinite liquids
diff --git a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..ad077179fe5cf4acbfbe7572470201ab91817996 100644
index c55f51e6db55f9fa66f53eef0e7a56af5f81d742..74688f4672936cd2ac629b9f2f404163df6730e9 100644
--- a/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
+++ b/src/main/java/net/minecraft/world/level/material/FlowingFluid.java
@@ -218,7 +218,7 @@ public abstract class FlowingFluid extends Fluid {
@@ -228,7 +228,7 @@ public abstract class FlowingFluid extends Fluid {
}
}
@@ -17,7 +17,7 @@ index e21f4c5aff3a8e97101f6efc1349fbecf326b5ea..ad077179fe5cf4acbfbe7572470201ab
BlockState iblockdata2 = world.getBlockState(pos.below());
FluidState fluid1 = iblockdata2.getFluidState();
@@ -302,6 +302,12 @@ public abstract class FlowingFluid extends Fluid {
@@ -337,6 +337,12 @@ public abstract class FlowingFluid extends Fluid {
protected abstract boolean canConvertToSource(Level world);

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable void damage height and damage
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 14318ffea715e7175f5d5d02a1fce84ff2f0ff80..ab1b3e634ab110e7f6cd98468e30b0b48367c25e 100644
index 5cc0caee5ba7d63fb1ec4144623ec9a94401c86c..ed1d9e97d0892e2c51915b1b8636791ea261943b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -885,7 +885,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -897,7 +897,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void checkBelowWorld() {
// Paper start - Configurable nether ceiling damage
@@ -18,10 +18,10 @@ index 14318ffea715e7175f5d5d02a1fce84ff2f0ff80..ab1b3e634ab110e7f6cd98468e30b0b4
&& (!(this instanceof Player player) || !player.getAbilities().invulnerable))) {
// Paper end
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index ade6fcdf6f6fd80bc91ffc313226a41ba0c4e18d..6a5a04c605772bb9314591aa2f64b91aca4e2e0c 100644
index 4d0332666d705610d3e48c96462ef655f2fd2ed5..0b5e92a5b631da4c9b700e3d65297d639f792986 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2514,7 +2514,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -2540,7 +2540,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@Override
protected void onBelowWorld() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add canSaveToDisk to Entity
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index ab1b3e634ab110e7f6cd98468e30b0b48367c25e..bc59457a526232f7b962d3fb575d0678524eba0a 100644
index ed1d9e97d0892e2c51915b1b8636791ea261943b..c1d82f042da0628450cbbf4b45f6db7552ba268a 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -491,6 +491,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -497,6 +497,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
return false;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 84a41eaaa3e2bc2be1706dc436dea21195f7d81c..ed72f020394f4dd0f1fb21953e69b1aa9716b262 100644
index c77da33c38ddb9a383cb39e8a8837e67cf545bda..a05a7cf2c28b62011a3477c5155a05a93ecab548 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -66,6 +66,7 @@ import net.minecraft.world.item.ProjectileWeaponItem;
@@ -16,7 +16,7 @@ index 84a41eaaa3e2bc2be1706dc436dea21195f7d81c..ed72f020394f4dd0f1fb21953e69b1aa
import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level;
@@ -1169,6 +1170,12 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1175,6 +1176,12 @@ public abstract class Mob extends LivingEntity implements Targeting {
}

View File

@@ -27,7 +27,7 @@ index 066b9e4c4f0e7773548eda045cdd1ca8445221d2..92eaba96135ccddb7d682dab7e82cde9
setListData(vector);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 0d4d62757e7b15767ec62f59e287ab3a94be8c03..6206d19c2861996699ced5eccfff8ee8ab3a7727 100644
index 9b757a89bc00deef41bd9adc614bbeff30975034..2bc4073bb331e4b3beae9cccb06d3ca46f9d3b24 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -303,7 +303,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -39,7 +39,7 @@ index 0d4d62757e7b15767ec62f59e287ab3a94be8c03..6206d19c2861996699ced5eccfff8ee8
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
public static long currentTickLong = 0L; // Paper
@@ -1078,6 +1078,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1080,6 +1080,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0;
private long catchupTime = 0;
@@ -47,7 +47,7 @@ index 0d4d62757e7b15767ec62f59e287ab3a94be8c03..6206d19c2861996699ced5eccfff8ee8
public final RollingAverage tps1 = new RollingAverage(60);
public final RollingAverage tps5 = new RollingAverage(60 * 5);
public final RollingAverage tps15 = new RollingAverage(60 * 15);
@@ -1188,13 +1189,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1190,13 +1191,17 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
curTime = Util.getNanos();
final long diff = curTime - tickSection;
java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
@@ -69,10 +69,10 @@ index 0d4d62757e7b15767ec62f59e287ab3a94be8c03..6206d19c2861996699ced5eccfff8ee8
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur
tickSection = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 10e3a712305661eaf4a0d3b7f23c404c080d4458..19d2c4c6de4cd5130be06fb368cd12b9581984a1 100644
index 69670bf1c4713b70fb731ba43b8d5aea7922393b..c0bb753a844507fb1f892826b50f23ba17a2e5bd 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2968,6 +2968,7 @@ public final class CraftServer implements Server {
@@ -2973,6 +2973,7 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {
return new double[] {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 6a5a04c605772bb9314591aa2f64b91aca4e2e0c..411d204edd6ea805c0566c6d7ac76dbdd4428309 100644
index 0b5e92a5b631da4c9b700e3d65297d639f792986..57ffb039cf27117ec1ec1c822f9693a8ef03f6b7 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3540,7 +3540,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -3566,7 +3566,16 @@ public abstract class LivingEntity extends Entity implements Attackable {
int j = i / 10;
if (j % 2 == 0) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 35674f92a67f93382103c2766df4b678ba5c862f..ed520d535cd8e7507f45f69de393795bd90edd3c 100644
index d46e61640b241d32df05240dedd2c23f138725e6..c6ef510d335b8baea58c4491853414a52a06b66b 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -73,7 +73,7 @@ public class ServerEntity {

View File

@@ -17,7 +17,7 @@ index 471270f302cbfaf81500976fcc5a02eaed4120f3..0aeee502c60a81e6a9ca765e57ab27f5
if (environment.includeIntegrated) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index e2edbb0842862b8ffdf30cec104a1d71a71e92e0..35400f352d44be9a32eb69eb87a3ffdeef9a20b3 100644
index 909cfeba89c2370adc2eebf72ba8ad46d33bce7b..e8160e63470cf2f3d15eeb2e7f83d3694cfc4db8 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -179,6 +179,7 @@ public class PurpurConfig {

View File

@@ -17,7 +17,7 @@ index 0aeee502c60a81e6a9ca765e57ab27f5c588ac1d..2bfcd4222daa7c5b5cc8cfa0545241af
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 35400f352d44be9a32eb69eb87a3ffdeef9a20b3..00fb3507118960046a61d8a21f9654f279d53874 100644
index e8160e63470cf2f3d15eeb2e7f83d3694cfc4db8..994da2c5bbba190507bbcee7029bee974eb3c641 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -179,6 +179,7 @@ public class PurpurConfig {

View File

@@ -17,7 +17,7 @@ index 2bfcd4222daa7c5b5cc8cfa0545241afd3cb8d15..575f026c086e24663b5d382229154609
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 00fb3507118960046a61d8a21f9654f279d53874..d98e16bc47d3bc458281956bf538f4a37bd0f4b7 100644
index 994da2c5bbba190507bbcee7029bee974eb3c641..2e78d67201e66c1f3fd1f45ed625e682ea074848 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -179,6 +179,7 @@ public class PurpurConfig {

View File

@@ -27,10 +27,10 @@ index aa0f09a18ea781e027ea70928b30d3e93061120f..5cb8f1e13f4889792395d6b498c0ade2
return true;
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index e4165be5d645976f4284937b8b1e05fc8a7717d0..8dfad69534dd4d191c7292684e300b5f23a1dc63 100644
index b13b0be860df85af973c36f0ef10bfe09aa0aaf9..93f6dc91b1ea9191941933aac42b8e4ddb1f028d 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1894,4 +1894,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1897,4 +1897,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
}
// Paper end - notify observers even if grow failed

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 34a369dd615c4701d1bfb66a51623eab8e0b3080..2d29caa16c754b06cbfe91038b673668a1b61d02 100644
index 57fb7dc5bb61f4433c6569c8d46656762dcc0cc1..166943d26c1123d07080cb1d0e0f081cfff06246 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1233,13 +1233,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1234,13 +1234,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
itemstack1.setTag(nbttagcompound.copy());
}
@@ -28,7 +28,7 @@ index 34a369dd615c4701d1bfb66a51623eab8e0b3080..2d29caa16c754b06cbfe91038b673668
this.updateBookPages(pages, (s) -> {
return Component.Serializer.toJson(Component.literal(s));
@@ -1251,10 +1254,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1252,10 +1255,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
private void updateBookPages(List<FilteredText> list, UnaryOperator<String> unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit
ListTag nbttaglist = new ListTag();
@@ -44,7 +44,7 @@ index 34a369dd615c4701d1bfb66a51623eab8e0b3080..2d29caa16c754b06cbfe91038b673668
Objects.requireNonNull(nbttaglist);
stream.forEach(nbttaglist::add);
@@ -1264,11 +1270,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1265,11 +1271,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
for (int j = list.size(); i < j; ++i) {
FilteredText filteredtext = (FilteredText) list.get(i);
@@ -58,7 +58,7 @@ index 34a369dd615c4701d1bfb66a51623eab8e0b3080..2d29caa16c754b06cbfe91038b673668
}
}
@@ -1281,6 +1287,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -1282,6 +1288,16 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(this.player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent)
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 22e0370498dac0f56e29ae483097bf453a277450..224e0453fc51224e8a4937a1d089053e54b6f9e0 100644
index 166943d26c1123d07080cb1d0e0f081cfff06246..18c614881388610fb78bd5101c54ffbb3c753e55 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2741,6 +2741,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
@@ -2742,6 +2742,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
AABB axisalignedbb = entity.getBoundingBox();
if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) {
@@ -17,7 +17,7 @@ index 22e0370498dac0f56e29ae483097bf453a277450..224e0453fc51224e8a4937a1d089053e
private void performInteraction(InteractionHand enumhand, ServerGamePacketListenerImpl.EntityInteraction playerconnection_a, PlayerInteractEntityEvent event) { // CraftBukkit
ItemStack itemstack = ServerGamePacketListenerImpl.this.player.getItemInHand(enumhand);
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b997397cc 100644
index a05a7cf2c28b62011a3477c5155a05a93ecab548..906f3ed7883cd220734a92a5f032ec89674f5b97 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -136,6 +136,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -28,7 +28,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b
public boolean aware = true; // CraftBukkit
protected Mob(EntityType<? extends Mob> type, Level world) {
@@ -323,6 +324,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -325,6 +326,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
entityliving = null;
}
}
@@ -36,7 +36,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b
this.target = entityliving;
return true;
// CraftBukkit end
@@ -370,8 +372,28 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -372,8 +374,28 @@ public abstract class Mob extends LivingEntity implements Targeting {
}
this.level().getProfiler().pop();
@@ -65,7 +65,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b
@Override
protected void playHurtSound(DamageSource source) {
this.resetAmbientSoundTime();
@@ -561,6 +583,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -563,6 +585,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
}
nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit
@@ -73,7 +73,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b
}
@Override
@@ -631,6 +654,11 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -633,6 +656,11 @@ public abstract class Mob extends LivingEntity implements Targeting {
this.aware = nbt.getBoolean("Bukkit.Aware");
}
// CraftBukkit end
@@ -85,7 +85,7 @@ index ed72f020394f4dd0f1fb21953e69b1aa9716b262..b98bf8243e8014f8ef4aa0cfaddf301b
}
@Override
@@ -1703,6 +1731,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
@@ -1709,6 +1737,7 @@ public abstract class Mob extends LivingEntity implements Targeting {
this.setLastHurtMob(target);
}

View File

@@ -36,10 +36,10 @@ index e2e25a4ac86156f0915a0b9886a6f62b2812920b..47cc6799f0d48debe4b63280a6814ead
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 83e74527b730a644a69f582b218dbc8d4f35ee61..1ba0b1975135eb29d59f1153e9f5c5019e488bd8 100644
index 57ffb039cf27117ec1ec1c822f9693a8ef03f6b7..f3d882c889fc6eab2ced0efd0f17404ca6905a5d 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -427,6 +427,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -426,6 +426,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
double d1 = this.level().getWorldBorder().getDamagePerBlock();
if (d1 > 0.0D) {

View File

@@ -25,7 +25,7 @@ index 3d7726bd54781e922f9d2b5b1fea510d6295919e..3557d668d5117aaaef2fde0792b58c7e
public boolean spiderRidable = false;
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 30050800118a474dfd0a23cb66fd55de4c65ca1e..3fb2ae23bcbf0c397e91a958796f13a2dfedd152 100644
index 282a57df4e2e5708e9cfd9c76b1d7de2a8a23900..a7ecbd77d0017a298b94cceeddc049eff713f60f 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -15,6 +15,7 @@ import net.minecraft.world.entity.ambient.AmbientCreature;
@@ -36,7 +36,7 @@ index 30050800118a474dfd0a23cb66fd55de4c65ca1e..3fb2ae23bcbf0c397e91a958796f13a2
import net.minecraft.world.entity.animal.WaterAnimal;
import net.minecraft.world.entity.animal.horse.Llama;
import net.minecraft.world.entity.boss.EnderDragonPart;
@@ -379,6 +380,7 @@ public class ActivationRange
@@ -402,6 +403,7 @@ public class ActivationRange
*/
public static boolean checkIfActive(Entity entity)
{

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable villager breeding
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 0df7acbdf1c8d0546eb57291bfa952943a5f6520..ee8661840ddfbdf4a4726f96da61253a96878dfc 100644
index f4ed6ae7e8f122a0a2ce7f4488b0fe1ed0c7da3d..ce450d4b0d42443a47861dcb54b78a01ede734d1 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -784,7 +784,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -786,7 +786,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@Override
public boolean canBreed() {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Totems work in inventory
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 8148c9596a17396d37b820cac40f50c2073a0c00..d512d16abc1dff33e9b430d9ba5b960f1460f9ab 100644
index f3d882c889fc6eab2ced0efd0f17404ca6905a5d..1ff77c524464a256913b063bf621b850255885ba 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1618,6 +1618,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
@@ -1630,6 +1630,18 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Short enderman height
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index b04f03d422a9ed4c6bf090e895a2d9a74f48ea61..ef01a87a77954f19f017129ab186afea9e6389a2 100644
index 44aa32b49fa32fbaf86625c0eed7c2e01d8f212c..e5aa1bac908f947f2ed70a05194bf30b4cb55115 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -311,7 +311,8 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
@@ -313,7 +313,8 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
private Component description;
@Nullable
private ResourceLocation lootTable;
@@ -19,10 +19,10 @@ index b04f03d422a9ed4c6bf090e895a2d9a74f48ea61..ef01a87a77954f19f017129ab186afea
private static <T extends Entity> EntityType<T> register(String id, EntityType.Builder type) { // CraftBukkit - decompile error
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 4530193e6b5d67cc6a1783b6ea537764bb5725cd..6f7f4dd703a6a2cf2d90102b23538bb2104fb464 100644
index 2af9b2334a4baa15620b06ffddfbc60833bd4187..760a26722144da3f547802975484b01c377afe17 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
@@ -434,6 +434,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -440,6 +440,7 @@ public class EnderMan extends Monster implements NeutralMob {
if (this.isInvulnerableTo(source)) {
return false;
} else if (getRider() != null && this.isControllable()) { return super.hurt(source, amount); // Purpur - no teleporting on damage
@@ -31,7 +31,7 @@ index 4530193e6b5d67cc6a1783b6ea537764bb5725cd..6f7f4dd703a6a2cf2d90102b23538bb2
boolean flag = source.getDirectEntity() instanceof ThrownPotion;
boolean flag1;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 387da71594b75a43100790e8e8d69d9246598537..e813c87f4cc90fd31a4a48fcfffbe2b4407e5f5d 100644
index de202a20cdc133d68fb44c56ee017cca153e1cf8..98cadc2f78cc259e3e81958bdc89ef81b8b6b1c3 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -244,6 +244,12 @@ public class PurpurConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Stop squids floating on top of water
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index bc59457a526232f7b962d3fb575d0678524eba0a..8f8a17180f8010a62af9b59faf035ec10bd8967a 100644
index c1d82f042da0628450cbbf4b45f6db7552ba268a..38bed7071513e9449d970ecfb628bd1ba37cd45f 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4431,6 +4431,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -4443,6 +4443,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
this.yRotO = this.getYRot();
}
@@ -19,7 +19,7 @@ index bc59457a526232f7b962d3fb575d0678524eba0a..8f8a17180f8010a62af9b59faf035ec1
+ // Purpur end
+
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
if (this.touchingUnloadedChunk()) {
if (false && this.touchingUnloadedChunk()) { // Pufferfish - cost of a lookup here is the same cost as below, so skip
return false;
diff --git a/src/main/java/net/minecraft/world/entity/animal/Squid.java b/src/main/java/net/minecraft/world/entity/animal/Squid.java
index 913b66be2111da862e706d4978825c64cfe8b00b..f68c18b6645981126329b58379946308bbb8ccf8 100644

View File

@@ -18,7 +18,7 @@ index 590cd053a1b1c2a489772a2879998725fe0d783c..ba3f79cc1f7e672f0a9d32d262122ec6
private static final float SAFE_TRAVEL_MAX_ENTITY_XY = 4.0F;
private static final double SAFE_TRAVEL_MAX_VERTICAL_DELTA = 1.0D;
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index e813c87f4cc90fd31a4a48fcfffbe2b4407e5f5d..6470f383b6f044877f0a4d8c91119d0eae451b8f 100644
index 98cadc2f78cc259e3e81958bdc89ef81b8b6b1c3..0f67955a289d904ea72f7c24d097f2f1c5a4a8f2 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -212,6 +212,7 @@ public class PurpurConfig {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Entities can use portals configuration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 8f8a17180f8010a62af9b59faf035ec10bd8967a..77ada6859c6fcc6929be5da350ac0f483dd1ae00 100644
index 38bed7071513e9449d970ecfb628bd1ba37cd45f..6651c11dfa81d4289637555f24c91f5f03a8c750 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -3137,7 +3137,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3149,7 +3149,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
public void handleInsidePortal(BlockPos pos) {
if (this.isOnPortalCooldown()) {
this.setPortalCooldown();
@@ -17,7 +17,7 @@ index 8f8a17180f8010a62af9b59faf035ec10bd8967a..77ada6859c6fcc6929be5da350ac0f48
if (!this.level().isClientSide && !pos.equals(this.portalEntrancePos)) {
this.portalEntrancePos = pos.immutable();
}
@@ -3846,7 +3846,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -3858,7 +3858,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public boolean canChangeDimensions() {

View File

@@ -6,10 +6,10 @@ Subject: [PATCH] Customizable wither health and healing
Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often.
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 8dc320e1b5bdb042d87d4d0f6380ca19bf50a1f3..61abb5ac7de7a71d7d652b134e3b75551a14961d 100644
index 8ae399d7e0ff706b0486f198b16dadfe8b5ca32a..84bd2cf1797f68eadbd0a21f2cfb6ce85710d928 100644
--- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -518,8 +518,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -525,8 +525,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
}
}

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Allow toggling special MobSpawners per world
In vanilla, these are all hardcoded on for world type 0 (overworld) and hardcoded off for every other world type. Default config behaviour matches this.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 231d4065b1129815d443e76269eefba45857b59a..361037daa20a2b262b68d9b717ee35dbc8a5c41b 100644
index 7126dacffb7302927a6ca88ce3bfdec975ee342f..dfec321501523e1d953811961d1b5495cb41d815 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -709,7 +709,24 @@ public class ServerLevel extends Level implements WorldGenLevel {

View File

@@ -18,10 +18,10 @@ index 9ec6145fe04ec64bbee8ec6a837719caebdbc6f5..358d610ad020cada1bb83e393deeeaae
public ClientboundSetTimePacket(long time, long timeOfDay, boolean doDaylightCycle) {
this.gameTime = time;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6206d19c2861996699ced5eccfff8ee8ab3a7727..de211102edf78f645d3129e690e9214b47935003 100644
index 2bc4073bb331e4b3beae9cccb06d3ca46f9d3b24..9de37c25f7a970326dc96a3dd4b2fddf59f404c9 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1690,7 +1690,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1692,7 +1692,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
long worldTime = level.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : level.players()) {
@@ -31,7 +31,7 @@ index 6206d19c2861996699ced5eccfff8ee8ab3a7727..de211102edf78f645d3129e690e9214b
}
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 361037daa20a2b262b68d9b717ee35dbc8a5c41b..e07d38b987cef9bddce3bee592f597a0e279f7e3 100644
index dfec321501523e1d953811961d1b5495cb41d815..3f95ede3602c3dea611ba9a6b4f6891419638283 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -216,6 +216,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -51,7 +51,7 @@ index 361037daa20a2b262b68d9b717ee35dbc8a5c41b..e07d38b987cef9bddce3bee592f597a0
}
// Paper start
@@ -964,6 +967,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -978,6 +981,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
this.serverLevelData.setGameTime(i);
this.serverLevelData.getScheduledEvents().tick(this.server, i);
if (this.levelData.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT)) {
@@ -65,7 +65,7 @@ index 361037daa20a2b262b68d9b717ee35dbc8a5c41b..e07d38b987cef9bddce3bee592f597a0
this.setDayTime(this.levelData.getDayTime() + 1L);
}
@@ -972,7 +982,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -986,7 +996,21 @@ public class ServerLevel extends Level implements WorldGenLevel {
public void setDayTime(long timeOfDay) {
this.serverLevelData.setDayTime(timeOfDay);

View File

@@ -17,7 +17,7 @@ index 518d85a13c37a2f7d32ca0718323181048559986..2c4ce164ab3011f372ff1719c8d4a333
}
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index 6470f383b6f044877f0a4d8c91119d0eae451b8f..de1a9b08946005d1235264c7658b51bbdc2c47c2 100644
index 0f67955a289d904ea72f7c24d097f2f1c5a4a8f2..8f98f665ec20c2df23a6f8bd891c502aba9a6ada 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -246,6 +246,16 @@ public class PurpurConfig {

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