merge upstream

This commit is contained in:
Ben Kerllenevich
2022-06-09 07:12:26 -04:00
parent 9ab5b07c78
commit 4b168c7792
41 changed files with 253 additions and 270 deletions

View File

@@ -1,7 +1,7 @@
group = org.purpurmc.purpur
version = 1.19-R0.1-SNAPSHOT
paperCommit = da8027352cd717878213b1a0bb0ef7fb8916e5cf
paperCommit = b26d590d0c0830f90ed4e1c5f76ead9de69a242e
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Rebrand
diff --git a/build.gradle.kts b/build.gradle.kts
index 50d35d6e60f398501af447319de9d6ccd4db8b00..c88e837d88309708c109561a2bdda1762332802f 100644
index 91fa33c642547e84b7af9046938f30aed0e0c16a..2dac3fae601fc9d8ec68db8a47010d727f043b8c 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,8 +9,8 @@ plugins {
@@ -19,7 +19,7 @@ index 50d35d6e60f398501af447319de9d6ccd4db8b00..c88e837d88309708c109561a2bdda176
// Paper start
implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("net.minecrell:terminalconsoleappender:1.3.0")
@@ -33,6 +33,9 @@ dependencies {
@@ -40,6 +40,9 @@ dependencies {
runtimeOnly("mysql:mysql-connector-java:8.0.29")
runtimeOnly("com.lmax:disruptor:3.4.4") // Paper
@@ -142,7 +142,7 @@ index bf42969859545a8a520923ef1836ffa4a5cc24a0..fba5dbdb7bcbb55400ef18342c9b5461
}
}
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
index e0b1f0671d16ddddcb6725acd25a1d1d69e42701..8c3c68465197fafc14849dc38a572e309931e2a2 100644
index b0390eedb507d27426d1e1d73bd4ab63aec89ebe..005fdd2e2ebc0b6f7cb06b2efdb705b9ed23a1ea 100644
--- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
+++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
@@ -17,7 +17,7 @@ public final class PaperConsole extends SimpleTerminalConsole {
@@ -170,7 +170,7 @@ index 1a859fef0848cf23a672012e9764965ae1c07ec5..14ed740609b14242c2a8d377a78b2f71
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 a06b1fb0eaba5ed91db4cf34240c1544662b5e97..7c7d98d889fe799990b1bb5c416be50719c21194 100644
index c3ca919ed60f027d6116a85cb79e3b6cd3bf1619..9df1401eb9361df0532b8f5fbfbb46e9923ae558 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -908,7 +908,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -192,10 +192,10 @@ index a06b1fb0eaba5ed91db4cf34240c1544662b5e97..7c7d98d889fe799990b1bb5c416be507
public SystemReport fillSystemReport(SystemReport details) {
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 9ad11f56daff4aa575c2079e54d0239dbab22d8d..23435bdcf53af99032b0d7ca683081d7e72d4d22 100644
index afc16bd5a2056d1ee8ce290ec1a6f67c0ac9aedb..6bcd1d35169c7bbe647cd7b829ca2785561750cb 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -285,11 +285,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -282,11 +282,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
// Spigot start
@@ -211,7 +211,7 @@ index 9ad11f56daff4aa575c2079e54d0239dbab22d8d..23435bdcf53af99032b0d7ca683081d7
// Spigot end
DedicatedServer.LOGGER.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
index 303b70f0433ff49a3bee2a0d92c41f01aec38bee..5e9fc979daced5dad9977ab12ea019f4e6216bfb 100644
index c31b9a6b1d4548d507ecb60d42ca9f96f49f6c4b..f613825c69a8d683b8029fe34503125969980341 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -113,7 +113,7 @@ public class RegionFileStorage implements AutoCloseable {
@@ -224,7 +224,7 @@ index 303b70f0433ff49a3bee2a0d92c41f01aec38bee..5e9fc979daced5dad9977ab12ea019f4
private static final int DEFAULT_SIZE_THRESHOLD = 1024 * 8;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a25222c01433170a5a536562159f1d0f80ba2fbe..a2a52ace5675d5f8aa8c6611b05ab92b2574585f 100644
index a7a038835579c599368e409b86cc5eecf0013952..24917a7d1a6792d5a4ae281200011ddb1bc5b931 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -243,7 +243,7 @@ import javax.annotation.Nullable; // Paper
@@ -237,7 +237,7 @@ index a25222c01433170a5a536562159f1d0f80ba2fbe..a2a52ace5675d5f8aa8c6611b05ab92b
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
index db77cdee224d14ec91e8d530dd65da51f3661a9c..4b9039dc6e9a1da3f65ccbb36e6e86b09341a8b3 100644
index 4e56018b64d11f76c8da43fd8f85c6de72204e36..aa8212432825db65cf485cd93f734ccd9eefcb5a 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/CraftConsoleCommandSender.java
@@ -21,7 +21,12 @@ public class CraftConsoleCommandSender extends ServerCommandSender implements Co
@@ -290,7 +290,7 @@ index cdefb2025eedea7e204d70d568adaf1c1ec4c03c..d1526ed7197b883e1d1f07baf285bf5e
// (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 377b018aa60b5efdae0e55960670748d6ec68191..aaded790feb71c3f36aa313a6de3e14533ce108e 100644
index 7c1e510a0ad4b69c1fedc3367a8216046efb228e..f736cc6b3dc5242a30eefd344af65f6958ece3a4 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -430,7 +430,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -316,10 +316,10 @@ index 774556a62eb240da42e84db4502e2ed43495be17..fb87620c742ff7912f5e8ccd2a7930dd
if (stream != null) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 24fefa521093448e608e217af7b88a6397a4b054..fc5b64da74230b4e95b7d85b22cb21e7421c575b 100644
index d568fc92d03c313a782796cc720a1ebb1a5ad8be..4a88fbee3566ba54b615745a2e4801691f494557 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -97,7 +97,7 @@ public class WatchdogThread extends Thread
@@ -96,7 +96,7 @@ public class WatchdogThread extends Thread
private WatchdogThread(long timeoutTime, boolean restart)
{
@@ -327,8 +327,8 @@ index 24fefa521093448e608e217af7b88a6397a4b054..fc5b64da74230b4e95b7d85b22cb21e7
+ super( "Watchdog Thread" ); // Purpur - use a generic name
this.timeoutTime = timeoutTime;
this.restart = restart;
earlyWarningEvery = Math.min(PaperConfig.watchdogPrintEarlyWarningEvery, timeoutTime); // Paper
@@ -156,14 +156,14 @@ public class WatchdogThread extends Thread
earlyWarningEvery = Math.min(io.papermc.paper.configuration.GlobalConfiguration.get().watchdog.earlyWarningEvery, timeoutTime); // Paper
@@ -155,14 +155,14 @@ public class WatchdogThread extends Thread
if (isLongTimeout) {
// Paper end
log.log( Level.SEVERE, "------------------------------" );
@@ -346,7 +346,7 @@ index 24fefa521093448e608e217af7b88a6397a4b054..fc5b64da74230b4e95b7d85b22cb21e7
//
if ( net.minecraft.world.level.Level.lastPhysicsProblem != null )
{
@@ -186,12 +186,12 @@ public class WatchdogThread extends Thread
@@ -185,12 +185,12 @@ public class WatchdogThread extends Thread
// Paper end
} else
{
@@ -361,7 +361,7 @@ index 24fefa521093448e608e217af7b88a6397a4b054..fc5b64da74230b4e95b7d85b22cb21e7
com.destroystokyo.paper.io.chunk.ChunkTaskManager.dumpAllChunkLoadInfo(); // Paper
this.dumpTickingInfo(); // Paper - log detailed tick information
WatchdogThread.dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( server.serverThread.getId(), Integer.MAX_VALUE ), log );
@@ -207,7 +207,7 @@ public class WatchdogThread extends Thread
@@ -206,7 +206,7 @@ public class WatchdogThread extends Thread
WatchdogThread.dumpThread( thread, log );
}
} else {

View File

@@ -5,7 +5,7 @@ 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 218f5bafeed8551b55b91c7fccaf6935c8b631ca..4d8740678049aa749b42618470e9cc838555528d 100644
index 7b1843e16745ca8db2244e17490d291401f22679..eeb26ea2e3dc78087f7ca6d16421c3c9079cc4ff 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 {
@@ -29,7 +29,7 @@ index 218f5bafeed8551b55b91c7fccaf6935c8b631ca..4d8740678049aa749b42618470e9cc83
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
index e6c254cfa83b218ad2a0e957306d8019adf0aaa7..25b38ae65250a0b3c34dfbf2d853f65368fd916f 100644
index 0148cadbeb41a882a05d982f0b34770b2829a04a..5213f132f826b47e2825644242aaece2bb48f594 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
@@ -272,6 +272,30 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy
@@ -64,13 +64,13 @@ index e6c254cfa83b218ad2a0e957306d8019adf0aaa7..25b38ae65250a0b3c34dfbf2d853f653
if (this.source.acceptsSuccess() && !this.silent) {
this.source.sendSystemMessage(message);
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 23435bdcf53af99032b0d7ca683081d7e72d4d22..814f24d5d38062799e51cc7e07b3f55fe59579f5 100644
index 6bcd1d35169c7bbe647cd7b829ca2785561750cb..d62a17afdc9dbf75dad91326d2d14d35f0b013b1 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -224,6 +224,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
}
@@ -222,6 +222,15 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash);
thread.start(); // Paper - start console thread after MinecraftServer.console & PaperConfig are initialized
com.destroystokyo.paper.PaperConfig.registerCommands();
io.papermc.paper.configuration.PaperConfigurations.registerCommands(this);
+ // Purpur start
+ try {
+ org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
@@ -81,14 +81,14 @@ index 23435bdcf53af99032b0d7ca683081d7e72d4d22..814f24d5d38062799e51cc7e07b3f55f
+ org.purpurmc.purpur.PurpurConfig.registerCommands();
+ // Purpur end
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
io.papermc.paper.util.ObfHelper.INSTANCE.getClass(); // load mappings for stacktrace deobf and etc.
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 e3052c32624538d5394bf098c3b5db84e4cdb9b4..1671cb165df030bf5a5a8f8fb0aabeaf6e7ac487 100644
index 76aa5d1bcb2ccb554966dcb5916ae527d73f042e..cf719642e6fe7f041489c86560a431eebe839acf 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -170,6 +170,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper
@@ -175,6 +175,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
+ public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
@@ -96,44 +96,44 @@ index e3052c32624538d5394bf098c3b5db84e4cdb9b4..1671cb165df030bf5a5a8f8fb0aabeaf
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public static BlockPos lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
@@ -270,6 +272,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, 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.concurrent.Executor executor) { // Paper - Async-Anti-Xray - Pass executor
@@ -275,6 +277,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, 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 = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
+ this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur
this.generator = gen;
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 bf8ce41b89821d3a44d74ad09c561ac7d904a4ce..13f422993a585a6bcb69791b61001feefd9bcb18 100644
index 24917a7d1a6792d5a4ae281200011ddb1bc5b931..aaa9060a4b61034ade81639fb3e8b7ef214eb05b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -950,6 +950,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
this.console.paperConfigurations.reloadConfigs(this.console);
+ org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
for (ServerLevel world : this.console.getAllLevels()) {
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
@@ -966,6 +967,7 @@ public final class CraftServer implements Server {
@@ -965,6 +966,7 @@ public final class CraftServer implements Server {
}
}
world.spigotConfig.init(); // Spigot
world.paperConfig.init(); // Paper
+ world.purpurConfig.init(); // Purpur
}
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -981,6 +983,7 @@ public final class CraftServer implements Server {
@@ -980,6 +982,7 @@ public final class CraftServer implements Server {
this.reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
com.destroystokyo.paper.PaperConfig.registerCommands(); // Paper
io.papermc.paper.configuration.PaperConfigurations.registerCommands(this.console);
+ org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -2695,6 +2698,18 @@ public final class CraftServer implements Server {
return com.destroystokyo.paper.PaperConfig.config;
@@ -2694,6 +2697,18 @@ public final class CraftServer implements Server {
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
}
+ // Purpur start

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Purpur client support
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 49a2a99bc0aaedb27524c64db5ce3907bf55cc28..062a06dbff672235acc87624f1b7c28f04ffce32 100644
index c816bae0227d0a1d38d9d20343e727ef2f30a8c0..b4bfee6b20e030db74b697d0f47eecaf0261203f 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -260,6 +260,7 @@ public class ServerPlayer extends Player {
@@ -17,7 +17,7 @@ index 49a2a99bc0aaedb27524c64db5ce3907bf55cc28..062a06dbff672235acc87624f1b7c28f
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 0c18cc24baf155aac072cfd0ea871d600e0550cb..0f41f7207ab38ed353800cb8cd621e9a93bbbea0 100644
index 92defe9bcaff461c41fabf7db706141011c1141d..12b454e50f65b6bdbbec8b3d149881c2a27c7e34 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3371,6 +3371,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -43,10 +43,10 @@ index 0c18cc24baf155aac072cfd0ea871d600e0550cb..0f41f7207ab38ed353800cb8cd621e9a
try {
byte[] data = new byte[packet.data.readableBytes()];
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 9bda669683a3062f99e798ea0a60d76373d46f4f..d87d521adbbc1c211f04bee0be15715948bde652 100644
index 04b991ec6a808839df1d2b5037ad386bda5094fe..b81a747b3b247b5bfc65381c1497b9fd0a14cda3 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2768,4 +2768,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2754,4 +2754,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end

View File

@@ -22,7 +22,7 @@ index 153451ecd5b3c8e8ecb2d5ec91ccd582d4300899..56536c39bccfe097f8227c74a0d16799
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 7c7d98d889fe799990b1bb5c416be50719c21194..50cbdd0e38b61a8290d6689d5fb9c7d13285ec34 100644
index 9df1401eb9361df0532b8f5fbfbb46e9923ae558..0d024cf636e0a6fa430fc6f920375e9e353beda3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1531,6 +1531,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -30,11 +30,11 @@ index 7c7d98d889fe799990b1bb5c416be50719c21194..50cbdd0e38b61a8290d6689d5fb9c7d1
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper
+ worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig.disableHopperMoveEvents || org.bukkit.event.inventory.InventoryMoveItemEvent.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
this.profiler.push(() -> {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 960b7248228d97547bfc2410d234adab4a548a7b..45764686750f867b3b9dff3af2a6d600ff0a519a 100644
index 50f0fa0ebfe5b34af6ce8162d18bd0f7b1a57fb1..3d209313c594f1f2f9beb5c47894b30f7e0b0fd7 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -217,6 +217,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
@@ -46,7 +46,7 @@ index 960b7248228d97547bfc2410d234adab4a548a7b..45764686750f867b3b9dff3af2a6d600
return new Throwable(entity + " Added to world at " + new java.util.Date());
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 54999c41a39e8c5baed67e01be3d28385d9f64b7..347c01f091144f82f6eed996d424400d82634cff 100644
index cfc3645215b18f76514acfdab63718adcdc5d938..7a28ac8d31ed5712e6fb2fbd59c72be5855165fe 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -668,6 +668,15 @@ public class ServerPlayer extends Player {
@@ -66,7 +66,7 @@ index 54999c41a39e8c5baed67e01be3d28385d9f64b7..347c01f091144f82f6eed996d424400d
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 0f41f7207ab38ed353800cb8cd621e9a93bbbea0..3c237c300af4e6e4fc304ac389baca261af13736 100644
index 12b454e50f65b6bdbbec8b3d149881c2a27c7e34..57e7c37aaa118e1fd4f933f66d10338ece4bb635 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2658,6 +2658,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -79,7 +79,7 @@ index 0f41f7207ab38ed353800cb8cd621e9a93bbbea0..3c237c300af4e6e4fc304ac389baca26
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)) {
ServerGamePacketListenerImpl.this.send(new ClientboundAddEntityPacket(entity));
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 2c42e2c39a13372833a4ba9a027e0315b150ab6c..f3c2cec6cef8f372cb56c28f985bce090bca2be0 100644
index 3f8bddf450f3b0382144bac750195c6390dd7495..a964f9a09b9b9d16c72691ee4d7924e0a25b7876 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -356,7 +356,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -194,7 +194,7 @@ index c1e9b40a4a0f9cdc650caa88b5ea132e06ee2496..882ab40c8cdea8c214cb8344b3ccecdd
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 32b0603063032677d734a1c173677f544ce7cc5c..52086efc539b854c159d5166e33b49d933128185 100644
index e8dc99752d06ca40f17f3ad2c829b2447b703d7c..577e7737d234e89a8a0a16bd00b4f2757f8443f8 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -221,9 +221,9 @@ public abstract class LivingEntity extends Entity {
@@ -272,7 +272,7 @@ index 32b0603063032677d734a1c173677f544ce7cc5c..52086efc539b854c159d5166e33b49d9
// 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 a55c30d86793bf224b536a7ceefce75c70b618c7..a6217bc88e3a9d302e2ce8d453170017c8cfaf54 100644
index 3646b969fa51b9683ab4137e530c3a6f6fc6c465..c04de0abe8ff2eb9a8ca38912e60520f6b2af0f5 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -146,8 +146,8 @@ public abstract class Mob extends LivingEntity {
@@ -1222,7 +1222,7 @@ index 8f294f10aca2df007830b12da0506f7614206a89..7bb7aaaff1e6e11db68b0f206bdf04fd
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 0a239df9a43669047be3d6006597128860862060..467d3b4b750e816f1c9d03114e9514252039bad4 100644
index e73acfa2f5a4066fa1beee1758082a2fe97a43b3..bdd7d46781598fd54e65d9df1efe790579f94c24 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -69,8 +69,27 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -2718,7 +2718,7 @@ index 69c6a0c64ef5371dc57da1fdb60a8ac295bf327a..314454b8c0197002c6c2529ffb75724d
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 d347ab0a638a972ea53a982f29af40423919870c..b09b8d79e837b613e20fdac2a419403f3e0d07d7 100644
index b3e2e834f4f151497bf842796dd8e3a8b5143f1b..b271c8b1aa75df1b9e0d7b011aacacccfe5ea4bc 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,6 +84,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -2885,7 +2885,7 @@ index d347ab0a638a972ea53a982f29af40423919870c..b09b8d79e837b613e20fdac2a419403f
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
index e5bb1baa22db202a6d17ef639bc4940ed1605337..4188d8b564999ba3befa53e78f103a6d2777845f 100644
index b8abee145fc92faddef98da913eca7715b6bfc03..8cc4f6a4e8ef66c4e799a0e5bdb4ddc5466007e6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -69,12 +69,14 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -3016,7 +3016,7 @@ index d980b906d9206560741576fa4153c57212f307a0..790d4abbc8e0b288e20e72e63f8190e9
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 f9193f8cd3b0d0e689a523c7142a897c342c2931..1476372a78092b103c037028f08cb1eae9464706 100644
index 8c328d72c42ccaa6891249cc700b70bb34c09545..a5250d7a85f11c58732d7e3d3ca3321efac42fc0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -60,21 +60,98 @@ public class Creeper extends Monster implements PowerableMob {
@@ -3683,7 +3683,7 @@ index ea4fa9eba301e462c159cdb970079f6d87d25f4d..3a2261687ec8b3b1f69b89ceeb2cc8cc
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index b55640ed068becd40cbb7d7507b4e67ae9ee792a..79c2f0482a7adbd50e1063edf2839f4fb3ab0847 100644
index cb81c5d37c72845133c4e59acaf8de56dcc9e62a..a8565816836e5ab55086a6024dc47df277cd7277 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -60,6 +60,64 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -4028,7 +4028,7 @@ index 3a3f3358c4bbd16bdcadc56c6a865ecfb942ad54..e73644f453bed8523bfad47764018362
protected void defineSynchedData() {
super.defineSynchedData();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 0c5ca7fabb7dc95587bae72d714d4712bdf0cc40..14be612dbef97f26f7a0bb145452e44e9d50edb5 100644
index ae95867efd21280d81180f2c4ac27fd6c94d868f..e84a23c52a53095a077ed21bf4d1ddbad303442d 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -64,18 +64,55 @@ public class Slime extends Mob implements Enemy {
@@ -4157,7 +4157,7 @@ index 0c5ca7fabb7dc95587bae72d714d4712bdf0cc40..14be612dbef97f26f7a0bb145452e44e
}
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 694643c8ee7447da01ae02ca242338dbdbb3412a..2a0821c288dd07d7a87f5df91d04d739030fa3c5 100644
index c3085ad5410b41d9c7703b28ca835dbee3f49ee7..7e0e7d3247010c0008df355a5b44db9f55287fe6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -51,14 +51,33 @@ public class Spider extends Monster {
@@ -4379,7 +4379,7 @@ index 78b1fb5e163cbe6b95ab39aa3b1b33da95c62cee..9bc60081a1d3f63f3b452ee5a8c8ae32
Vec3 vec3d1 = Vex.this.getDeltaMovement();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index 8914a0e2aab28fe2198f8e117f206abffae8b7d0..5f550e683b61ef3312f4500e43d6723fcbdef214 100644
index a9e75a16a7dc0ff5d4f0faa92ebc444559a39325..c0421de54b2d192d67c54cef359f6b12d2d013c1 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -58,14 +58,33 @@ public class Vindicator extends AbstractIllager {
@@ -4458,7 +4458,7 @@ index f9eb4a3a37454de78c65f895a82e67a854b6909b..7775f1428a455f0d52f43ed07102cb24
this.targetSelector.addGoal(2, this.healRaidersGoal);
this.targetSelector.addGoal(3, this.attackPlayersGoal);
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index c65319caa4bf95bd1d3bc41811b9cd401cc5c705..7259a56007ac0af079a4794952f69bf2706841c8 100644
index 6449213d717271bcc516e393a78dfe1e5c762d68..3b272b5653c6e7672f16eb35314c689910c14250 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -35,6 +35,23 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -4545,10 +4545,10 @@ index 056e4c2f7f632dadc0015710c032a0b718d46ff9..a6aaffc41a39be4ae1da44d54a27d324
this.level.getProfiler().pop();
this.updateActivity();
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 7b01bd1409dcb64c097badbbd73110d40e712751..87676587c71306f38e25d0f9548132526a7e481f 100644
index 97b3082dc020043fa38d9e5e4591102f97519ed3..be664e96a63bf6042375654e8297e4d6a54c7c8b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -104,11 +104,30 @@ public class Zombie extends Monster {
@@ -105,11 +105,30 @@ public class Zombie extends Monster {
this(EntityType.ZOMBIE, world);
}
@@ -4572,7 +4572,7 @@ index 7b01bd1409dcb64c097badbbd73110d40e712751..87676587c71306f38e25d0f954813252
@Override
protected void registerGoals() {
+ this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
if (level.paperConfig.zombiesTargetTurtleEggs) this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); // Paper
if (level.paperConfig().entities.behavior.zombiesTargetTurtleEggs) this.goalSelector.addGoal(4, new Zombie.ZombieAttackTurtleEggGoal(this, 1.0D, 3)); // Paper
this.goalSelector.addGoal(8, new LookAtPlayerGoal(this, Player.class, 8.0F));
this.goalSelector.addGoal(8, new RandomLookAroundGoal(this));
+ this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur
@@ -4753,7 +4753,7 @@ index ac75c54e897565e340b66823caeed92ba1d1641a..ff149234a8f3e1c94961e41d5bc81174
this.level.getProfiler().pop();
PiglinBruteAi.updateActivity(this);
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 98debcec829ddaa9d37b7e9cc1f42dfd9123393c..75fbf7f29e1cb90f87a4ba074f4ce256c810a3f8 100644
index 10b45ec24a5a0867106d1694312385ad1e267f43..850bfb8d08281c91ae8e17b4db38ffdaae2dbf96 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,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -4853,7 +4853,7 @@ index 86e1ba898d6b92735258419fa74352e5116226dc..2ae9a5da91ad20f1b566a686dcc8d4f1
this.setTradingPlayer(player);
this.openTradingScreen(player, this.getDisplayName(), 1);
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 2987d675af3b778d20be66e2ac2cddf6b4957d1d..4a04249441959340ad5f3a1879edd21208c7a9dc 100644
index cd9cbfa5ef94994b3f7f2ecdde843620e7e6c071..02cf1fdc58c33431a070a970add325eb7a278974 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -197,6 +197,19 @@ public abstract class Player extends LivingEntity {
@@ -4926,7 +4926,7 @@ index 5b92c2ca03baed38f7d41a73fae7dd23ce541d43..3cc9dab362141fdf61bdcd542ffa5e5c
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index ceacb62aef0dd0f73f1542a1898ceb62c3f4c367..97108c2317a38e11d45fdbef448dca5cb3ddad1c 100644
index 389bf0d695dccb1d2547d61d62be97376e2505f9..25ba267fb0bdfc2e74471593574f56d542178234 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -543,6 +543,15 @@ public class CraftEventFactory {

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 4b01ef01efe128cdeac548c592f62d72c9e0169e..cbd0f1ef7b3dad972b2e1f4b1d35c1f66ca9854f 100644
index a964f9a09b9b9d16c72691ee4d7924e0a25b7876..f58ad1b263af2ab9d829cd93056352e2ef9254e4 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager;
@@ -34,7 +34,7 @@ index 882ab40c8cdea8c214cb8344b3ccecddb2967c1c..cb79d2c958fbd34f8c8818e7e1c0db88
@Override
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 52086efc539b854c159d5166e33b49d933128185..68bbd0c1facef4d3e21975ead5b7af19ac3c1254 100644
index 577e7737d234e89a8a0a16bd00b4f2757f8443f8..402bd611231d4547a469a70429f006a84546a0eb 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -289,6 +289,7 @@ public abstract class LivingEntity extends Entity {
@@ -190,7 +190,7 @@ index 7bb7aaaff1e6e11db68b0f206bdf04fda0e88fc4..8d25d79be606b173a592647061725611
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 467d3b4b750e816f1c9d03114e9514252039bad4..9474324ace8ad2c9f54930cea4ee825275493075 100644
index bdd7d46781598fd54e65d9df1efe790579f94c24..4003e4f4128f14e0dffa666ed8f4447aadd1dede 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -84,6 +84,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -735,7 +735,7 @@ index 314454b8c0197002c6c2529ffb75724de16cf7a6..49454ad2de73c0a50ac1e3b9cda35f6c
public static AttributeSupplier.Builder createAttributes() {
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 b09b8d79e837b613e20fdac2a419403f3e0d07d7..a7d06c64dea9872e96d7f0e7dbb3a409f222b63c 100644
index b271c8b1aa75df1b9e0d7b011aacacccfe5ea4bc..ef528ad1571b7dcd180c70160fe6b17b2d7a18b8 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
@@ -212,6 +212,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -792,7 +792,7 @@ index 790d4abbc8e0b288e20e72e63f8190e938e2fecb..b9ee6fdaad09c92fdeea2e5be6068182
@Override
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 1476372a78092b103c037028f08cb1eae9464706..9921fd8278d14deeae9d61101f6800be58412948 100644
index a5250d7a85f11c58732d7e3d3ca3321efac42fc0..0bf2355b7ac80227c06b3e85f1645559275a96e5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -138,6 +138,11 @@ public class Creeper extends Monster implements PowerableMob {
@@ -1013,7 +1013,7 @@ index 3a2261687ec8b3b1f69b89ceeb2cc8cc524ab57a..69375fdb63b9edde3d161bac7a1946a3
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 79c2f0482a7adbd50e1063edf2839f4fb3ab0847..6df40b92a7006c8ad6a8d89c7d81a0f4326cad42 100644
index a8565816836e5ab55086a6024dc47df277cd7277..a3b871797c3e006f66978a73da01fede52fc8c49 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -116,6 +116,21 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -1131,7 +1131,7 @@ index e73644f453bed8523bfad47764018362a416b5ea..e239bcc4d4afe48e9fc204ad38d8bc76
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 14be612dbef97f26f7a0bb145452e44e9d50edb5..5c122ece695f61c58c90b853a0cb9a249f15b184 100644
index e84a23c52a53095a077ed21bf4d1ddbad303442d..d1d58b8b109fb96ffe0561c8f8e3bb38a5a06e59 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -103,6 +103,37 @@ public class Slime extends Mob implements Enemy {
@@ -1185,7 +1185,7 @@ index 14be612dbef97f26f7a0bb145452e44e9d50edb5..5c122ece695f61c58c90b853a0cb9a24
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 2a0821c288dd07d7a87f5df91d04d739030fa3c5..0314b3ac32595a22e89619a928a3c5b1b0135ed4 100644
index 7e0e7d3247010c0008df355a5b44db9f55287fe6..9b35fe2b335ba1b835f41401162c8c55fd1cc31e 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -66,6 +66,11 @@ public class Spider extends Monster {
@@ -1249,7 +1249,7 @@ index 9bc60081a1d3f63f3b452ee5a8c8ae327f64b16e..cad3d3741460c21da2e163ed9ec6ba78
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index 5f550e683b61ef3312f4500e43d6723fcbdef214..656dd2b01250c749db0acfa41992210709f5dcd3 100644
index c0421de54b2d192d67c54cef359f6b12d2d013c1..c3b8bce2d8e1dccb619267923964e06abfed8762 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -73,6 +73,11 @@ public class Vindicator extends AbstractIllager {
@@ -1281,7 +1281,7 @@ index 7775f1428a455f0d52f43ed07102cb242f6d23ad..0359db7ccca286df046066b4a2356a50
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index 7259a56007ac0af079a4794952f69bf2706841c8..59797dd2521d349cb1d7c2a3d5344e2b14a510ac 100644
index 3b272b5653c6e7672f16eb35314c689910c14250..b374069a1e88db67a56d6d5f9e05318c0403d462 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -50,6 +50,11 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1313,10 +1313,10 @@ index a6aaffc41a39be4ae1da44d54a27d324927e47d0..a91ec2e385940b12bc41d9c09819c908
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 87676587c71306f38e25d0f9548132526a7e481f..e382b739392d884ba659423e8f50c81f59a8f3fa 100644
index be664e96a63bf6042375654e8297e4d6a54c7c8b..60d2abecb21c767fe290ffc9b7dd3446c99d8609 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -119,6 +119,11 @@ public class Zombie extends Monster {
@@ -120,6 +120,11 @@ public class Zombie extends Monster {
public boolean isControllable() {
return level.purpurConfig.zombieControllable;
}
@@ -1328,7 +1328,7 @@ index 87676587c71306f38e25d0f9548132526a7e481f..e382b739392d884ba659423e8f50c81f
// Purpur end
@Override
@@ -606,7 +611,7 @@ public class Zombie extends Monster {
@@ -607,7 +612,7 @@ public class Zombie extends Monster {
}
protected void randomizeReinforcementsChance() {
@@ -1432,7 +1432,7 @@ index ff149234a8f3e1c94961e41d5bc8117460b301d9..75db61c5aab66234b26f7899229ddca8
public static AttributeSupplier.Builder createAttributes() {
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 75fbf7f29e1cb90f87a4ba074f4ce256c810a3f8..1e56f842c0c76ae2c8ee79a31b319cb2c5c29765 100644
index 850bfb8d08281c91ae8e17b4db38ffdaae2dbf96..8f220534aa2af1d85968f1fa138b1d21f05ee0b2 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -173,6 +173,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler

View File

@@ -44,20 +44,3 @@ index 78280fb3bcd8d792a58ece6d735e0824ea4be536..1789fdbd8b59f9d465ba0881481a578d
private static JSONObject mapAsJSON(ConfigurationSection config, String parentKey) {
JSONObject object = new JSONObject();
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 83121be2274a33d4188ff6fe37752432dd4e6b22..ed8b470e9d75f04d4c0277be11f81540a7f51d1c 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -239,6 +239,12 @@ public class PaperConfig {
boolean timings = getBoolean("timings.enabled", true);
boolean verboseTimings = getBoolean("timings.verbose", true);
TimingsManager.url = getString("timings.url", "https://timings.aikar.co/");
+ // Purpur start
+ if (org.purpurmc.purpur.PurpurConfig.version < 23 && TimingsManager.url.contains("timings.pl3x.net")) {
+ set("timings.url", "https://timings.aikar.co/");
+ TimingsManager.url = "https://timings.aikar.co/";
+ }
+ // Purpur end
if (!TimingsManager.url.endsWith("/")) {
TimingsManager.url += "/";
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] AFK API
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 347c01f091144f82f6eed996d424400d82634cff..e657ba0638bf17353289586ca7303b59c1bc62b1 100644
index 7a28ac8d31ed5712e6fb2fbd59c72be5855165fe..79c4da6fb1cad621454b08e64f5da79678d21dc5 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -2000,8 +2000,58 @@ public class ServerPlayer extends Player {
@@ -68,7 +68,7 @@ index 347c01f091144f82f6eed996d424400d82634cff..e657ba0638bf17353289586ca7303b59
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 076c482e6844f6a188267556cd8fbcc592ad53f7..90b6b10ddba0224b8bc7e5f0f70edea809670e3c 100644
index 57e7c37aaa118e1fd4f933f66d10338ece4bb635..602979d0d85cff155d50780ce2471de0806ae63a 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -312,6 +312,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -182,7 +182,7 @@ index a7575b5ef56af6f53448d391abb4956e130148ca..0a9e4dc5d6d567605c587df9bcbb57d3
if (baseEntity == null) {
if (this.isCombat && (!targetEntity.canBeSeenAsEnemy() || targetEntity.level.getDifficulty() == Difficulty.PEACEFUL)) {
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index e0a30fdeeb3402f9b34dc6b53594c85b10eab86f..597b75bb429ac5a36f912c0a1f9361356dcdb726 100644
index f86fd6a5712d1a3b6e0a306421eaf833f6377e65..74f14215280005a4d6fb35a77e2f1c4858250f2f 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -201,6 +201,13 @@ public abstract class Player extends LivingEntity {
@@ -213,7 +213,7 @@ index 3f458ddd4dc04ed28510a212be76bb19e7f6a61e..a36469186f72eccf8c4428d920d0583b
if (range < 0.0D || d < range * range) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index d87d521adbbc1c211f04bee0be15715948bde652..f35f60b6fe470d9bc239ce9017f3a82ed984d342 100644
index b81a747b3b247b5bfc65381c1497b9fd0a14cda3..d523a517ff0f4c8f0efaa38e64ecafef1ba6dc4d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -442,10 +442,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -233,7 +233,7 @@ index d87d521adbbc1c211f04bee0be15715948bde652..f35f60b6fe470d9bc239ce9017f3a82e
for (ServerPlayer player : (List<ServerPlayer>) server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -2774,5 +2779,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2760,5 +2765,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean usesPurpurClient() {
return getHandle().purpurClient;
}

View File

@@ -17,10 +17,10 @@ index 26345494ce190b5cd2ab58dd7d4b046796767b20..20d579a20e186e59975df1b35112015e
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 13f422993a585a6bcb69791b61001feefd9bcb18..bdbcd124c1491550331318824bf1df13ec183964 100644
index aaa9060a4b61034ade81639fb3e8b7ef214eb05b..638f7cf222dce27b7e81eb3ade943094b72e538b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2882,4 +2882,11 @@ public final class CraftServer implements Server {
@@ -2879,4 +2879,11 @@ public final class CraftServer implements Server {
}
// Paper end

View File

@@ -5,12 +5,12 @@ 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 d0fef308a6b8848a7473484956716e6c36c315c0..a653b79b3c81d5908d73e4f444d8c2baf62662de 100644
index e2cd44e6f785265aba0e67770a684b5f58e3d4e6..fa8986c6502b58089b98500ba7e152e51ce8d30b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -291,6 +291,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public final double[] recentTps = new double[ 3 ];
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
public static long currentTickLong = 0L; // Paper
+ public boolean lagging = false; // Purpur
@@ -25,10 +25,10 @@ index d0fef308a6b8848a7473484956716e6c36c315c0..a653b79b3c81d5908d73e4f444d8c2ba
}
// Spigot end
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index bdbcd124c1491550331318824bf1df13ec183964..5d9c85f9eb1625936e89c9cf1c95ad64d856e806 100644
index 638f7cf222dce27b7e81eb3ade943094b72e538b..d7a1219efe8f95df1bbd50cab1aeaf7d80ad0e45 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2888,5 +2888,10 @@ public final class CraftServer implements Server {
@@ -2885,5 +2885,10 @@ public final class CraftServer implements Server {
public String getServerName() {
return this.getProperties().serverName;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Player invulnerabilities
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index e657ba0638bf17353289586ca7303b59c1bc62b1..fc5d69d2dc6470d4d7d0e8af2b96893f21eb3254 100644
index 79c4da6fb1cad621454b08e64f5da79678d21dc5..3a665115eb3da35fa7f5bd1b01b15c5536581220 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -261,6 +261,7 @@ public class ServerPlayer extends Player {
@@ -82,7 +82,7 @@ index e657ba0638bf17353289586ca7303b59c1bc62b1..fc5d69d2dc6470d4d7d0e8af2b96893f
public Scoreboard getScoreboard() {
return this.getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 90b6b10ddba0224b8bc7e5f0f70edea809670e3c..efc2204bd712449a93e132a19d31ae99b702972d 100644
index 602979d0d85cff155d50780ce2471de0806ae63a..d9005d3bd9f78fca0f5d7b8b64c74c6af0f8fd68 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2001,12 +2001,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
@@ -108,7 +108,7 @@ index 90b6b10ddba0224b8bc7e5f0f70edea809670e3c..efc2204bd712449a93e132a19d31ae99
this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit
// Paper end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index ae3a7cc79897b2a247d63d1428d1a97e586d64ca..d7e65c889167de315206ae2a36f305c6255950a1 100644
index 02415cd2baf066b556886f63ae7e3f7fc60968e4..b031b358a2f87891e383f3bdfb5243a174ead8d2 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1007,6 +1007,8 @@ public abstract class PlayerList {
@@ -121,10 +121,10 @@ index ae3a7cc79897b2a247d63d1428d1a97e586d64ca..d7e65c889167de315206ae2a36f305c6
return entityplayer1;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index f35f60b6fe470d9bc239ce9017f3a82ed984d342..69db9fb3b319b7f43d93375e719ec13c67388dff 100644
index d523a517ff0f4c8f0efaa38e64ecafef1ba6dc4d..eb37881e39004dea82a5b5e8e9832c361561d9c0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2794,5 +2794,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2780,5 +2780,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void resetIdleTimer() {
getHandle().resetLastActionTime();
}

View File

@@ -5,11 +5,11 @@ 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 45764686750f867b3b9dff3af2a6d600ff0a519a..d546494c212cef210662ff8f6bc6ec2aae11ed27 100644
index 3d209313c594f1f2f9beb5c47894b30f7e0b0fd7..63e5adc88c4a3763eeb62bb34acc6938ea1c4334 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -771,9 +771,15 @@ public class ServerLevel extends Level implements WorldGenLevel {
boolean flag1 = this.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && this.random.nextDouble() < (double) difficultydamagescaler.getEffectiveDifficulty() * paperConfig.skeleHorseSpawnChance && !this.getBlockState(blockposition.below()).is(Blocks.LIGHTNING_ROD); // Paper
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) {
- SkeletonHorse entityhorseskeleton = (SkeletonHorse) EntityType.SKELETON_HORSE.create(this);

View File

@@ -5,7 +5,7 @@ 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 10c46a38e55463f584afc69bd6af91ee96862fd8..7735941f4a23e1baffc97055853bb88ef99954f3 100644
index 8587820d268c20b7fcae2cc633ddb3c6709836a5..e5097185d44062427e7fe21da89a552a4ff97277 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -851,7 +851,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -14,11 +14,11 @@ index 10c46a38e55463f584afc69bd6af91ee96862fd8..7735941f4a23e1baffc97055853bb88e
// Paper start - Configurable nether ceiling damage
- if (this.getY() < (double) (this.level.getMinBuildHeight() - 64) || (this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER
+ if (this.getY() < (double) (this.level.getMinBuildHeight() + level.purpurConfig.voidDamageHeight) || (this.level.getWorld().getEnvironment() == org.bukkit.World.Environment.NETHER // Purpur
&& level.paperConfig.doNetherTopVoidDamage()
&& this.getY() >= this.level.paperConfig.netherVoidTopDamageHeight)) {
&& level.paperConfig().environment.netherCeilingVoidDamageHeight > 0
&& this.getY() >= this.level.paperConfig().environment.netherCeilingVoidDamageHeight)) {
// 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 38067bee49ec2498d840ded86ceeae4518034ae1..7558c7fe7797cf6e100aeb5668fe8246de310d7b 100644
index 8e2fbf9f356650be37099d4e72cd949ddcc52ec6..0a481fca2e115a48cf10fa6f664b1cbecd5763a7 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2445,7 +2445,7 @@ public abstract class LivingEntity extends Entity {

View File

@@ -5,7 +5,7 @@ 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 2f06de6afed296677b451e26a0079dc437a7c549..1c9e36b6b474e305695fa79af5544c45717bdb47 100644
index e5097185d44062427e7fe21da89a552a4ff97277..50c79b36429e13a12dd7fac0afd1160528b01035 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4472,5 +4472,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -19,7 +19,7 @@ index 2f06de6afed296677b451e26a0079dc437a7c549..1c9e36b6b474e305695fa79af5544c45
// Purpur end
}
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 a7d06c64dea9872e96d7f0e7dbb3a409f222b63c..a15fb55ae69fa7255086df336ed8daf016a46a87 100644
index ef528ad1571b7dcd180c70160fe6b17b2d7a18b8..4f9b14e523019c87178304f250e3d10606145fad 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
@@ -208,6 +208,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -35,7 +35,7 @@ index a7d06c64dea9872e96d7f0e7dbb3a409f222b63c..a15fb55ae69fa7255086df336ed8daf0
skull.setPosRaw(headX, headY, headZ);
level.addFreshEntity(skull);
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
index 84152df1dadd7fe6927eaed96dc0998ab15f608d..10c0377e8302d2858af96b8ef734a585a5e27274 100644
index 2bc0384728f89b7c64a8beec78a1b77dc063d37b..e4af49d85c8f6265b550c0a7cbea7d495f47150a 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/EntityStorage.java
@@ -92,6 +92,7 @@ public class EntityStorage implements EntityPersistentStorage<Entity> {
@@ -45,7 +45,7 @@ index 84152df1dadd7fe6927eaed96dc0998ab15f608d..10c0377e8302d2858af96b8ef734a585
+ if (!entity.canSaveToDisk()) return; // Purpur
// Paper start
final EntityType<?> entityType = entity.getType();
final int saveLimit = this.level.paperConfig.entityPerChunkSaveLimits.getOrDefault(entityType, -1);
final int saveLimit = this.level.paperConfig().chunks.entityPerChunkSaveLimit.getOrDefault(entityType, -1);
diff --git a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java b/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java
index d55f7611599b2a339293688861100cb8dae9f6c6..5e99789e5156e8ffbf125e77114c547e1f8e7925 100644
--- a/src/main/java/org/purpurmc/purpur/entity/DolphinSpit.java

View File

@@ -27,18 +27,18 @@ index fa56cd09102a89692b42f1d14257990508c5c720..f9251183df72ddc56662fd3f02acf216
setListData(vector);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2603e73b86c87125cd3f1804463281324a75105a..2d179faa807ad78b8f7db0cf79cea0f3b94bb232 100644
index 9dc2dd5bc5894ff33826613f2fae28d51085b751..5a51ec9a9cba605b2fc32e51dcd78f0cbb253628 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -288,7 +288,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -287,7 +287,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public static final int TPS = 20;
public static final int TICK_TIME = 1000000000 / MinecraftServer.TPS;
private static final int SAMPLE_INTERVAL = 20; // Paper
- public final double[] recentTps = new double[ 3 ];
+ public final double[] recentTps = new double[ 4 ]; // Purpur
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
public static long currentTickLong = 0L; // Paper
public boolean lagging = false; // Purpur
@@ -1069,6 +1069,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
private long lastTick = 0;
@@ -69,10 +69,10 @@ index 2603e73b86c87125cd3f1804463281324a75105a..2d179faa807ad78b8f7db0cf79cea0f3
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 5d9c85f9eb1625936e89c9cf1c95ad64d856e806..d46925742830089551c6541b53749f5aea288cbf 100644
index d7a1219efe8f95df1bbd50cab1aeaf7d80ad0e45..e0026d35131fa0b7029a9d23bda22bf27c234744 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2652,6 +2652,7 @@ public final class CraftServer implements Server {
@@ -2651,6 +2651,7 @@ public final class CraftServer implements Server {
@Override
public double[] getTPS() {
return new double[] {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 1794893cab3f26faa58745a95cb50d239f8a1484..9f07b6bb89b2f7424d874aca8399c9a31f3bf669 100644
index e25423b46ced54dd6b270d45a3c4502a01b2e227..f153176210618c5778056f351ac94a8fb6b4a4e3 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -2312,7 +2312,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -2311,7 +2311,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
public class TrackedEntity {
@@ -18,7 +18,7 @@ index 1794893cab3f26faa58745a95cb50d239f8a1484..9f07b6bb89b2f7424d874aca8399c9a3
private final int range;
SectionPos lastSectionPos;
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
index 3eb947e16684965b861a07591f18db838e7c874b..7e81bec1bbe2df498a62721d9b3b257ae4d3be9a 100644
index 0bc963fc214da203a6e505fdd5edee3b1efc03df..d8cb1d7cdd2d0ab28eaf3c91a0316af102f702e1 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -65,7 +65,7 @@ public class ServerEntity {
@@ -31,7 +31,7 @@ index 3eb947e16684965b861a07591f18db838e7c874b..7e81bec1bbe2df498a62721d9b3b257a
public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) {
this.trackedPlayers = trackedPlayers;
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
index 3b70e37140531884397696760dd9ef597c4655bc..86713a01e5e43f13f1aa0e0c53b299126f24b433 100644
index 7e927dec3e4e4fb65bf89a87cfa555045c58bb3a..22591789a33e0b08e9ee2529bc7d6b548310afa4 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -55,6 +55,12 @@ public class ItemEntity extends Entity {
@@ -47,7 +47,20 @@ index 3b70e37140531884397696760dd9ef597c4655bc..86713a01e5e43f13f1aa0e0c53b29912
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
super(type, world);
@@ -332,6 +338,15 @@ public class ItemEntity extends Entity {
@@ -81,6 +87,12 @@ public class ItemEntity extends Entity {
this.copyPosition(entity);
this.age = entity.age;
this.bobOffs = entity.bobOffs;
+ // Purpur start
+ if (level.purpurConfig.itemImmuneToCactus.contains(stack.getItem())) immuneToCactus = true;
+ if (level.purpurConfig.itemImmuneToExplosion.contains(stack.getItem())) immuneToExplosion = true;
+ if (level.purpurConfig.itemImmuneToFire.contains(stack.getItem())) immuneToFire = true;
+ if (level.purpurConfig.itemImmuneToLightning.contains(stack.getItem())) immuneToLightning = true;
+ // level end
}
@Override
@@ -332,6 +344,15 @@ public class ItemEntity extends Entity {
return false;
} else if (!this.getItem().getItem().canBeHurtBy(source)) {
return false;
@@ -63,19 +76,6 @@ index 3b70e37140531884397696760dd9ef597c4655bc..86713a01e5e43f13f1aa0e0c53b29912
} else if (this.level.isClientSide) {
return true;
} else {
@@ -518,6 +533,12 @@ public class ItemEntity extends Entity {
this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty
net.minecraft.resources.ResourceLocation location = net.minecraft.core.Registry.ITEM.getKey(stack.getItem()); // Paper
this.despawnRate = level.paperConfig.altItemDespawnRateMap.getOrDefault(location, level.spigotConfig.itemDespawnRate); // Paper
+ // Purpur start
+ if (level.purpurConfig.itemImmuneToCactus.contains(stack.getItem())) immuneToCactus = true;
+ if (level.purpurConfig.itemImmuneToExplosion.contains(stack.getItem())) immuneToExplosion = true;
+ if (level.purpurConfig.itemImmuneToFire.contains(stack.getItem())) immuneToFire = true;
+ if (level.purpurConfig.itemImmuneToLightning.contains(stack.getItem())) immuneToLightning = true;
+ // level end
}
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index fea44ba6a6584b4a510af6a58cab07eecec6b68b..f3bf5199bc7ddf8a3d0dc67a184e7690efa659eb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java

View File

@@ -57,10 +57,10 @@ index e41cc68649c79dd4ce7455f36112e8347e7c84e6..22daf7d11890a2e9276928ac9b242edf
public static boolean checkHuskSpawnRules(EntityType<Husk> type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index e382b739392d884ba659423e8f50c81f59a8f3fa..226968c3bcc0d51d9025b3bb17e0051bf4c109e5 100644
index 60d2abecb21c767fe290ffc9b7dd3446c99d8609..7be6cb6ad9a8b5f695b1a13564a37917a914b983 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -124,6 +124,18 @@ public class Zombie extends Monster {
@@ -125,6 +125,18 @@ public class Zombie extends Monster {
public void initAttributes() {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.drownedMaxHealth);
}
@@ -79,7 +79,7 @@ index e382b739392d884ba659423e8f50c81f59a8f3fa..226968c3bcc0d51d9025b3bb17e0051b
// Purpur end
@Override
@@ -545,19 +557,20 @@ public class Zombie extends Monster {
@@ -546,19 +558,20 @@ public class Zombie extends Monster {
if (object instanceof Zombie.ZombieGroupData) {
Zombie.ZombieGroupData entityzombie_groupdatazombie = (Zombie.ZombieGroupData) object;
@@ -106,7 +106,7 @@ index e382b739392d884ba659423e8f50c81f59a8f3fa..226968c3bcc0d51d9025b3bb17e0051b
Chicken entitychicken1 = (Chicken) EntityType.CHICKEN.create(this.level);
entitychicken1.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot(), 0.0F);
@@ -565,6 +578,7 @@ public class Zombie extends Monster {
@@ -566,6 +579,7 @@ public class Zombie extends Monster {
entitychicken1.setChickenJockey(true);
this.startRiding(entitychicken1);
world.addFreshEntity(entitychicken1, CreatureSpawnEvent.SpawnReason.MOUNT); // CraftBukkit

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add phantom spawning options
diff --git a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
index 9d96235c4697d9a0f045c692a742cdabbd6f8b8a..84bf3898b16040ae15acca66d07d0b5e52fc8bf2 100644
index 6b5c31470499e25d01936106839c2fff21b113c8..cbf4a7ca1f09d156eed12030fafb724095d2bae4 100644
--- a/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
+++ b/src/main/java/net/minecraft/world/level/levelgen/PhantomSpawner.java
@@ -41,8 +41,8 @@ public class PhantomSpawner implements CustomSpawner {
@@ -20,7 +20,7 @@ index 9d96235c4697d9a0f045c692a742cdabbd6f8b8a..84bf3898b16040ae15acca66d07d0b5e
} else {
int i = 0;
@@ -54,22 +54,22 @@ public class PhantomSpawner implements CustomSpawner {
if (!entityhuman.isSpectator() && (!world.paperConfig.phantomIgnoreCreative || !entityhuman.isCreative())) { // Paper
if (!entityhuman.isSpectator() && (!world.paperConfig().entities.behavior.phantomsDoNotSpawnOnCreativePlayers || !entityhuman.isCreative())) { // Paper
BlockPos blockposition = entityhuman.blockPosition();
- if (!world.dimensionType().hasSkyLight() || blockposition.getY() >= world.getSeaLevel() && world.canSeeSky(blockposition)) {

View File

@@ -27,10 +27,10 @@ index 73f1211470d9626c82c8345037da19aed9db3f23..40c7bf266eccc43faa081ade9402bee5
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 3d5067477f8abbcfece1915013576941a588d021..1f78c8e9cdffc0bb557719404f3834f90b76ff50 100644
index cf719642e6fe7f041489c86560a431eebe839acf..063cde55ad7c4ef294994dc7d16f3f738d62049f 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -1457,4 +1457,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -1462,4 +1462,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
return null;
}
// Paper end

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Despawn rate config options per projectile type
Default values of -1 respect vanilla behaviour.
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
index 3a9ecb0b46d541a1dec551d6159414ad253e96ce..1d75abd1659b37deedff794dcf9ff83028d2b738 100644
index bc01e5014e1355a225bdf5c47f2965290b45e2d2..63662eb3b3e4a79aea506df671721a83528340b9 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
@@ -63,7 +63,7 @@ public abstract class AbstractArrow extends Projectile {
@@ -24,15 +24,15 @@ index 3a9ecb0b46d541a1dec551d6159414ad253e96ce..1d75abd1659b37deedff794dcf9ff830
- protected void tickDespawn() {
- ++this.life;
- if (this.life >= (pickup == Pickup.CREATIVE_ONLY ? level.paperConfig.creativeArrowDespawnRate : (pickup == Pickup.DISALLOWED ? level.paperConfig.nonPlayerArrowDespawnRate : ((this instanceof ThrownTrident) ? level.spigotConfig.tridentDespawnRate : level.spigotConfig.arrowDespawnRate)))) { // Spigot // Paper - TODO: Extract this to init?
- if (this.life >= (pickup == Pickup.CREATIVE_ONLY ? level.paperConfig().entities.spawning.creativeArrowDespawnRate.value() : (pickup == Pickup.DISALLOWED ? level.paperConfig().entities.spawning.nonPlayerArrowDespawnRate.value() : ((this instanceof ThrownTrident) ? level.spigotConfig.tridentDespawnRate : level.spigotConfig.arrowDespawnRate)))) { // Spigot // Paper - TODO: Extract this to init?
- this.discard();
+ // Purpur start
+ protected int getPurpurDespawnRate() {
+ if (pickup == Pickup.CREATIVE_ONLY) {
+ return level.paperConfig.creativeArrowDespawnRate;
+ return level.paperConfig().entities.spawning.creativeArrowDespawnRate.value();
+ }
+ if (pickup == Pickup.DISALLOWED) {
+ return level.paperConfig.nonPlayerArrowDespawnRate;
+ return level.paperConfig().entities.spawning.nonPlayerArrowDespawnRate.value();
}
+ if (this instanceof ThrownTrident) {
+ return level.spigotConfig.tridentDespawnRate;
@@ -84,7 +84,7 @@ index 5406925cd66f46ab8744123c670d72cea7bfc3a1..2bd14d74fa2fed39dad27b4417794f00
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
index eb62756029ddda53c68d681f70b155df54a2c3ae..8542f21dd362eb002720219467a51e7686f499e8 100644
index f5886a88fd98ede5e85a91eccccb05ac33eb40e2..f8378da592ecf22d8c7d5e07794a13992fd95f35 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/FishingHook.java
@@ -661,4 +661,11 @@ public class FishingHook extends Projectile {
@@ -132,7 +132,7 @@ index 1a945a32c3d3705a318ebca72a365931a8c001b7..c7fdcfae1ba823046fdfe78aa97b4a7a
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
index fcbc5a3aee2e23a0b30b1f774d608f85b85f7d71..877a568b74e9f12decfeb70459e0cc0737f176cf 100644
index 66c3f374a779cd3a4548393ba23e9219f1caf6d3..a9b958b5630944f0512e113b65c223419abd47f3 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
@@ -33,6 +33,7 @@ public abstract class Projectile extends Entity {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] Add option to disable zombie aggressiveness towards villagers
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
index 181abe014baba9ac51064c003381281a8fa43fe4..cfd1dcec3efcd4caf2431cbda99bc9f15d39ed69 100644
index c9901f8c7f3af57cb2e0bec315caa97adcb6f5ea..407377e8791400f73e2e2305cbd38f17c7a5c0f1 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
@@ -135,6 +135,10 @@ public class MobGoalHelper {
@@ -46,10 +46,10 @@ index 968392e9dd124f997d5d5996893363ac7ef2c740..1d57ee963416e784a759f2ecee7b7c38
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false));
this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR));
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 226968c3bcc0d51d9025b3bb17e0051bf4c109e5..72bd61193c3289d7228ab76805eb19c29a4a058d 100644
index 7be6cb6ad9a8b5f695b1a13564a37917a914b983..efe74738b5a90f822901488aa99f981029416fb5 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -154,7 +154,19 @@ public class Zombie extends Monster {
@@ -155,7 +155,19 @@ public class Zombie extends Monster {
this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0D));
this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers(ZombifiedPiglin.class));
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));

View File

@@ -33,10 +33,10 @@ index 6216513805add7c8f52e1ed6c77e2d26786b3ab5..34e82b97c5b294f0a6423581220403a1
entityageable.setBaby(true);
entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F);
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 0990d2f68e2fec89295f127fef48c7e6f7cd24c0..07ae3e667ca22b6c0434c103c61016e3e67e3d65 100644
index 063cde55ad7c4ef294994dc7d16f3f738d62049f..599dbf1cb7d3f658b88879402987613740dd3658 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -189,6 +189,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -194,6 +194,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
}
// Paper end - fix and optimise world upgrading
@@ -86,9 +86,9 @@ index 0990d2f68e2fec89295f127fef48c7e6f7cd24c0..07ae3e667ca22b6c0434c103c61016e3
public CraftWorld getWorld() {
return this.world;
}
@@ -273,6 +316,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@@ -278,6 +321,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), this.spigotConfig); // Paper
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper
this.purpurConfig = new org.purpurmc.purpur.PurpurWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName(), env); // Purpur
+ this.playerBreedingCooldowns = this.getNewBreedingCooldownCache(); // Purpur
this.generator = gen;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Implement TPSBar
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 72ab7ba92d6f20c1711d9720c02c11ce0e4ede71..9db941587e870b2a9d0378652d62f4f2c2c385bd 100644
index a26672fce303a2ad468014d88033c55789a95e87..c6a97b3fa04c683a92a8d838f98e73b59bb7558a 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -208,6 +208,7 @@ public class Commands {
@@ -17,7 +17,7 @@ index 72ab7ba92d6f20c1711d9720c02c11ce0e4ede71..9db941587e870b2a9d0378652d62f4f2
if (environment.includeIntegrated) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1a3f709c8aa455f1ce7e63751074044b85b14d19..8a6b839ce55bc352dd5a38883c2bf8240f7420bf 100644
index 862825556b52bb65a003fa633f08ed42cd6ad1fa..90b192ea540c99df4d9ba8713f126cd7f1cdc81d 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1043,6 +1043,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -29,10 +29,10 @@ index 1a3f709c8aa455f1ce7e63751074044b85b14d19..8a6b839ce55bc352dd5a38883c2bf824
this.hasLoggedStop = true; // Paper
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 814f24d5d38062799e51cc7e07b3f55fe59579f5..1a9b717c06ae93d996457399d35abb167a4c5f45 100644
index d62a17afdc9dbf75dad91326d2d14d35f0b013b1..f831481434d3bfdb7dba5068ee3fc55f78b98ca0 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -350,6 +350,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -347,6 +347,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.info("JMX monitoring enabled");
}
@@ -41,7 +41,7 @@ index 814f24d5d38062799e51cc7e07b3f55fe59579f5..1a9b717c06ae93d996457399d35abb16
}
}
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index f9b15ed173c294827b06e07cb9afaaa31796c8d1..388bb49baa9ba913c550df8047792b8108ba4ba2 100644
index c18c203bdff31e8dc232380f0f917eda2c81c827..590b3c33c43abe52cd560f31047eb86f8691cccb 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -262,6 +262,7 @@ public class ServerPlayer extends Player {
@@ -83,7 +83,7 @@ index f9b15ed173c294827b06e07cb9afaaa31796c8d1..388bb49baa9ba913c550df8047792b81
// Purpur end
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index cdb40088112bf86becc9f08d002d7a7c06b65df8..0f80cec6b613c4fae52cfdc868ab1f738fc1264d 100644
index f2b863ade7c8d620542510f733ad6c5f03d78388..9d8635530bc2c0b322d3b45542106ac98a4d4122 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -496,6 +496,7 @@ public abstract class PlayerList {

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] PlayerBookTooLargeEvent
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index baa02e8a9ed29854253ec03779ef9e5734d22104..535c4577c4fead700061020f0b946c0ee191f768 100644
index f84de4c184ad43e5241c42d3bf0e0cc59bf45226..88454772d8b865c54872b3d797eaba360e030974 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1193,10 +1193,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
int maxBookPageSize = com.destroystokyo.paper.PaperConfig.maxBookPageSize;
double multiplier = Math.max(0.3D, Math.min(1D, com.destroystokyo.paper.PaperConfig.maxBookTotalSizeMultiplier));
int maxBookPageSize = io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.pageMax;
double multiplier = Math.max(0.3D, Math.min(1D, io.papermc.paper.configuration.GlobalConfiguration.get().itemValidation.bookSize.totalMultiplier));
long byteAllowed = maxBookPageSize;
+ ItemStack itemstack = this.player.getInventory().getItem(packet.getSlot()); // Purpur
for (String testString : pageList) {

View File

@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 3097e87cece6aad796be215d524d9cb30fcc21c9..d0b8fd430a76a55cd179b92b38eb61df7ac6f04a 100644
index 3f0e8cc9376f2d7a5b97a57ac7f7504aa14f6c54..178168ec7e27f02ed455440f0c265ab536f509f5 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1684,7 +1684,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -30,7 +30,7 @@ index 3097e87cece6aad796be215d524d9cb30fcc21c9..d0b8fd430a76a55cd179b92b38eb61df
this.wasTouchingWater = false;
} else if (this.updateFluidHeightAndDoFluidPushing(FluidTags.WATER, 0.014D)) {
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
index 29939e851e38fcd494c7556760191e0100bc2e07..1865fa0173dbd9362ba8186f0726f14d149d7602 100644
index 9dcb46959c723723a369cde50427cbee0349f5a1..6bd31ed84049bc36a060b5e01b0599bf5f47765c 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java
@@ -98,10 +98,12 @@ public class ArmorStand extends LivingEntity {
@@ -41,7 +41,7 @@ index 29939e851e38fcd494c7556760191e0100bc2e07..1865fa0173dbd9362ba8186f0726f14d
public ArmorStand(EntityType<? extends ArmorStand> type, Level world) {
super(type, world);
if (world != null) this.canTick = world.paperConfig.armorStandTick; // Paper - armour stand ticking
if (world != null) this.canTick = world.paperConfig().entities.armorStands.tick; // Paper - armour stand ticking
+ if (world != null) this.canMovementTick = world.purpurConfig.armorstandMovement; // Purpur
this.handItems = NonNullList.withSize(2, ItemStack.EMPTY);
this.armorItems = NonNullList.withSize(4, ItemStack.EMPTY);

View File

@@ -158,7 +158,7 @@ index 364863d14e7c0ac6dffa1ac5df5f1af5d820c700..8e04d20c0f1038dbe1c8e7f05242f66e
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index 9474324ace8ad2c9f54930cea4ee825275493075..1f87f6879b9c23526a2d1b490959d60606657e02 100644
index 4003e4f4128f14e0dffa666ed8f4447aadd1dede..e3d725e656bc5ffc5fc92133794a80799fb21c48 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -89,6 +89,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -286,7 +286,7 @@ index 988093b46a4c386f8d47a4c530b8e9f6f49efd0d..2a9af6af653dc62c99baff01ebea8ad6
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
index 68579837bbe1f532b94de072bcb614d2baa3f74d..cc780b3e4649549c746fc6127fc85c387a6be370 100644
index b8dd08ad346e90ddde14289441d6e52776c42538..8706b15afa5630c94a5568d6a0644edf2ba12ff5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -147,6 +147,11 @@ public class Rabbit extends Animal {
@@ -443,7 +443,7 @@ index 6d3a39c0f65e19cff3c13355a53995df34ee136f..327a2161ba4b400952f104113015cbb6
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
index 113b6d80885717d59c8fefab07afe68779f0051d..c888516a1e4b7283fdb2cb15bc9a13900e901e53 100644
index 782e9fae7cdd0b3bbf2e1fb408c18663771cc346..e64dec4560331d34f3c2885f50d716744e90f5df 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -40,6 +40,11 @@ public class Donkey extends AbstractChestedHorse {
@@ -459,7 +459,7 @@ index 113b6d80885717d59c8fefab07afe68779f0051d..c888516a1e4b7283fdb2cb15bc9a1390
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
index 3144c7e7b018a1e8a907691b798e656500f57430..6ae27ba8e40c490e8ae58d8f78f071a9e18d980e 100644
index 6a7d8ff804b184005fda17f3d7a4b9750a7c2fe5..704e08b1ad0601e9b7f3b355214a820858a421ce 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
@@ -65,6 +65,11 @@ public class Horse extends AbstractHorse {
@@ -475,7 +475,7 @@ index 3144c7e7b018a1e8a907691b798e656500f57430..6ae27ba8e40c490e8ae58d8f78f071a9
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 24b80622da9ddebb8544f25e8c01047c41a5fd86..57589a54362a4e0d23ba32957d5db47da2b9ec83 100644
index 3c9ea07ded25ac8a479a03fecfdd7ddb9d5a046c..708f0bccffc05fac0d711df13dd1b5e173ff6109 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -136,6 +136,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -491,7 +491,7 @@ index 24b80622da9ddebb8544f25e8c01047c41a5fd86..57589a54362a4e0d23ba32957d5db47d
public boolean isTraderLlama() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
index 88e61572f5dd8d05fadab131046f74bd8131f42b..610282c7be7355f0800c1265cc8b19dd557d065a 100644
index 762cc54c1812e70aabd18baf2c72930dc72981a7..aa78c4512de01229bdc5fcdc30e7ac992c96ea07 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
@@ -39,6 +39,11 @@ public class Mule extends AbstractChestedHorse {
@@ -507,7 +507,7 @@ index 88e61572f5dd8d05fadab131046f74bd8131f42b..610282c7be7355f0800c1265cc8b19dd
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 063602f2ccced778194b268d3d7dd00bdffd73ff..345cb3eca7663b34eb847b04491ad343d06c2eb8 100644
index 57d98741d90e78c11f9ef8f00dbf75e9d452ef9a..dc8e892673b9ce137c2d4236c4ed4e843922438b 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -55,6 +55,11 @@ public class SkeletonHorse extends AbstractHorse {
@@ -523,7 +523,7 @@ index 063602f2ccced778194b268d3d7dd00bdffd73ff..345cb3eca7663b34eb847b04491ad343
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
index bdb71283d402656a3da6dd699d4cd6a5c935e541..b3d9ab9c40fff58cdcb64e1499ee70d5442d121d 100644
index 53a327f4170ffad9ff1736fa34bc733ecf5ffa9a..44f7d38ae3de0210f62477474afdc314e5c7054a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -67,6 +67,11 @@ public class TraderLlama extends Llama {
@@ -539,7 +539,7 @@ index bdb71283d402656a3da6dd699d4cd6a5c935e541..b3d9ab9c40fff58cdcb64e1499ee70d5
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 5f6235ea148d11c9e875e0d6646ceb84d4fa8d5b..0f76bcb56c03bc2743f7f36217c2442adf07d2a3 100644
index a2636f6e4767d408ef9d2cda4c346abdaa88da37..6d1938f1cbad394f218b36ec8958d5e7ba6623f7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -53,6 +53,11 @@ public class ZombieHorse extends AbstractHorse {
@@ -571,7 +571,7 @@ index dc27fb79ee596c39a8ea4a422b9a069bfccb08e9..34e1ee5f67027cd7301e22e966f65c83
public static AttributeSupplier.Builder createAttributes() {
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 4da6fbb66350e4513dde28ba6f3c5d414ef92ad1..e0c960a07fcecec58fecdf88c190ab85b25a3658 100644
index f2dad991a4a5fc43870a508f4c24f75f1b058f26..4283c4426dac5db7730b2c4c21e92732806d7e29 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
@@ -222,6 +222,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -625,7 +625,7 @@ index b9ee6fdaad09c92fdeea2e5be606818278a77c21..5347ba12f2a07601c9f044081e5e6ce6
@Override
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 f4aeaeef7d781a655e765993fb38a9d920c47109..614baf25654c770a6cdac02f8cd4301a3ccdfb23 100644
index 6acdd443e1e9d59efab8966f5f3ddbfb7be72336..fa4d5579dcdaad04fa2e6cd9ae47af1154739121 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -151,6 +151,11 @@ public class Creeper extends Monster implements PowerableMob {
@@ -743,7 +743,7 @@ index 3cb9b399db596b90d7885e2003ba41f4f79a3588..8ab5dfd2f56d52b275bf160d8a28adce
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
index 0d26d2388cc1963df9bc361b31a572c12e2f8709..dd7ad09e8b154347290126fe8f7e195c1b348ec9 100644
index ed032918fb33d60c2d60d4db9275dddf88dd72d9..148ad9bc34793e6ed2b4b02aff6f239321504268 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
@@ -107,6 +107,11 @@ public class Giant extends Monster {
@@ -823,7 +823,7 @@ index 69375fdb63b9edde3d161bac7a1946a36306f0c5..5311b26e56eac2a854e615a3e694eadd
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 2be9ab670e93067fe23745cafa0655a1dfa2bc0f..e7e4d87fb8a5276fd617afc4e0b925100abf3f76 100644
index f23ca987666fd23621d3d731fd1a4ab26ff04aa8..f7689ba01ec6d7f3483be831026e0c5f995459e9 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -151,6 +151,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -919,7 +919,7 @@ index e239bcc4d4afe48e9fc204ad38d8bc76833994f4..8ce46cc00a01a678270e906078097aa7
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 5c122ece695f61c58c90b853a0cb9a249f15b184..b069ec2f52956d1e2744fe3831567cdf85ff66c1 100644
index d1d58b8b109fb96ffe0561c8f8e3bb38a5a06e59..8f8ac9e39ec046b86843099d2daefc4f67c62b72 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -134,6 +134,11 @@ public class Slime extends Mob implements Enemy {
@@ -935,7 +935,7 @@ index 5c122ece695f61c58c90b853a0cb9a249f15b184..b069ec2f52956d1e2744fe3831567cdf
@Override
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 0314b3ac32595a22e89619a928a3c5b1b0135ed4..39b6c3ea2aa955b1005edfd80e1c4913315bd621 100644
index 9b35fe2b335ba1b835f41401162c8c55fd1cc31e..12e25f1cf9daeecd46788959227910b328091a43 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -71,6 +71,11 @@ public class Spider extends Monster {
@@ -1005,7 +1005,7 @@ index cad3d3741460c21da2e163ed9ec6ba7894ab2712..1e4f227ad895f2099d889c3b93171764
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index 015d0f64e37003907a5ae4e9f5ca11dbe4d7b81a..9cb7983b911dd3ec260df9fc05651ed2de93205c 100644
index 021550a0465dd1fd152b4c2e763014058730e8ca..b9b2e76535da32965615de563d4674cee4abd7f0 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -78,6 +78,11 @@ public class Vindicator extends AbstractIllager {
@@ -1037,7 +1037,7 @@ index 0359db7ccca286df046066b4a2356a50b8240a56..801355c7c3a4acfb3c45b0d5bc3218e9
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index 59797dd2521d349cb1d7c2a3d5344e2b14a510ac..81cc7a0707f8e4a8b7272543e0d9c45c5d58b897 100644
index b374069a1e88db67a56d6d5f9e05318c0403d462..dd47abc25f71ad019025e11bdf9f5ca97c2c78f3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -55,6 +55,11 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1069,10 +1069,10 @@ index a91ec2e385940b12bc41d9c09819c9081edc5c44..9928af5318c1cc4676c5cf215840ce0f
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 72bd61193c3289d7228ab76805eb19c29a4a058d..a68bced3a278f082680994a13920f97d82cdbd42 100644
index efe74738b5a90f822901488aa99f981029416fb5..f2900d76e9577c83be377500f7d7e7f438a56683 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -136,6 +136,11 @@ public class Zombie extends Monster {
@@ -137,6 +137,11 @@ public class Zombie extends Monster {
public boolean jockeyTryExistingChickens() {
return level.purpurConfig.zombieJockeyTryExistingChickens;
}
@@ -1165,7 +1165,7 @@ index 75db61c5aab66234b26f7899229ddca8896e2086..a44f9a59fbec146df95d89c26df12efb
public static AttributeSupplier.Builder createAttributes() {
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 18a184633362c43f59f9493c56b33ccfb09d2873..7962332c16f8cd83e5a05176b34674a3b3ff6a4b 100644
index bbf1e5c900d293da044809bf1871125264ce89c9..d2463e17dabb592bf799a1d851141339cd962222 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -186,6 +186,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Tick fluids config
diff --git a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
index f0cbb9e44b9434a69ea0ee7a5b403373d3680908..859bd95ccaf41ef594948eaaaebb4a78329b2ee9 100644
index 43e8ef1d6a65d4fd3fe53a587639ffb814368217..9c22a730772f71b34c63d1e43d48943f71e9990b 100644
--- a/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/LiquidBlock.java
@@ -106,7 +106,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@@ -105,7 +105,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@Override
public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) {
@@ -17,7 +17,7 @@ index f0cbb9e44b9434a69ea0ee7a5b403373d3680908..859bd95ccaf41ef594948eaaaebb4a78
world.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(world, pos)); // Paper
}
@@ -130,7 +130,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@@ -129,7 +129,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@Override
public BlockState updateShape(BlockState state, Direction direction, BlockState neighborState, LevelAccessor world, BlockPos pos, BlockPos neighborPos) {
@@ -26,7 +26,7 @@ index f0cbb9e44b9434a69ea0ee7a5b403373d3680908..859bd95ccaf41ef594948eaaaebb4a78
world.scheduleTick(pos, state.getFluidState().getType(), this.fluid.getTickDelay(world));
}
@@ -139,7 +139,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@@ -138,7 +138,7 @@ public class LiquidBlock extends Block implements BucketPickup {
@Override
public void neighborChanged(BlockState state, Level world, BlockPos pos, Block sourceBlock, BlockPos sourcePos, boolean notify) {

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] Add config change multiplier critical damage value
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index 120ac554b5ffd677731ed959f01da7478d37e2f3..fa3a2ef8ec1f2b7c22a27acfddda12cb5e666fe9 100644
index b416c8606ef53aa49458bb6f36689068bc9b54cc..d9fe4f09e48f67fd4b79528a38fcaef9b94269d8 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -1314,7 +1314,7 @@ public abstract class Player extends LivingEntity {
flag2 = flag2 && !level.paperConfig.disablePlayerCrits; // Paper
flag2 = flag2 && !level.paperConfig().entities.behavior.disablePlayerCrits; // Paper
flag2 = flag2 && !this.isSprinting();
if (flag2) {
- f *= 1.5F;

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Config for unverified username message
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 9311130b5401cda69c62b5b5c23718554b94ab84..6ee6a35006a3d479ce916b3be297e3c1e38d7a8c 100644
index 5f46bdcb109ec4af7e1241a278737b3dc41299f5..a62825d8f8c79ac15183b7b1eb9ba0c5e9a1fc6e 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -402,7 +402,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
@@ -401,7 +401,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
ServerLoginPacketListenerImpl.this.gameProfile = ServerLoginPacketListenerImpl.this.createFakeProfile(gameprofile);
ServerLoginPacketListenerImpl.this.state = ServerLoginPacketListenerImpl.State.READY_TO_ACCEPT;
} else {

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 79db12259f154fd7dedf1311051c698492e3817b..8ba651d40ed75e30961e63a32b815dd35f7746b6 100644
index 189c3fe0977ee6d67943421af903ed61968c3d9b..c4f9623696e07ee33e4f42f36126f2b3e7a80865 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4485,5 +4485,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
@@ -31,7 +31,7 @@ index 79db12259f154fd7dedf1311051c698492e3817b..8ba651d40ed75e30961e63a32b815dd3
// 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 5a742e95da47208366e791a10ce1e82d0c3524b4..b2036c0bd97126290c581b0c48e25d8f9d809584 100644
index fde87b5a2c3b3d94facf02ba9538685cc1f26651..2d1f5dfbaee60cac7cd24ca90dedea893e93e128 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -266,6 +266,7 @@ public abstract class LivingEntity extends Entity {
@@ -91,7 +91,7 @@ index 5a742e95da47208366e791a10ce1e82d0c3524b4..b2036c0bd97126290c581b0c48e25d8f
public boolean isSensitiveToWater() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 473e2a1a8104669eed3db862560e67b426297aba..210a7c737261a42101f3d22b8a2464639c75b17a 100644
index 45e00fc1a5a695db0bf711e8f826722c814b481b..46eafe918a660fba8b18b6565a395bf6043b3978 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1673,17 +1673,7 @@ public abstract class Mob extends LivingEntity {
@@ -114,7 +114,7 @@ index 473e2a1a8104669eed3db862560e67b426297aba..210a7c737261a42101f3d22b8a246463
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
index 4188d8b564999ba3befa53e78f103a6d2777845f..fffdea563dbe48ce8c1b13cbe0d052940fa9f571 100644
index 8cc4f6a4e8ef66c4e799a0e5bdb4ddc5466007e6..4505b61f10c3aad3d0ab144cea5ef6efc6ad7357 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -65,6 +65,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -211,7 +211,7 @@ index 47e4f62d177c14ceffeb13a3fee5bfa342da7184..bcbce83f9e304809fb946f80c9dd32c4
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index e7e4d87fb8a5276fd617afc4e0b925100abf3f76..42919b2267eed71e29830a96afdd3be19d6b6f68 100644
index f7689ba01ec6d7f3483be831026e0c5f995459e9..836ca1a47524088c78c6c72a9479c7ffabfbee10 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -60,6 +60,7 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -275,10 +275,10 @@ index e7e4d87fb8a5276fd617afc4e0b925100abf3f76..42919b2267eed71e29830a96afdd3be1
// Paper end
private static enum AttackPhase {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index a68bced3a278f082680994a13920f97d82cdbd42..8f88e320d7165cb56172d6a1bfa4bf3c5c2a9162 100644
index f2900d76e9577c83be377500f7d7e7f438a56683..0748babe61be5e5082132af6c4a3bc82612b70b3 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -93,11 +93,12 @@ public class Zombie extends Monster {
@@ -94,11 +94,12 @@ public class Zombie extends Monster {
private int inWaterTime;
public int conversionTime;
private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field
@@ -287,12 +287,12 @@ index a68bced3a278f082680994a13920f97d82cdbd42..8f88e320d7165cb56172d6a1bfa4bf3c
public Zombie(EntityType<? extends Zombie> type, Level world) {
super(type, world);
this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig.entitiesDifficultyBreakDoors.getOrDefault(type, world.paperConfig.entitiesDifficultyBreakDoors.get(EntityType.ZOMBIE)))); // Paper
this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(world.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(type, world.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper
+ this.setShouldBurnInDay(true); // Purpur
}
public Zombie(Level world) {
@@ -294,30 +295,7 @@ public class Zombie extends Monster {
@@ -295,30 +296,7 @@ public class Zombie extends Monster {
@Override
public void aiStep() {
@@ -324,7 +324,7 @@ index a68bced3a278f082680994a13920f97d82cdbd42..8f88e320d7165cb56172d6a1bfa4bf3c
super.aiStep();
}
@@ -355,6 +333,7 @@ public class Zombie extends Monster {
@@ -356,6 +334,7 @@ public class Zombie extends Monster {
}
@@ -332,7 +332,7 @@ index a68bced3a278f082680994a13920f97d82cdbd42..8f88e320d7165cb56172d6a1bfa4bf3c
public boolean isSunSensitive() {
return this.shouldBurnInDay; // Paper - use api value instead
}
@@ -484,7 +463,7 @@ public class Zombie extends Monster {
@@ -485,7 +464,7 @@ public class Zombie extends Monster {
nbt.putBoolean("CanBreakDoors", this.canBreakDoors());
nbt.putInt("InWaterTime", this.isInWater() ? this.inWaterTime : -1);
nbt.putInt("DrownedConversionTime", this.isUnderWaterConverting() ? this.conversionTime : -1);
@@ -341,7 +341,7 @@ index a68bced3a278f082680994a13920f97d82cdbd42..8f88e320d7165cb56172d6a1bfa4bf3c
}
@Override
@@ -498,7 +477,7 @@ public class Zombie extends Monster {
@@ -499,7 +478,7 @@ public class Zombie extends Monster {
}
// Paper start
if (nbt.contains("Paper.ShouldBurnInDay")) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage API
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
index fa3a2ef8ec1f2b7c22a27acfddda12cb5e666fe9..e8b1dd7f413a27fa5d495a03bc725cead85a2c34 100644
index d9fe4f09e48f67fd4b79528a38fcaef9b94269d8..38b1807c7abf7278b2d00be1e1c8e3e3b42fabce 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -187,6 +187,7 @@ public abstract class Player extends LivingEntity {
@@ -26,10 +26,10 @@ index fa3a2ef8ec1f2b7c22a27acfddda12cb5e666fe9..e8b1dd7f413a27fa5d495a03bc725cea
} else {
if (fallDistance >= 2.0F) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 1948eda5fd4d6b8d8a9bdb8ee36fd9f12764525a..3747a3b47735a26a86651677579c20a5eb6a915f 100644
index 120625dc6e748fb1bd12334848911e8d1d85679a..d7560a3a65129a4de219caafe8126bfd0f4db6ad 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2819,5 +2819,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2805,5 +2805,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setSpawnInvulnerableTicks(int spawnInvulnerableTime) {
getHandle().spawnInvulnerableTime = spawnInvulnerableTime;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add uptime command
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
index 9db941587e870b2a9d0378652d62f4f2c2c385bd..174d4e18743f4388ac6aec6875adf6ac88f32bcd 100644
index c6a97b3fa04c683a92a8d838f98e73b59bb7558a..2fbb65c685ac88c77d54f27a5981a132fb44e370 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
@@ -208,6 +208,7 @@ public class Commands {
@@ -17,10 +17,10 @@ index 9db941587e870b2a9d0378652d62f4f2c2c385bd..174d4e18743f4388ac6aec6875adf6ac
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8a6b839ce55bc352dd5a38883c2bf8240f7420bf..3cbfbfeccb6603dc8dc60d85b8db19b61a736b72 100644
index 90b192ea540c99df4d9ba8713f126cd7f1cdc81d..d6faf01b6225fec11a4290592ac6ddf674ca6ce2 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -279,6 +279,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -278,6 +278,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
//public ConsoleReader reader; // Paper
public static int currentTick = 0; // Paper - Further improve tick loop

View File

@@ -51,10 +51,10 @@ index 800c80398acb007ae71b06d1a887aa159e866eda..abb90af5eb73eb9c4c73f52feef9a29c
private int maxStack = MAX_STACK;
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 6b9def09a1f7ccd6370c960723dea079addddeb5..41be109438f5cadebcf3088ff8cb6bdde2c1044b 100644
index e0026d35131fa0b7029a9d23bda22bf27c234744..988fdfae38f0e9f472a7a5fddcf41a25484bafbe 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1405,6 +1405,19 @@ public final class CraftServer implements Server {
@@ -1404,6 +1404,19 @@ public final class CraftServer implements Server {
return true;
}

View File

@@ -26,12 +26,12 @@ index 9c8f26a7510c43e24b49660546d524f7bed85a5e..0a859842e16e2cd2dfc25f0fa9920966
LocalDate localdate = LocalDate.now();
int i = localdate.get(ChronoField.DAY_OF_MONTH);
diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
index fffdea563dbe48ce8c1b13cbe0d052940fa9f571..085b3b29942639dede102c8228e1124bb2e1be8f 100644
index 4505b61f10c3aad3d0ab144cea5ef6efc6ad7357..e542407894f58fb8c0339a7a6d2e7b2cb5891eb4 100644
--- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -140,11 +140,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
this.reassessWeaponGoal();
this.setCanPickUpLoot(this.level.paperConfig.skeletonsAlwaysCanPickUpLoot || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper
this.setCanPickUpLoot(this.level.paperConfig().entities.behavior.mobsCanAlwaysPickUpLoot.skeletons || randomsource.nextFloat() < 0.55F * difficulty.getSpecialMultiplier()); // Paper
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {
- LocalDate localdate = LocalDate.now();
- int i = localdate.get(ChronoField.DAY_OF_MONTH);
@@ -43,10 +43,10 @@ index fffdea563dbe48ce8c1b13cbe0d052940fa9f571..085b3b29942639dede102c8228e1124b
this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F;
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 8f88e320d7165cb56172d6a1bfa4bf3c5c2a9162..5b91419948b8c08805fdf9c8bb70fd98eaa2ca7c 100644
index 0748babe61be5e5082132af6c4a3bc82612b70b3..5b7a6fa9692933ceb40c36e2c684a98d2ba51d57 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -585,11 +585,7 @@ public class Zombie extends Monster {
@@ -586,11 +586,7 @@ public class Zombie extends Monster {
}
if (this.getItemBySlot(EquipmentSlot.HEAD).isEmpty()) {

View File

@@ -5,11 +5,11 @@ Subject: [PATCH] UPnP Port Forwarding
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 3cbfbfeccb6603dc8dc60d85b8db19b61a736b72..1facde28d476bbdb86e33aac3d4f2754fe89c36f 100644
index d6faf01b6225fec11a4290592ac6ddf674ca6ce2..d88acaff65e5e19ce1afbbdb39459b07fda08ffc 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -293,6 +293,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Spigot end
public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations;
public static long currentTickLong = 0L; // Paper
public boolean lagging = false; // Purpur
+ protected boolean upnp = false; // Purpur
@@ -32,10 +32,10 @@ index 3cbfbfeccb6603dc8dc60d85b8db19b61a736b72..1facde28d476bbdb86e33aac3d4f2754
if (this.server != null) {
this.server.disablePlugins();
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 1a9b717c06ae93d996457399d35abb167a4c5f45..48d48ebd82a5a8caabadf92979d457a44408585c 100644
index f831481434d3bfdb7dba5068ee3fc55f78b98ca0..42f1f732673713291dc1d1c037c7043c3d50e390 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -283,6 +283,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -280,6 +280,30 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.warn("Perhaps a server is already running on that port?");
return false;
}

View File

@@ -149,7 +149,7 @@ index 8e04d20c0f1038dbe1c8e7f05242f66e95ec5a38..66749befa2e6d766d80224b507e1acef
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
index ebcc5527e1df12dfc682a5558f1e8a2da13d8216..7f8bb43f6d2ace9ef277ecd52975a7fa4f895d37 100644
index 98a68e759d7b23da78dd2ec6bcb1aa12dab3ad2c..0292690b9c99f66210a03817e512c65ca65bc749 100644
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
@@ -104,6 +104,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -277,7 +277,7 @@ index 2a9af6af653dc62c99baff01ebea8ad64ff62fe0..bf9e6b6ca2b2bf8b2a2e96d10cd4fda9
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
index cc780b3e4649549c746fc6127fc85c387a6be370..9656320e3d53fb7474e40762f497ead3997959b0 100644
index 8706b15afa5630c94a5568d6a0644edf2ba12ff5..e6b36650d1c670dbb3ccb0657f43432e64166e29 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
@@ -152,6 +152,11 @@ public class Rabbit extends Animal {
@@ -437,7 +437,7 @@ index 327a2161ba4b400952f104113015cbb630d1950d..b8ec588e021a33fa2a41b583605603c0
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
index c888516a1e4b7283fdb2cb15bc9a13900e901e53..645ff6433a299ef3ad8b2ea37c6c46e60a610d48 100644
index e64dec4560331d34f3c2885f50d716744e90f5df..6d9a91bbb53e748f0fe88318da23c19c6755ca9a 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -45,6 +45,11 @@ public class Donkey extends AbstractChestedHorse {
@@ -453,7 +453,7 @@ index c888516a1e4b7283fdb2cb15bc9a13900e901e53..645ff6433a299ef3ad8b2ea37c6c46e6
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
index 6ae27ba8e40c490e8ae58d8f78f071a9e18d980e..939e8c0850f1f460808c82109364a022db46c54a 100644
index 704e08b1ad0601e9b7f3b355214a820858a421ce..d0b477c01386ce25bf4a93bda8561c7ecb05f70c 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java
@@ -70,6 +70,11 @@ public class Horse extends AbstractHorse {
@@ -469,7 +469,7 @@ index 6ae27ba8e40c490e8ae58d8f78f071a9e18d980e..939e8c0850f1f460808c82109364a022
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
index 5506acea9b84a42eff7bdd593fec69c5031363b6..5fdd5588f13efade75ed1bd2ff3ca346ed8b3b94 100644
index b7b8d7587018759fc418043694abd38fd043852b..9bbb756e5da3d0967e5beb026996775e272b10e4 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java
@@ -141,6 +141,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -485,7 +485,7 @@ index 5506acea9b84a42eff7bdd593fec69c5031363b6..5fdd5588f13efade75ed1bd2ff3ca346
public boolean isTraderLlama() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
index 610282c7be7355f0800c1265cc8b19dd557d065a..7c52b316c24c8cf55bf4a68337dd70515b270a1a 100644
index aa78c4512de01229bdc5fcdc30e7ac992c96ea07..00337bd1c529b31c539ca23f52551ce47288f679 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/Mule.java
@@ -44,6 +44,11 @@ public class Mule extends AbstractChestedHorse {
@@ -501,7 +501,7 @@ index 610282c7be7355f0800c1265cc8b19dd557d065a..7c52b316c24c8cf55bf4a68337dd7051
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 345cb3eca7663b34eb847b04491ad343d06c2eb8..6ab7dc16671ac26a73c96d1c1b941b5e05f21cba 100644
index dc8e892673b9ce137c2d4236c4ed4e843922438b..362ac48c22a21d3473a7726f8e6ff9712afecaec 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -60,6 +60,11 @@ public class SkeletonHorse extends AbstractHorse {
@@ -517,7 +517,7 @@ index 345cb3eca7663b34eb847b04491ad343d06c2eb8..6ab7dc16671ac26a73c96d1c1b941b5e
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
index b3d9ab9c40fff58cdcb64e1499ee70d5442d121d..4e2fa045449783824adeeeca260c83ae81abd9f4 100644
index 44f7d38ae3de0210f62477474afdc314e5c7054a..ce01246a03a0319670b3fd34499db67c5dc11dc5 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -72,6 +72,11 @@ public class TraderLlama extends Llama {
@@ -533,7 +533,7 @@ index b3d9ab9c40fff58cdcb64e1499ee70d5442d121d..4e2fa045449783824adeeeca260c83ae
@Override
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 0f76bcb56c03bc2743f7f36217c2442adf07d2a3..60f72f023fcfc15c9f092e955055ab5089e27cf5 100644
index 6d1938f1cbad394f218b36ec8958d5e7ba6623f7..215c2a75fc53e558a5d804055138ee0fdb494965 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -58,6 +58,11 @@ public class ZombieHorse extends AbstractHorse {
@@ -549,7 +549,7 @@ index 0f76bcb56c03bc2743f7f36217c2442adf07d2a3..60f72f023fcfc15c9f092e955055ab50
public static AttributeSupplier.Builder createAttributes() {
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 93b5df1b561a89ee2f7826662e70106cfbd1d271..1974e68cd9d00bdbabe7778c8e140d7f20f3bb6a 100644
index ebaf3945f30c45a0c4d0844ca7bf7a803cc636a7..3afe99e22854aaf50b48256d7f9b83bed12cad2e 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
@@ -237,6 +237,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
@@ -597,7 +597,7 @@ index 5347ba12f2a07601c9f044081e5e6ce6472c4a2a..0ac5264a16c9121c0f6233e83c426199
@Override
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 09d41e2adef76a4d3fb68b3a3002572144c9044c..4e5dc1e30f981a6bc33344a18af56a09ac5d6230 100644
index b19e130b56839c261dd71bbf62b052ede5fb7227..fb342992e6033bcd001faf7e0bf9c0faa1698034 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
@@ -165,6 +165,11 @@ public class Creeper extends Monster implements PowerableMob {
@@ -709,7 +709,7 @@ index 8ab5dfd2f56d52b275bf160d8a28adce5564a5f2..225a4e549c2cbf64beaba52d26b196af
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java
index dd7ad09e8b154347290126fe8f7e195c1b348ec9..5cd408392e8afbbb58a4b808af92631c59ab9339 100644
index 148ad9bc34793e6ed2b4b02aff6f239321504268..2511ca42039fa91483a316ae13bb7da54f312f13 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Giant.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java
@@ -112,6 +112,11 @@ public class Giant extends Monster {
@@ -789,7 +789,7 @@ index 5311b26e56eac2a854e615a3e694eadd9520cc1c..2111a99d23d86f5f2e2ce8101dbbf292
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index 42919b2267eed71e29830a96afdd3be19d6b6f68..bc5d6300c2e5f6cf8fbad73096e8a6e5d279a873 100644
index 836ca1a47524088c78c6c72a9479c7ffabfbee10..33b347474b7485633ca77bdff28e4b32580b51b8 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -157,6 +157,11 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -885,7 +885,7 @@ index 8ce46cc00a01a678270e906078097aa717abdc41..51c548cd84bd83624fbff3f853a8050d
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index b069ec2f52956d1e2744fe3831567cdf85ff66c1..a4489d241031632513a81d32af394d9eba9bec11 100644
index 8f8ac9e39ec046b86843099d2daefc4f67c62b72..b808e03311f22045a2a59b86dc28592143acf8e6 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -139,6 +139,11 @@ public class Slime extends Mob implements Enemy {
@@ -901,7 +901,7 @@ index b069ec2f52956d1e2744fe3831567cdf85ff66c1..a4489d241031632513a81d32af394d9e
@Override
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 39b6c3ea2aa955b1005edfd80e1c4913315bd621..194b6a976e032ddf3e4cbdffdd68dbb9a48ec720 100644
index 12e25f1cf9daeecd46788959227910b328091a43..bdd4fc3072f7a5ea504ba35f6a08ae971e83b69f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
@@ -76,6 +76,11 @@ public class Spider extends Monster {
@@ -965,7 +965,7 @@ index 1e4f227ad895f2099d889c3b9317176449675af1..a30440eb53dc909c7c02137dc041df06
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
index 9cb7983b911dd3ec260df9fc05651ed2de93205c..d37a2fc76ade824a9e378216c5084efac9a4083d 100644
index b9b2e76535da32965615de563d4674cee4abd7f0..efbfe0a151686f00051026113c4d1f4d9c9eb241 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java
@@ -83,6 +83,11 @@ public class Vindicator extends AbstractIllager {
@@ -997,7 +997,7 @@ index 801355c7c3a4acfb3c45b0d5bc3218e948f72e10..7a59a1834cf07933215bdee56dda9a94
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
index 81cc7a0707f8e4a8b7272543e0d9c45c5d58b897..624f0fd9b04fa9fc76cc3b3461dc59497258071b 100644
index dd47abc25f71ad019025e11bdf9f5ca97c2c78f3..56f1c52afe32ce71edd44c7bc3ff1ac1f09457a2 100644
--- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -60,6 +60,11 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1029,10 +1029,10 @@ index 9928af5318c1cc4676c5cf215840ce0f8baf9024..b99419b712b9af385988f1a1271b28f4
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
index 5b91419948b8c08805fdf9c8bb70fd98eaa2ca7c..b792c90963d5b4df4ca400c181ee85e55005e84e 100644
index 5b7a6fa9692933ceb40c36e2c684a98d2ba51d57..177bc2b03d2f103add8e8d8ff862c8fe48c4ef6b 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java
@@ -142,6 +142,11 @@ public class Zombie extends Monster {
@@ -143,6 +143,11 @@ public class Zombie extends Monster {
public boolean isSensitiveToWater() {
return this.level.purpurConfig.zombieTakeDamageFromWater;
}
@@ -1125,7 +1125,7 @@ index a44f9a59fbec146df95d89c26df12efb79f6179a..760015f7a98e70b735707c77472c084d
public static AttributeSupplier.Builder createAttributes() {
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 c8a82fd10cadc27f394a7cde646a5a2e9eb39371..05fb8c7f968b736c8430ab2ea56900c14485b10b 100644
index dba831d07a2be3dd79a9b8f0862faca85a37b171..ffd03c6955ba94af097d2937b74c5862b12e82f2 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -191,6 +191,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable valid characters for usernames
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 6ee6a35006a3d479ce916b3be297e3c1e38d7a8c..84a4853fe19817e6f95b16d563d819613ec45ac2 100644
index a62825d8f8c79ac15183b7b1eb9ba0c5e9a1fc6e..22b1836931e63a626ee12cb2b9c6db01daabf93e 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -270,6 +270,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
@@ -269,6 +269,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener
return false;
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Give bee counts in beehives to Purpur clients
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1facde28d476bbdb86e33aac3d4f2754fe89c36f..5d64310a6705bda4781257a856647301e7c6ff68 100644
index d88acaff65e5e19ce1afbbdb39459b07fda08ffc..dc306e6df26a8153348d509b7d5c0c6526100f1c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1054,6 +1054,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -17,10 +17,10 @@ index 1facde28d476bbdb86e33aac3d4f2754fe89c36f..5d64310a6705bda4781257a856647301
this.hasLoggedStop = true; // Paper
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 48d48ebd82a5a8caabadf92979d457a44408585c..0c5a4bb23f115ef7d98a4908f7a15031a544289b 100644
index 42f1f732673713291dc1d1c037c7043c3d50e390..438d95690d5762c88bffef8afd25ac63b5d838fd 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -375,6 +375,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
@@ -372,6 +372,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
}
org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Dont eat blocks in non ticking chunks
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
index 9f07b6bb89b2f7424d874aca8399c9a31f3bf669..c4677bac7a09133513cbeed9c712b93100783183 100644
index f153176210618c5778056f351ac94a8fb6b4a4e3..123e02df1a60842b8f73afc2729724a697df4954 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -1830,7 +1830,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -1829,7 +1829,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
return this.anyPlayerCloseEnoughForSpawning(this.getUpdatingChunkIfPresent(chunkcoordintpair.toLong()), chunkcoordintpair, reducedRange);
}
@@ -18,7 +18,7 @@ index 9f07b6bb89b2f7424d874aca8399c9a31f3bf669..c4677bac7a09133513cbeed9c712b931
// tested and confirmed via System.nanoTime()
com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> playersInRange = reducedRange ? playerchunk.playersInMobSpawnRange : playerchunk.playersInChunkTickRange;
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 53d0ccf95a6e07a00918f05ddaeeca699737d2eb..0e06db15572bf7d23d61f93c0b6de1b78ea4f990 100644
index a6bd9ced7805d4c0f0185feca2afe87e198b6f98..bd2b4cbb3286ef72e40a8089aa41230826203959 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -286,7 +286,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {

View File

@@ -6,19 +6,19 @@ Subject: [PATCH] Max joins per second
When this option is set to true the `max-joins-per-tick` setting in paper.yml will be used per second instead of per tick
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
index 7030c38980dbebfd374c2369294555650cf7880b..7a7b93d46650faa16f2e6df36c5363cf47db75ba 100644
index f76c52e4661ef740dc924b0704a9ce28982294f1..f08c24920aebe5a84927024fdd14d954053129d3 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -517,11 +517,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
private static final int MAX_PER_TICK = com.destroystokyo.paper.PaperConfig.maxJoinsPerTick; // Paper
@@ -516,11 +516,20 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper
private static int joinAttemptsThisTick; // Paper
private static int currTick; // Paper
+ private static int tickSecond; // Purpur
public void tick() {
this.flushQueue();
// Paper start
if (currTick != MinecraftServer.currentTick) {
currTick = MinecraftServer.currentTick;
if (currTick != net.minecraft.server.MinecraftServer.currentTick) {
currTick = net.minecraft.server.MinecraftServer.currentTick;
+ // Purpur start
+ if (org.purpurmc.purpur.PurpurConfig.maxJoinsPerSecond) {
+ if (++tickSecond > 20) {

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] MC-238526 - Fix spawner not spawning water animals correctly
diff --git a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
index 1b6d426b44e200b3634c0a9ac7c3a315841ada40..76fdea60535e357b380ebaf76f9739ea78347de8 100644
index 18389f46902bb9879ac6d734723e9a720724dc48..b2b8663a9cff08bacdab91c7bb014ba654241ada 100644
--- a/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
+++ b/src/main/java/net/minecraft/world/entity/animal/WaterAnimal.java
@@ -83,6 +83,6 @@ public abstract class WaterAnimal extends PathfinderMob {
i = world.getMinecraftWorld().paperConfig.waterAnimalMaxSpawnHeight != null ? world.getMinecraftWorld().paperConfig.waterAnimalMaxSpawnHeight : i;
j = world.getMinecraftWorld().paperConfig.waterAnimalMinSpawnHeight != null ? world.getMinecraftWorld().paperConfig.waterAnimalMinSpawnHeight : j;
i = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.maximum.or(i);
j = world.getMinecraftWorld().paperConfig().entities.spawning.wateranimalSpawnHeight.minimum.or(j);
// Paper end
- return pos.getY() >= j && pos.getY() <= i && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER);
+ return ((reason == MobSpawnType.SPAWNER && world.getMinecraftWorld().purpurConfig.spawnerFixMC238526) || (pos.getY() >= j && pos.getY() <= i)) && world.getFluidState(pos.below()).is(FluidTags.WATER) && world.getBlockState(pos.above()).is(Blocks.WATER); // Purpur