diff --git a/patches/api/0006-Add-provided-Material-to-getDrops.patch b/patches/api/0006-Add-provided-Material-to-getDrops.patch index bf9d9ccca..48ec6611a 100644 --- a/patches/api/0006-Add-provided-Material-to-getDrops.patch +++ b/patches/api/0006-Add-provided-Material-to-getDrops.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add provided Material to getDrops diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java -index 798b46e9a394c124327537b90afe41f4a2ebc2f0..b99b70d3b70fef71706fce5e61054fa30d9e628f 100644 +index cd63406809aadbcc53857aaef31053915278dfc0..ab4982d52185bbc80d506da2a961345d46710efa 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java -@@ -595,6 +595,20 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran +@@ -602,6 +602,20 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran @NotNull Collection getDrops(@NotNull ItemStack tool, @Nullable Entity entity); diff --git a/patches/api/0008-PlayerTrackEntityEvent.patch b/patches/api/0008-PlayerTrackEntityEvent.patch new file mode 100644 index 000000000..de1f18a8d --- /dev/null +++ b/patches/api/0008-PlayerTrackEntityEvent.patch @@ -0,0 +1,52 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cryptite +Date: Tue, 30 Nov 2021 12:04:50 -0600 +Subject: [PATCH] PlayerTrackEntityEvent + + +diff --git a/src/main/java/org/bukkit/event/player/PlayerTrackEntityEvent.java b/src/main/java/org/bukkit/event/player/PlayerTrackEntityEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..0532a7986a8091e82f1fc64b9654be26d6c8ea5e +--- /dev/null ++++ b/src/main/java/org/bukkit/event/player/PlayerTrackEntityEvent.java +@@ -0,0 +1,40 @@ ++package org.bukkit.event.player; ++ ++import org.bukkit.entity.Entity; ++import org.bukkit.entity.Player; ++import org.bukkit.event.HandlerList; ++import org.jetbrains.annotations.NotNull; ++ ++/** ++ * Called when a player tracks an entity. ++ */ ++public class PlayerTrackEntityEvent extends PlayerEvent { ++ private static final HandlerList handlers = new HandlerList(); ++ private final Entity tracked; ++ ++ public PlayerTrackEntityEvent(@NotNull final Player player, @NotNull final Entity tracked) { ++ super(player); ++ this.tracked = tracked; ++ } ++ ++ /** ++ * Gets the entity newly tracked by the Player ++ * ++ * @return Entity the player is now tracking ++ */ ++ @NotNull ++ public Entity getTracked() { ++ return tracked; ++ } ++ ++ @NotNull ++ @Override ++ public HandlerList getHandlers() { ++ return handlers; ++ } ++ ++ @NotNull ++ public static HandlerList getHandlerList() { ++ return handlers; ++ } ++} diff --git a/patches/server/0001-Build-Changes.patch b/patches/server/0001-Build-Changes.patch index 25948fd43..24ab4fa75 100644 --- a/patches/server/0001-Build-Changes.patch +++ b/patches/server/0001-Build-Changes.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Build Changes diff --git a/build.gradle.kts b/build.gradle.kts -index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..2de428cb94a8637242ef93f007f77e031f992c5b 100644 +index e067c69fea1dec79ef8e97cad1c74020b6a3a235..a4b442683945184c12ccc375a6d6b8d18b13ccd4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts -@@ -25,8 +25,8 @@ repositories { +@@ -22,8 +22,8 @@ repositories { } dependencies { @@ -17,9 +17,9 @@ index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..2de428cb94a8637242ef93f007f77e03 + implementation(project(":Slice-API")) // Slice + implementation("io.papermc.paper:paper-mojangapi:1.17.1-R0.1-SNAPSHOT") // Slice // Paper start - implementation("org.jline:jline-terminal-jansi:3.12.1") - implementation("net.minecrell:terminalconsoleappender:1.2.0") -@@ -78,7 +78,7 @@ tasks.jar { + implementation("org.jline:jline-terminal-jansi:3.21.0") + implementation("net.minecrell:terminalconsoleappender:1.3.0") +@@ -74,7 +74,7 @@ tasks.jar { attributes( "Main-Class" to "org.bukkit.craftbukkit.Main", "Implementation-Title" to "CraftBukkit", @@ -28,7 +28,7 @@ index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..2de428cb94a8637242ef93f007f77e03 "Implementation-Vendor" to date, // Paper "Specification-Title" to "Bukkit", "Specification-Version" to project.version, -@@ -204,7 +204,7 @@ tasks.test { +@@ -201,7 +201,7 @@ tasks.test { fun TaskContainer.registerRunTask( name: String, block: JavaExec.() -> Unit ): TaskProvider = register(name) { @@ -38,10 +38,10 @@ index 13f89bdaf1ada33060b1ee4d6f2860ec194b68a4..2de428cb94a8637242ef93f007f77e03 workingDir = rootProject.layout.projectDirectory.dir( providers.gradleProperty("runWorkDir").forUseAtConfigurationTime().orElse("run") diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 7636b0ae9031e06fd8b4a0c359a45a17e6e075de..6ae168b82f83b7bb1f357e132e24c35f813b1acf 100644 +index 5a4172faaf960d48939d6a485719041987df9242..402367f10b126c7d527e5a2b5319d331dce81857 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1726,7 +1726,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop getDimensionKey(DimensionType manager) { -@@ -706,6 +727,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -695,6 +716,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (!this.preventPoiUpdated) { this.onBlockStateChange(blockposition, iblockdata1, iblockdata2); } @@ -76,7 +76,7 @@ index 465a1e179f6ae43d253d692255c8fe144179efe3..46a1b0519aaccc2b5625104d42168254 // CraftBukkit end } } -@@ -811,8 +833,20 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -800,8 +822,20 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public void neighborChanged(BlockPos pos, Block sourceBlock, BlockPos neighborPos) { if (!this.isClientSide) { BlockState iblockdata = this.getBlockState(pos); @@ -115,7 +115,7 @@ index 65a163d93a293e1e0a12a300d6335a700099cac2..b1b6072ffff0e1cc2e9e1a585ad882bc BlockState iblockdata2 = iblockdata1.hasProperty(BlockStateProperties.WATERLOGGED) && (Boolean) iblockdata1.getValue(BlockStateProperties.WATERLOGGED) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index d87f8d106834678364f8720447d671de60c2454e..66b76aa6e97b7244a2abdf4a4591edfad3c2fe6c 100644 +index 83d813025efca5846538e36508a5d4fe38b02108..e1eed33f75c3118826ccd0c994325b327e20f83f 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java @@ -890,6 +890,18 @@ public abstract class BlockBehaviour { diff --git a/patches/server/0009-Add-BlockDestroyedByNeighborEvent.patch b/patches/server/0009-Add-BlockDestroyedByNeighborEvent.patch index 72bc0a8fd..e779ac236 100644 --- a/patches/server/0009-Add-BlockDestroyedByNeighborEvent.patch +++ b/patches/server/0009-Add-BlockDestroyedByNeighborEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add BlockDestroyedByNeighborEvent diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index 46a1b0519aaccc2b5625104d42168254bfb27cd9..5e87676aa9dfa26ac052aa0c1fce35b8822e7a50 100644 +index 71fca6c915f90a771e6139b985ebc51c7923778c..96a7ae08649294062f856c67e49a793feb63ca37 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -749,6 +749,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -738,6 +738,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable { if (iblockdata.isAir()) { return false; } else { diff --git a/patches/server/0011-Add-provided-Material-to-getDrops.patch b/patches/server/0011-Add-provided-Material-to-getDrops.patch index 9e7bb3123..44395c04c 100644 --- a/patches/server/0011-Add-provided-Material-to-getDrops.patch +++ b/patches/server/0011-Add-provided-Material-to-getDrops.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add provided Material to getDrops diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -index 652c72df86dc60c0af099b24a1017472da309f8b..f975d8e88cabaa212b5da1e6e3313b39495112ca 100644 +index f374d5d6fc3ac9187236d141931c3c57ddd57865..9ed8586a3e973ba8da340b82440be8f7369ef8ca 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java -@@ -541,7 +541,18 @@ public class CraftBlock implements Block { +@@ -552,7 +552,18 @@ public class CraftBlock implements Block { @Override public Collection getDrops(ItemStack item, Entity entity) { @@ -28,7 +28,7 @@ index 652c72df86dc60c0af099b24a1017472da309f8b..f975d8e88cabaa212b5da1e6e3313b39 net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item); // Modelled off EntityHuman#hasBlock -@@ -552,6 +563,7 @@ public class CraftBlock implements Block { +@@ -563,6 +574,7 @@ public class CraftBlock implements Block { return Collections.emptyList(); } } diff --git a/patches/server/0013-Packet-obfuscation-and-reduction.patch b/patches/server/0013-Packet-obfuscation-and-reduction.patch index ed9a028a3..ccad1c1ac 100644 --- a/patches/server/0013-Packet-obfuscation-and-reduction.patch +++ b/patches/server/0013-Packet-obfuscation-and-reduction.patch @@ -148,7 +148,7 @@ index 4df12454001f0de5f358c88d876e34c35a736c42..72c74d2369a36b14f1103aa74b096f50 } } diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index b7c9294fdd3d799d410afba4a1118aa371c98533..a6dcec3660b17feae7c3c1eeb7717097c71241bf 100644 +index 1c6bf5a3014beaf5f9c1c38aed4cf3225e50b8bb..6e9c5e210270647205499801b235849d20776156 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -368,7 +368,19 @@ public class ServerEntity { @@ -173,10 +173,10 @@ index b7c9294fdd3d799d410afba4a1118aa371c98533..a6dcec3660b17feae7c3c1eeb7717097 if (this.entity instanceof LivingEntity) { diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c2f38dd9f30f803aaab71465352caa55802acdc1..01ea2e9a9aa4486d3960c3fc2f88256aea3e8f62 100644 +index 78cb0786e741f8ef8611460dab64d0e2448fb6cf..587411322e75b08b7f6c2f18a22256ff9bf526ad 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2944,7 +2944,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n +@@ -2953,7 +2953,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, n if (event.isCancelled()) { return; } @@ -186,7 +186,7 @@ index c2f38dd9f30f803aaab71465352caa55802acdc1..01ea2e9a9aa4486d3960c3fc2f88256a } 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 4a35056b01b947c57f7ca06c974463008fc4bbef..80a8ea35b47cc649f435856cad19a80d69da8425 100644 +index 51fd9bca61888861b58966a69cd1b63c742c44ca..3ed6e5d0c50c259c3df2b0cf84e2fb7ccf64def3 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java @@ -633,7 +633,7 @@ public abstract class Player extends LivingEntity { @@ -199,10 +199,10 @@ index 4a35056b01b947c57f7ca06c974463008fc4bbef..80a8ea35b47cc649f435856cad19a80d @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c64911651f3d736c83cc83996de04920b091cc57..cf8d4edba400d5f21737c0af52a1193f69386fa9 100644 +index 4ff4143f3a7cd89ef92f4b8882fa3e5addfe0f06..83495f9a7d92cd42c2f367891a0a04870a4a1577 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1997,7 +1997,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2004,7 +2004,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.sendHealthUpdate(); } } diff --git a/patches/server/0015-World-Instance-Flag.patch b/patches/server/0015-World-Instance-Flag.patch index 574f7c7f4..fa3d9a2e5 100644 --- a/patches/server/0015-World-Instance-Flag.patch +++ b/patches/server/0015-World-Instance-Flag.patch @@ -5,7 +5,7 @@ Subject: [PATCH] World Instance Flag diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index a62abcb2e05198001516cf2402dc7ead09761905..3bb1732b9bdb098b6f543c778c299e44e32c5ce2 100644 +index d40a367670ccea01978cabf7d45f3c1a690662fc..d9d7edebbdb65990ade0c8e3c0e8bddd80927c2e 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -200,6 +200,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -17,10 +17,10 @@ index a62abcb2e05198001516cf2402dc7ead09761905..3bb1732b9bdb098b6f543c778c299e44 return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 00d8b61c04ac91770b0ff3b846d3ff70bef2e8e7..d7a755092370b7478fb8aa8b8e211c01f430ff5e 100644 +index 858e29ad77aee8a1b7797c2d82902abbfd662da2..135bb95bda500f24ceef664dc522dd02570822fe 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1196,6 +1196,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -1197,6 +1197,18 @@ public class CraftWorld extends CraftRegionAccessor implements World { world.noSave = !value; } diff --git a/patches/server/0016-Block-Mob-Spawns-globally-by-EntityType.patch b/patches/server/0016-Block-Mob-Spawns-globally-by-EntityType.patch index d4cfe53d6..ffb874f30 100644 --- a/patches/server/0016-Block-Mob-Spawns-globally-by-EntityType.patch +++ b/patches/server/0016-Block-Mob-Spawns-globally-by-EntityType.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Block Mob Spawns globally by EntityType diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java -index 0277627e97b51e20470ccf578cee48470e06a34b..c73bbfdd44f674b221574782cb8d6c3c02283f91 100644 +index 2509a170b8ddd812ad5be49e5345ec5a3c0cf2b8..6a0726ec0882a67d2cc6b652010e2b02a75b3833 100644 --- a/src/main/java/com/destroystokyo/paper/PaperConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java -@@ -662,4 +662,16 @@ public class PaperConfig { +@@ -665,4 +665,16 @@ public class PaperConfig { private static void sendFullPosForHardCollidingEntities() { sendFullPosForHardCollidingEntities = getBoolean("settings.send-full-pos-for-hard-colliding-entities", true); } diff --git a/patches/server/0018-PlayerTrackEntityEvent.patch b/patches/server/0018-PlayerTrackEntityEvent.patch new file mode 100644 index 000000000..c4abe38b0 --- /dev/null +++ b/patches/server/0018-PlayerTrackEntityEvent.patch @@ -0,0 +1,18 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Cryptite +Date: Tue, 30 Nov 2021 12:04:50 -0600 +Subject: [PATCH] PlayerTrackEntityEvent + + +diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java +index 6e9c5e210270647205499801b235849d20776156..bae3f9447d9dbb6cc48fe4878ac2d57c4d28b9d7 100644 +--- a/src/main/java/net/minecraft/server/level/ServerEntity.java ++++ b/src/main/java/net/minecraft/server/level/ServerEntity.java +@@ -362,6 +362,7 @@ public class ServerEntity { + } + } + ++ this.entity.level.getCraftServer().getPluginManager().callEvent(new org.bukkit.event.player.PlayerTrackEntityEvent(entityplayer.getBukkitEntity().getPlayer(), this.entity.getBukkitEntity())); // Slice + } + + private void sendDirtyEntityData() {