diff --git a/build.gradle.kts b/build.gradle.kts index 41effb11d..bd8f17aaa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { java id("com.github.johnrengelman.shadow") version "7.0.0" apply false - id("io.papermc.paperweight.patcher") version "1.0.1-SNAPSHOT" + id("io.papermc.paperweight.patcher") version "1.0.4-SNAPSHOT" } repositories { @@ -61,15 +61,5 @@ paperweight { serverPatchDir.set(layout.projectDirectory.dir("patches/server")) serverOutputDir.set(layout.projectDirectory.dir("Purpur-Server")) } - - patchTasks { - named("server") { - patchTask { - sourceMcDevJar.set(layout.projectDirectory.file(".gradle/caches/paperweight/upstreams/paper/.gradle/caches/paperweight/taskCache/decompileJar.jar")) - libraryImports.set(layout.projectDirectory.file("build-data/library-imports.txt")) - mcdevImports.set(layout.projectDirectory.file("build-data/mcdev-imports.txt")) - } - } - } } } diff --git a/gradle.properties b/gradle.properties index d4e66219e..166f64a3a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group=net.pl3x.purpur version=1.17-R0.1-SNAPSHOT packageVersion=1_17_R1 -paperCommit=df2247b2ed5022561a0465da9b3c7a28a861ab87 +paperCommit=4b17540b42a726d2f476967731f0864b5ceed9ca org.gradle.parallel=true org.gradle.jvmargs=-Xmx3G diff --git a/patches/api/0019-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/api/0019-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index bdaed9c03..653df2cd9 100644 --- a/patches/api/0019-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/api/0019-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -5,15 +5,17 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -index b42091752981a1f309ab350e9a394092cb334824..83c51bb5e09549a8205d27a53ff0102f9439d60a 100644 +index 659193fc0596084031c09aa47fbb428a93d052e8..b88097f6a82e3ddf7e6db4b362bc810cf14d25b9 100644 --- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -@@ -206,4 +206,8 @@ public interface VanillaGoal extends Goal { - GoalKey ZOMBIE_ATTACK = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack")); - GoalKey STROLL_VILLAGE_GOLEM = GoalKey.of(Creature.class, NamespacedKey.minecraft("stroll_village_golem")); - GoalKey UNIVERSAL_ANGER_RESET = GoalKey.of(Mob.class, NamespacedKey.minecraft("universal_anger_reset")); +@@ -195,6 +195,10 @@ public interface VanillaGoal extends Goal { + GoalKey OBTAIN_RAID_LEADER_BANNER = GoalKey.of(Raider.class, NamespacedKey.minecraft("obtain_raid_leader_banner")); + GoalKey RAIDER_CELEBRATION = GoalKey.of(Raider.class, NamespacedKey.minecraft("raider_celebration")); + GoalKey RAIDER_MOVE_THROUGH_VILLAGE = GoalKey.of(Raider.class, NamespacedKey.minecraft("raider_move_through_village")); + // Purpur start + GoalKey FIND_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal_goal")); + GoalKey ORBIT_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal_goal")); + // Purpur end - } + + /** + * @deprecated removed in 1.16 diff --git a/patches/api/0021-Ridables.patch b/patches/api/0021-Ridables.patch index 49733614c..357897fe3 100644 --- a/patches/api/0021-Ridables.patch +++ b/patches/api/0021-Ridables.patch @@ -5,17 +5,18 @@ Subject: [PATCH] Ridables diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -index 83c51bb5e09549a8205d27a53ff0102f9439d60a..177143c9764e82981423879ed35625edd25d3ebf 100644 +index b88097f6a82e3ddf7e6db4b362bc810cf14d25b9..e1e5e6f24a0d7578625a06c080c5a6076a97be71 100644 --- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -@@ -209,5 +209,7 @@ public interface VanillaGoal extends Goal { +@@ -198,6 +198,8 @@ public interface VanillaGoal extends Goal { // Purpur start GoalKey FIND_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal_goal")); GoalKey ORBIT_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal_goal")); + GoalKey HAS_RIDER = GoalKey.of(Mob.class, NamespacedKey.minecraft("has_rider")); + GoalKey HORSE_HAS_RIDER = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("horse_has_rider")); // Purpur end - } + + /** diff --git a/src/main/java/net/pl3x/purpur/event/entity/RidableMoveEvent.java b/src/main/java/net/pl3x/purpur/event/entity/RidableMoveEvent.java new file mode 100644 index 0000000000000000000000000000000000000000..48e7ac392fe5efac8a4ce549e31a05ed817417e4 diff --git a/patches/api/0026-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/api/0026-Add-option-to-disable-zombie-aggressiveness-towards-.patch index 45b72c6b1..fdc430aec 100644 --- a/patches/api/0026-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/api/0026-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -6,14 +6,15 @@ Subject: [PATCH] Add option to disable zombie aggressiveness towards villagers diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -index 177143c9764e82981423879ed35625edd25d3ebf..da638f9745aceebe4f2ca90823308c6879c75ae7 100644 +index e1e5e6f24a0d7578625a06c080c5a6076a97be71..7728488e32bce6780f604d8f74f714853f2079a2 100644 --- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -@@ -211,5 +211,7 @@ public interface VanillaGoal extends Goal { +@@ -200,6 +200,8 @@ public interface VanillaGoal extends Goal { GoalKey ORBIT_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal_goal")); GoalKey HAS_RIDER = GoalKey.of(Mob.class, NamespacedKey.minecraft("has_rider")); GoalKey HORSE_HAS_RIDER = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("horse_has_rider")); + GoalKey DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager")); + GoalKey ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager")); // Purpur end - } + + /** diff --git a/patches/api/0031-Rabid-Wolf-API.patch b/patches/api/0031-Rabid-Wolf-API.patch index a3c3a541d..9cf95978b 100644 --- a/patches/api/0031-Rabid-Wolf-API.patch +++ b/patches/api/0031-Rabid-Wolf-API.patch @@ -5,16 +5,17 @@ Subject: [PATCH] Rabid Wolf API diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -index da638f9745aceebe4f2ca90823308c6879c75ae7..39f77041133228c4bd4cec2427ad0bae8e739d4a 100644 +index 7728488e32bce6780f604d8f74f714853f2079a2..71139ef4251ea8c5954445d9476625c57165462b 100644 --- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -@@ -213,5 +213,6 @@ public interface VanillaGoal extends Goal { +@@ -202,6 +202,7 @@ public interface VanillaGoal extends Goal { GoalKey HORSE_HAS_RIDER = GoalKey.of(AbstractHorse.class, NamespacedKey.minecraft("horse_has_rider")); GoalKey DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager")); GoalKey ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager")); + GoalKey AVOID_RABID_WOLVES = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolves")); // Purpur end - } + + /** diff --git a/src/main/java/org/bukkit/entity/Wolf.java b/src/main/java/org/bukkit/entity/Wolf.java index 0e5decadf31140d6cb121c298f935ccc12c7a7e7..c1fd30fe4cd4eec11eb8298f059d14584b7dd7ec 100644 --- a/src/main/java/org/bukkit/entity/Wolf.java diff --git a/patches/api/0040-Iron-golem-poppy-calms-anger.patch b/patches/api/0040-Iron-golem-poppy-calms-anger.patch index 0287a30a9..eceede67b 100644 --- a/patches/api/0040-Iron-golem-poppy-calms-anger.patch +++ b/patches/api/0040-Iron-golem-poppy-calms-anger.patch @@ -5,13 +5,14 @@ Subject: [PATCH] Iron golem poppy calms anger diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -index 39f77041133228c4bd4cec2427ad0bae8e739d4a..29144c0e325a3efbef05670a6fb2e849bbed6bba 100644 +index 71139ef4251ea8c5954445d9476625c57165462b..e5a8247d4c1c6e16f99f670552b9cf1f490b50ce 100644 --- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java +++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java -@@ -214,5 +214,6 @@ public interface VanillaGoal extends Goal { +@@ -203,6 +203,7 @@ public interface VanillaGoal extends Goal { GoalKey DROWNED_ATTACK_VILLAGER = GoalKey.of(Drowned.class, NamespacedKey.minecraft("drowned_attack_villager")); GoalKey ZOMBIE_ATTACK_VILLAGER = GoalKey.of(Zombie.class, NamespacedKey.minecraft("zombie_attack_villager")); GoalKey AVOID_RABID_WOLVES = GoalKey.of(Wolf.class, NamespacedKey.minecraft("avoid_rabid_wolves")); + GoalKey RECEIVE_FLOWER = GoalKey.of(IronGolem.class, NamespacedKey.minecraft("receive_flower")); // Purpur end - } + + /** diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index d0932da9c..2e1b43a17 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Rebrand diff --git a/build.gradle.kts b/build.gradle.kts -index f9d93a70ac754150b6e545c70b3071632be8f294..79b0248caa2bcce0d3574a06877bd7e2213b443c 100644 +index f111042223f0d7974785c37245bb60b75388163e..5cb12256904a72713a2e21b9b62e820d29191cd4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -20,8 +20,8 @@ repositories { +@@ -19,8 +19,8 @@ repositories { } dependencies { @@ -19,7 +19,7 @@ index f9d93a70ac754150b6e545c70b3071632be8f294..79b0248caa2bcce0d3574a06877bd7e2 // Paper start implementation("org.jline:jline-terminal-jansi:3.12.1") implementation("net.minecrell:terminalconsoleappender:1.2.0") -@@ -52,6 +52,7 @@ dependencies { +@@ -51,6 +51,7 @@ dependencies { implementation("co.aikar:cleaner:1.0-SNAPSHOT") // Paper implementation("io.netty:netty-all:4.1.65.Final") // Paper @@ -27,7 +27,7 @@ index f9d93a70ac754150b6e545c70b3071632be8f294..79b0248caa2bcce0d3574a06877bd7e2 testImplementation("io.github.classgraph:classgraph:4.8.47") // Paper - mob goal test testImplementation("junit:junit:4.13.1") -@@ -66,7 +67,7 @@ tasks.jar { +@@ -65,7 +66,7 @@ tasks.jar { attributes(mapOf( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -37,14 +37,14 @@ index f9d93a70ac754150b6e545c70b3071632be8f294..79b0248caa2bcce0d3574a06877bd7e2 "Specification-Title" to "Bukkit", "Specification-Version" to project.version, @@ -119,7 +120,7 @@ tasks.test { - - fun TaskContainer.registerRunTask(name: String, block: JavaExec.() -> Unit): TaskProvider = - register(name) { -- group = "Paper" -+ group = "paperweight" // Purpur - workingDir = rootProject.layout.projectDirectory.dir( - providers.gradleProperty("runWorkDir").forUseAtConfigurationTime().orElse("run") - ).get().asFile + fun TaskContainer.registerRunTask( + name: String, block: JavaExec.() -> Unit + ): TaskProvider = register(name) { +- group = "paper" ++ group = "paperweight" // Purpur + standardInput = System.`in` + workingDir = rootProject.layout.projectDirectory.dir( + providers.gradleProperty("runWorkDir").forUseAtConfigurationTime().orElse("run") 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 --- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java @@ -72,10 +72,10 @@ index a1d5c0f8fe2adb2ee56f3217e089211ec7c61eb0..43a88bc58716eef4040584944f52893c if (outputStream != null) { try { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index c6747f49ae8ddc9fc1bad82ab480f85d0883da5d..43abef32c56a5d1260fe2fb78b25260780d80935 100644 +index 1f29c92776aea8dbba52d4cb197addce5b3e4d5e..f40e6ae2a1a3c9c76071a60a3bdfb4762ab68deb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1649,7 +1649,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { Map> map = new HashMap<>(); diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 7acf077bc131af718c7548cc29deef558c04e463..10126cb1c3efa2e6c84f20c0da701a131a5dd4cb 100644 +index b0512af1d06f817f29e418d1d83f3ae446814836..4868815dbf3438ff357d399f7b40435dc8bf5c6a 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java @@ -118,6 +118,11 @@ public class PaperConfig { @@ -65,20 +65,20 @@ index 674eccb7db4982adc28d6878ed8d5b28282b80b1..5fa2723c9899c69ac326f95acf49cd47 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 667aecc27e0c886f15a0418020d046e0a9791a0e..3b33c91cb0508b9b46dd6e5fab7594afefd7a834 100644 +index 274a8bf3d5009e4207ca05348e2f813f257fd934..8fca4d611316e67edfc55ca3e822894d0b791af4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -165,6 +165,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - +@@ -166,6 +166,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper + public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray + public final net.pl3x.purpur.PurpurWorldConfig purpurConfig; // Purpur + public final co.aikar.timings.WorldTimingsHandler timings; // Paper public static BlockPos lastPhysicsProblem; // Spigot private org.spigotmc.TickLimiter entityLimiter; -@@ -196,6 +198,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { - protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) { +@@ -198,6 +200,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { + protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, final DimensionType dimensionmanager, Supplier supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper 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.purpurConfig = new net.pl3x.purpur.PurpurWorldConfig((((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName())); // Purpur diff --git a/patches/server/0007-AFK-API.patch b/patches/server/0007-AFK-API.patch index bb6518841..03a984b65 100644 --- a/patches/server/0007-AFK-API.patch +++ b/patches/server/0007-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 9f218a4b253fe2ab0e70e871eeee05bb4f0b3fcf..2ddce62629be9fc1af38306ca50ad3e81150f94c 100644 +index d23a86e6896cefea9eba0e354b25eaaffa09fa8c..f3842754684dcf3d27aa84ba51e61a48475a16aa 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1904,8 +1904,54 @@ public class ServerPlayer extends Player { +@@ -1881,8 +1881,54 @@ public class ServerPlayer extends Player { public void resetLastActionTime() { this.lastActionTime = Util.getMillis(); @@ -64,7 +64,7 @@ index 9f218a4b253fe2ab0e70e871eeee05bb4f0b3fcf..2ddce62629be9fc1af38306ca50ad3e8 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 f1ffabb1226e568b64e3aadd695197d0c9742de8..c2d4c8dc38f2bdf376a02b243e1b8fba8b133979 100644 +index 3e5970979d6db8e07fc44a4c0bd2d2fd74115573..9d9390b2670353a5201d75418132993c51890298 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -391,6 +391,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -142,7 +142,7 @@ index a060cca08631fb42041e3a79a9abc422fe7757af..e7b11d1ba984ea14f0cdf8e84f9eaab4 private EntitySelector() {} // Paper start 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 20b286fc905fa77f0d862305b73f3f74f73cfccd..1c99b930003dcf6e0b20a150dbb13f3391dd20c8 100644 +index d286d88a3c3f93dbfa92de9421e320c92cd96350..1cc9291f14a4d655cb1b91479b954d76cc1fcf7f 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -193,6 +193,15 @@ public abstract class Player extends LivingEntity { @@ -215,10 +215,10 @@ index 361f7857e461578e90cb71e15027dadaf794cb69..2578a4677d1ee060f687be531e696b7c + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a210ce9438455e3bf15e189fb5aea8f23dc9aae0..391d7ebe71b7e741f058566cc5cdb9bb6a5a879a 100644 +index c82a43f295e11a2f7f475ad1037e66dab145f57e..761e55ae057584eec937217c66029ffbaa710d0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2446,4 +2446,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2443,4 +2443,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end diff --git a/patches/server/0009-Configurable-server-mod-name.patch b/patches/server/0009-Configurable-server-mod-name.patch index c38b2c402..64f702a5b 100644 --- a/patches/server/0009-Configurable-server-mod-name.patch +++ b/patches/server/0009-Configurable-server-mod-name.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable server mod name diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 43abef32c56a5d1260fe2fb78b25260780d80935..e21ad36be8a95c7d6e3d4b1ee920b6317d13e503 100644 +index f40e6ae2a1a3c9c76071a60a3bdfb4762ab68deb..e50aa9ab6ca8adde7a2314ad86f604e68cf0de43 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1649,7 +1649,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop(this); // Paper + this.spawnInvulnerableTime = world.purpurConfig.playerSpawnInvulnerableTicks; // Purpur } - // Paper start - public BlockPos getPointInFront(double inFront) { -@@ -963,6 +964,12 @@ public class ServerPlayer extends Player { + + // Yes, this doesn't match Vanilla, but it's the best we can do for now. +@@ -940,6 +941,12 @@ public class ServerPlayer extends Player { } @@ -29,7 +29,7 @@ index 2ddce62629be9fc1af38306ca50ad3e81150f94c..3e89650de727069aa27cc86196937cd7 @Override public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { -@@ -970,7 +977,7 @@ public class ServerPlayer extends Player { +@@ -947,7 +954,7 @@ public class ServerPlayer extends Player { } else { boolean flag = this.server.isDedicatedServer() && this.isPvpAllowed() && "fall".equals(source.msgId); @@ -38,7 +38,7 @@ index 2ddce62629be9fc1af38306ca50ad3e81150f94c..3e89650de727069aa27cc86196937cd7 return false; } else { if (source instanceof EntityDamageSource) { -@@ -1145,6 +1152,7 @@ public class ServerPlayer extends Player { +@@ -1122,6 +1129,7 @@ public class ServerPlayer extends Player { } // Paper end @@ -46,7 +46,7 @@ index 2ddce62629be9fc1af38306ca50ad3e81150f94c..3e89650de727069aa27cc86196937cd7 return this; } } -@@ -2363,8 +2371,16 @@ public class ServerPlayer extends Player { +@@ -2340,8 +2348,16 @@ public class ServerPlayer extends Player { @Override public boolean isImmobile() { @@ -65,10 +65,10 @@ index 2ddce62629be9fc1af38306ca50ad3e81150f94c..3e89650de727069aa27cc86196937cd7 @Override public Scoreboard getScoreboard() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index c2d4c8dc38f2bdf376a02b243e1b8fba8b133979..7700bad94ad07bfac4a5efd90689f26bec1eed45 100644 +index 9d9390b2670353a5201d75418132993c51890298..900bb6b5fdb9e1f07b8d8aef5539844cc6266839 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1861,6 +1861,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1860,6 +1860,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser } // Paper start PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()]; @@ -77,10 +77,10 @@ index c2d4c8dc38f2bdf376a02b243e1b8fba8b133979..7700bad94ad07bfac4a5efd90689f26b 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 bc3fe18dd32da2d381b9546aae675a475c073696..ef5315298bde3a82de75f1f9099d6298a1345a5d 100644 +index b0b4c6a3c6a8ffda142efd13596349f99a8e9daf..3c1e2c69b4661e3085b95f212737f0010711e888 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -984,6 +984,8 @@ public abstract class PlayerList { +@@ -981,6 +981,8 @@ public abstract class PlayerList { } // Paper end @@ -106,10 +106,10 @@ index 2578a4677d1ee060f687be531e696b7c7be89e84..c441fcea9b2b5a77b801c8a69541cf42 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 391d7ebe71b7e741f058566cc5cdb9bb6a5a879a..b76a4bee5bae4278053adc311ab1b865ed263c6b 100644 +index 761e55ae057584eec937217c66029ffbaa710d0d..facb191a7e10df05e43da674918e7049e0eedb5d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2462,5 +2462,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2459,5 +2459,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetLastActionTime(); } diff --git a/patches/server/0018-Alternative-Keepalive-Handling.patch b/patches/server/0018-Alternative-Keepalive-Handling.patch index fedc8476f..a1d52f6a0 100644 --- a/patches/server/0018-Alternative-Keepalive-Handling.patch +++ b/patches/server/0018-Alternative-Keepalive-Handling.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7700bad94ad07bfac4a5efd90689f26bec1eed45..85e43bb2da113c2d45d6a67496a1fa89a53b1e39 100644 +index 900bb6b5fdb9e1f07b8d8aef5539844cc6266839..7255ce0b4d3e424b05542abcc35300a30e39687e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -229,6 +229,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -38,7 +38,7 @@ index 7700bad94ad07bfac4a5efd90689f26bec1eed45..85e43bb2da113c2d45d6a67496a1fa89 if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3009,6 +3025,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -3008,6 +3024,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) {