diff --git a/.template.md b/.template.md index 4ce3d3f9..a81d1130 100644 --- a/.template.md +++ b/.template.md @@ -4,10 +4,10 @@ This file is autogenerated! Modify the .template.md to make changes! ---> -This is an overview over all patches that are currently used. +This is an overview of all the patches that are currently used. | Side | Patch | Author | CoAuthors | | ----- | ------------- |:-------------:| -----:| {{#patches}} | {{parent}} | {{subject}} | {{from}} | {{#getCoAuthorString}}{{/getCoAuthorString}} | -{{/patches}} \ No newline at end of file +{{/patches}} diff --git a/PATCHES.md b/PATCHES.md index b5d5cca9..cce9580b 100644 --- a/PATCHES.md +++ b/PATCHES.md @@ -4,12 +4,14 @@ This file is autogenerated! Modify the .template.md to make changes! ---> -This is an overview over all patches that are currently used. +This is an overview of all the patches that are currently used. | Side | Patch | Author | CoAuthors | | ----- | ------------- |:-------------:| -----:| | api | AFK API | William Blake Galbreath | | | server | AFK API | William Blake Galbreath | | +| api | API for any mob to burn daylight | Ben Kerllenevich | | +| server | API for any mob to burn daylight | Ben Kerllenevich | | | server | Ability to re-add farmland mechanics from Alpha | Yive | | | server | Actually unload POI data | Spottedleaf | | | server | Add /ping command | William Blake Galbreath | | @@ -87,7 +89,7 @@ This is an overview over all patches that are currently used. | server | Allow leashing villagers | William Blake Galbreath | | | server | Allow soil to moisten from water directly under it | William Blake Galbreath | | | server | Allow toggling special MobSpawners per world | jmp | | -| server | Allows to display progress messages by player instead to | DoctaEnkoda | | +| server | Allows change broadcast message by player | DoctaEnkoda | | | server | Allows you to change the thrust limit of a piston by World | DoctaEnkoda | | | api | Alphabetize in-game /plugins list | BillyGalbreath | | | server | Alternative Keepalive Handling | William Blake Galbreath | | @@ -99,6 +101,7 @@ This is an overview over all patches that are currently used. | server | Avoid double I/O operation on load player file | ㄗㄠˋ ㄑㄧˊ | | | server | Barrels and enderchests 6 rows | William Blake Galbreath | | | server | Be aware of entity teleports when chunk checking entities | Spottedleaf | | +| server | Bee can work when raining or at night | DoctaEnkoda | | | server | Better checking for useless move packets | Paul Sauve | | | server | Brand changes | Spottedleaf | | | server | Brandings | YatopiaMC | | @@ -218,12 +221,12 @@ This is an overview over all patches that are currently used. | api | Expose findClass for profiler | Paul Sauve | | | server | Farmland trampling changes | Mariell Hoversholm | | | server | Fix 'outdated server' showing in ping before server fully | William Blake Galbreath | | -| server | Fix Bukkit.createInventory() with type LECTERN | willies952002 | | | server | Fix IndexOutOfBoundsException when sending too many changes | Ivan Pekov | | | server | Fix LightEngineThreaded memory leak | Ivan Pekov | | | server | Fix Log4j Warning | snoopdoooggyttv | | | server | Fix NPE in pickup logic for arrow | Spottedleaf | | | server | Fix SPIGOT-6278 | BillyGalbreath | | +| server | Fix advancement triggers on entity death | BillyGalbreath | | | server | Fix chunks refusing to unload at low TPS | Spottedleaf | | | server | Fix cow rotation when shearing mooshroom | William Blake Galbreath | | | server | Fix exp drop of zombie pigmen (MC-56653) | Phoenix616 | | @@ -291,6 +294,7 @@ This is an overview over all patches that are currently used. | server | Make CallbackExecutor strict again | Spottedleaf | | | server | Make Iron Golems Swim | William Blake Galbreath | | | server | Make VoxelShapeCollisionEntity lazier | Paul Sauve | | +| server | Make anvil cumulative cost configurable | 12emin34 | | | server | Make entity breeding times configurable | jmp | | | server | Make entity tracker use highest range of passengers | Spottedleaf | | | server | Make lava flow speed configurable | William Blake Galbreath | | @@ -356,8 +360,6 @@ This is an overview over all patches that are currently used. | server | Player invulnerabilities | William Blake Galbreath | | | api | PlayerAttackEntityEvent | Ivan Pekov | | | server | PlayerAttackEntityEvent | Ivan Pekov | | -| api | PlayerBookTooLargeEvent | BillyGalbreath | | -| server | PlayerBookTooLargeEvent | BillyGalbreath | | | api | PlayerSetSpawnerTypeWithEggEvent | William Blake Galbreath | | | server | PlayerSetSpawnerTypeWithEggEvent | William Blake Galbreath | | | server | Players should not cram to death | William Blake Galbreath | | @@ -400,6 +402,7 @@ This is an overview over all patches that are currently used. | server | Separate lookup locking from state access in UserCache | Spottedleaf | | | server | Set name visible when using a Name Tag on an Armor Stand | jmp | | | server | Short enderman height | William Blake Galbreath | | +| server | ShulkerBox allow oversized stacks | BillyGalbreath | | | server | Shutdown Bootstrap thread pool | foss-mc | | | server | Signs allow color codes | William Blake Galbreath | | | server | Signs editable on right click | William Blake Galbreath | | @@ -441,7 +444,6 @@ This is an overview over all patches that are currently used. | server | Update version fetcher repo | JRoy | | | server | Use array for gamerule storage | Paul Sauve | | | server | Use configured height for nether surface builders | William Blake Galbreath | | -| server | Use entity ticking chunk map for entity tracker | Spottedleaf | | | server | Use hash table for maintaing changed block set | Spottedleaf | | | server | Use list for fast iteration over pathfinder goals | Paul Sauve | | | server | Use raw iterator where possible | Paul Sauve | | diff --git a/Paper b/Paper index 41e6073c..525d0e3d 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 41e6073cedee9035355f09a3cd1f48e85dbad70f +Subproject commit 525d0e3d3752fa78e7c136a4d4bf13c3278691d9 diff --git a/patches/Airplane/patches/server/0001-Airplane-MC-Dev-Fixes.patch b/patches/Airplane/patches/server/0001-Airplane-MC-Dev-Fixes.patch index 9669f88e..a154fadf 100644 --- a/patches/Airplane/patches/server/0001-Airplane-MC-Dev-Fixes.patch +++ b/patches/Airplane/patches/server/0001-Airplane-MC-Dev-Fixes.patch @@ -56,37 +56,6 @@ index 375409f4b72edc7990da90460b30486fb2980fb6..ab692de8a5b1411e37251fb545e6f579 + return this.world.isClientSide ? null : (SoundEffect) HoglinAI.b(this).orElse(null); // Airplane - decompile error } - @Override -diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index f2f65dc0612cc232009ea7ff12f5c1ba4e6b15ea..d100b39c420e2326e869aa4059fc800d4c2fc0e4 100644 ---- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -@@ -188,7 +188,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { - - @Override - public BehaviorController getBehaviorController() { -- return super.getBehaviorController(); -+ return (BehaviorController) super.getBehaviorController(); // Airplane - compile error - } - - @Override -@@ -247,7 +247,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { - @Override - protected void mobTick() { - this.world.getMethodProfiler().enter("piglinBrain"); -- this.getBehaviorController().a((WorldServer) this.world, (EntityLiving) this); -+ this.getBehaviorController().a((WorldServer) this.world, (EntityPiglin) this); // Airplane - compile error - this.world.getMethodProfiler().exit(); - PiglinAI.b(this); - super.mobTick(); -@@ -386,7 +386,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { - - @Override - protected SoundEffect getSoundAmbient() { -- return this.world.isClientSide ? null : (SoundEffect) PiglinAI.d(this).orElse((Object) null); -+ return this.world.isClientSide ? null : (SoundEffect) PiglinAI.d(this).orElse(null); // Airplane - compile error - } - @Override diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootTableInfo.java b/src/main/java/net/minecraft/world/level/storage/loot/LootTableInfo.java index 95d0c9f22d79194ca83ca6f6a8e6d91180a3c8da..5c712af849abf1e5f58a7760b19c543474559f77 100644 diff --git a/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch b/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch index bc67eb48..043787f5 100644 --- a/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch +++ b/patches/Airplane/patches/server/0002-Airplane-Branding-Changes.patch @@ -57,10 +57,10 @@ index 52c0ab1ce46e1f3233ef746d9bc699356fa9fae4..b480bd3044370b8eb733166f0c4b7373 metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java -index 7063f1da3654b382e26b0093ad5d0ff04a2b38c2..b9c5479e5561f8fe68ea8f94fbf4e64de8a53bf9 100644 +index d50b61876f15d95b836b3dd81d9c3492c91a8448..5460f57f0473868b3fb09c526a1767f717a2740e 100644 --- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java +++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java -@@ -28,8 +28,8 @@ public class PaperVersionFetcher implements VersionFetcher { +@@ -29,8 +29,8 @@ public class PaperVersionFetcher implements VersionFetcher { @Nonnull @Override public Component getVersionMessage(@Nonnull String serverVersion) { @@ -72,10 +72,10 @@ index 7063f1da3654b382e26b0093ad5d0ff04a2b38c2..b9c5479e5561f8fe68ea8f94fbf4e64d return history != null ? TextComponent.ofChildren(updateMessage, Component.newline(), history) : updateMessage; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 72d1c1202581abc284848000663ada5514cfcb15..3fc494965ff56a2195af437093e5f227ab8b5554 100644 +index 264ed751002b3f52294d00d3135503dabc639a13..b2ae9d92dd2c93304a282b08099dfb1acd72ef4f 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 IAsyncTaskHandlerReentrant 300) { diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index d100b39c420e2326e869aa4059fc800d4c2fc0e4..48acef830eb1d919499e9b79dc6a9af4bdf8a17b 100644 +index 9a7bebd77302dbfd07ac802acbe2b9cb80eec26f..4ee979a2771b1c97379a77af34b9e7b6de34d67b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -@@ -244,12 +244,17 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { +@@ -272,12 +272,16 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { return !this.cannotHunt; } @@ -168,16 +168,15 @@ index d100b39c420e2326e869aa4059fc800d4c2fc0e4..48acef830eb1d919499e9b79dc6a9af4 + // Airplane - dynamic tick + if (!gg.airplane.AirplaneConfig.dynamicPiglinBehavior || this.behaviorTick++ % this.activatedPriority == 0) { this.world.getMethodProfiler().enter("piglinBrain"); - this.getBehaviorController().a((WorldServer) this.world, (EntityPiglin) this); // Airplane - compile error + this.getBehaviorController().a((WorldServer) this.world, (EntityPiglin) this); // CraftBukkit - decompile error this.world.getMethodProfiler().exit(); PiglinAI.b(this); -+ } -+ // Airplane end ++ } // Airplane end super.mobTick(); } diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 3f081177814dc874047e35e294ed18609f082d76..d74ba20808d42acd10c3861b5314afd45fddb438 100644 +index 9278b8546a57f21051a65d59c2c01d39afaa68cc..61eaa3e8f961a30e2dc9ae8701ba3b875176e7e0 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -231,11 +231,17 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/Airplane/patches/server/0029-Config-to-disable-method-profiler.patch b/patches/Airplane/patches/server/0029-Config-to-disable-method-profiler.patch index ffe71403..cc9f5a86 100644 --- a/patches/Airplane/patches/server/0029-Config-to-disable-method-profiler.patch +++ b/patches/Airplane/patches/server/0029-Config-to-disable-method-profiler.patch @@ -23,10 +23,10 @@ index c9e00334655ccd273ba108a541ed1cb0633f69b7..65adf3ceda012c8cfdea675c40e2bb27 + } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3fc494965ff56a2195af437093e5f227ab8b5554..06d0592bebaefc16c1995781a9e8a3554f4a3205 100644 +index b2ae9d92dd2c93304a282b08099dfb1acd72ef4f..baa6698a2444edc1e9a264eeb8771df47e956849 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2199,7 +2199,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant iterator = this.world.getChunkProvider().entityTickingChunks.iterator(); -+ // Airplane start - raw iterator -+ //com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator iterator = this.world.getChunkProvider().entityTickingChunks.iterator(); -+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet chunks = this.world.getChunkProvider().entityTickingChunks; -+ int iterator = chunks.createRawIterator(); - try { -- while (iterator.hasNext()) { -- Chunk chunk = iterator.next(); -+ while (iterator != -1) { -+ Chunk chunk = chunks.rawGet(iterator); - Entity[] entities = chunk.entities.getRawData(); - for (int i = 0, len = chunk.entities.size(); i < len; ++i) { - Entity entity = entities[i]; -@@ -2183,10 +2186,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - tracker.trackerEntry.tick(); - } - } -+ -+ iterator = chunks.advanceRawIterator(iterator); - } - } finally { -- iterator.finishedIterating(); -+ chunks.finishRawIterator(); - } -+ // Airplane end - } finally { - this.world.timings.tracker1.stopTiming(); - } diff --git a/patches/Akarin/patches/server/0001-Disable-the-Snooper.patch b/patches/Akarin/patches/server/0001-Disable-the-Snooper.patch index 97beef4d..33a14443 100644 --- a/patches/Akarin/patches/server/0001-Disable-the-Snooper.patch +++ b/patches/Akarin/patches/server/0001-Disable-the-Snooper.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Disable the Snooper diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 61603bda0d1e305679ab2463188c3f6cf9c8c18d..dd2f3d79693710ddb3c1d34dffdc7925260e5de5 100644 +index f9a5b96bf479c177f6a2f2a45258990c297ea3b8..3f33301c3349c1c04b869a001120d03697afae8d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1453,6 +1453,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 100) { // Spigot this.snooper.a(); } -@@ -1460,6 +1462,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant -Date: Fri, 16 Aug 2019 22:18:35 -0400 -Subject: [PATCH] Fix Bukkit.createInventory() with type LECTERN - -This fixes an issue with Bukkit which makes it possible to open a Lectern interface, but not be able to interact with it (e.g.: change pages). The following changes had to be made: - -nms.TileEntityLectern: -- Add `virtual` flag, this is used to stop calls that would attempt to update a block which we do not have, as well as used in the following change. - -nms.TileEntityLectern$LecternInventory -- in `a(EntityHuman)`, add `(TileEntityLectern.this.virtual && TileEntityLectern.this.hasBook()) ||` to short-circuit the "can use" logic -- Add `getLectern()` method for use in the following change. - -obc.e.CraftHumanEntity#openInventory(Inventory): -- Check if the wrapped inventory is a TileEntityLectern.LecternInventory, and get the Lectern from that - -obc.i.u.CraftTileInventoryConverter$Lectern: -- Mark the created lectern as "virtual" -- Override `getInventory(IInventory)` to return a CraftInventoryLectern. - -This patch is licensed under the MIT License. -License: https://opensource.org/licenses/MIT - -diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityLectern.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityLectern.java -index 89618f652b5eea4a380b0f00a5e4f8007495a0ef..94562f7b0f5cde9f8b4a163cc2b8cf7ab6c5d897 100644 ---- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityLectern.java -+++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityLectern.java -@@ -44,6 +44,11 @@ public class TileEntityLectern extends TileEntity implements Clearable, ITileInv - // CraftBukkit start - add fields and methods - public final IInventory inventory = new LecternInventory(); - public class LecternInventory implements IInventory { -+ // EMC start -+ public TileEntityLectern getLectern() { -+ return TileEntityLectern.this; -+ } -+ // EMC end - - public List transaction = new ArrayList<>(); - private int maxStack = 1; -@@ -101,7 +106,7 @@ public class TileEntityLectern extends TileEntity implements Clearable, ITileInv - - @Override - public ItemStack splitStack(int i, int j) { -- if (i == 0) { -+ if (i == 0 && !TileEntityLectern.this.virtual) { // EMC - ItemStack itemstack = TileEntityLectern.this.book.cloneAndSubtract(j); - - if (TileEntityLectern.this.book.isEmpty()) { -@@ -116,7 +121,7 @@ public class TileEntityLectern extends TileEntity implements Clearable, ITileInv - - @Override - public ItemStack splitWithoutUpdate(int i) { -- if (i == 0) { -+ if (i == 0 && !TileEntityLectern.this.virtual) { // EMC - ItemStack itemstack = TileEntityLectern.this.book; - - TileEntityLectern.this.book = ItemStack.b; -@@ -151,7 +156,7 @@ public class TileEntityLectern extends TileEntity implements Clearable, ITileInv - - @Override - public boolean a(EntityHuman entityhuman) { -- return TileEntityLectern.this.world.getTileEntity(TileEntityLectern.this.position) != TileEntityLectern.this ? false : (entityhuman.h((double) TileEntityLectern.this.position.getX() + 0.5D, (double) TileEntityLectern.this.position.getY() + 0.5D, (double) TileEntityLectern.this.position.getZ() + 0.5D) > 64.0D ? false : TileEntityLectern.this.hasBook()); -+ return (TileEntityLectern.this.virtual && TileEntityLectern.this.hasBook()) || TileEntityLectern.this.world.getTileEntity(TileEntityLectern.this.position) != TileEntityLectern.this ? false : (entityhuman.h((double) TileEntityLectern.this.position.getX() + 0.5D, (double) TileEntityLectern.this.position.getY() + 0.5D, (double) TileEntityLectern.this.position.getZ() + 0.5D) > 64.0D ? false : TileEntityLectern.this.hasBook()); // EMC - } - - @Override -@@ -184,6 +189,7 @@ public class TileEntityLectern extends TileEntity implements Clearable, ITileInv - private ItemStack book; - private int page; - private int maxPage; -+ public boolean virtual = false; // EMC - - public TileEntityLectern() { - super(TileEntityTypes.LECTERN); -@@ -205,6 +211,7 @@ public class TileEntityLectern extends TileEntity implements Clearable, ITileInv - } - - private void k() { -+ if (this.virtual) return; // EMC - this.page = 0; - this.maxPage = 0; - BlockLectern.setHasBook(this.getWorld(), this.getPosition(), this.getBlock(), false); -@@ -222,6 +229,7 @@ public class TileEntityLectern extends TileEntity implements Clearable, ITileInv - - if (j != this.page) { - this.page = j; -+ if (this.virtual) return; // EMC - this.update(); - if (this.world != null) BlockLectern.a(this.getWorld(), this.getPosition(), this.getBlock()); // CraftBukkit - } -diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -index f2b2db663198037ba4b7942815bfcd5ddd0e2a8d..6d23ac5b8094330c20d8733795fcb3a699c50183 100644 ---- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java -@@ -31,6 +31,7 @@ import net.minecraft.world.level.block.BlockWorkbench; - import net.minecraft.world.level.block.Blocks; - import net.minecraft.world.level.block.entity.TileEntity; - import net.minecraft.world.level.block.entity.TileEntityContainer; -+import net.minecraft.world.level.block.entity.TileEntityLectern; // EMC - import net.minecraft.world.level.block.entity.TileEntitySign; - import net.minecraft.world.level.block.state.IBlockData; - import org.bukkit.GameMode; -@@ -308,6 +309,11 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { - if (craft.getInventory() instanceof ITileInventory) { - iinventory = (ITileInventory) craft.getInventory(); - } -+ // EMC start -+ if (craft.getInventory() instanceof TileEntityLectern.LecternInventory) { -+ iinventory = ((TileEntityLectern.LecternInventory)craft.getInventory()).getLectern(); -+ } -+ // EMC end - } - - if (iinventory instanceof ITileInventory) { -diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java b/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java -index 2bd4e644ffbde2e1133b25824a2829bc6b33fa84..06cd47ea0ab93ba9ef92e32a34118102070b582a 100644 ---- a/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java -+++ b/src/main/java/org/bukkit/craftbukkit/inventory/util/CraftTileInventoryConverter.java -@@ -159,8 +159,19 @@ public abstract class CraftTileInventoryConverter implements CraftInventoryCreat - - @Override - public IInventory getTileEntity() { -- return new TileEntityLectern().inventory; -+ // EMC start -+ TileEntityLectern lectern = new TileEntityLectern(); -+ lectern.virtual = true; -+ return lectern.inventory; -+ // EMC end - } -+ -+ // EMC start -+ @Override -+ public Inventory getInventory(IInventory tileEntity) { -+ return new org.bukkit.craftbukkit.inventory.CraftInventoryLectern(tileEntity); -+ } -+ // EMC end - } - - public static class Smoker extends CraftTileInventoryConverter { diff --git a/patches/Empirecraft/patches/server/0003-dont-load-chunks-for-physics.patch b/patches/Empirecraft/patches/server/0002-dont-load-chunks-for-physics.patch similarity index 100% rename from patches/Empirecraft/patches/server/0003-dont-load-chunks-for-physics.patch rename to patches/Empirecraft/patches/server/0002-dont-load-chunks-for-physics.patch diff --git a/patches/Origami/patches/server/0006-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch b/patches/Origami/patches/server/0006-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch index b3b59ae2..f5f968ad 100644 --- a/patches/Origami/patches/server/0006-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch +++ b/patches/Origami/patches/server/0006-Don-t-wake-up-entities-when-damage-event-is-cancelle.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Don't wake up entities when damage event is cancelled diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 9e0c00bf0c1fb41d09de39d2a3831b6bc6658259..02c7110759d6104afb673fe56f4fdbac137644d3 100644 +index 2f7352d7ae99ecdefe0f7b56cebf008906607d4d..330ff6ff03c6be4d35d4f594e3202209ff584341 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java -@@ -1226,9 +1226,12 @@ public abstract class EntityLiving extends Entity { +@@ -1235,9 +1235,12 @@ public abstract class EntityLiving extends Entity { } else if (damagesource.isFire() && this.hasEffect(MobEffects.FIRE_RESISTANCE)) { return false; } else { @@ -24,7 +24,7 @@ index 9e0c00bf0c1fb41d09de39d2a3831b6bc6658259..02c7110759d6104afb673fe56f4fdbac this.ticksFarFromPlayer = 0; float f1 = f; -@@ -1994,6 +1997,11 @@ public abstract class EntityLiving extends Entity { +@@ -2006,6 +2009,11 @@ public abstract class EntityLiving extends Entity { if (event.isCancelled()) { return false; } diff --git a/patches/Purpur/patches/api/0006-AFK-API.patch b/patches/Purpur/patches/api/0006-AFK-API.patch index 8e684afc..bc175666 100644 --- a/patches/Purpur/patches/api/0006-AFK-API.patch +++ b/patches/Purpur/patches/api/0006-AFK-API.patch @@ -81,10 +81,10 @@ index 0000000000000000000000000000000000000000..0c8b3e5e4ba412624357ea5662a78862 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 4a4f041c6acfd335871fa67d6d1c7f723229c8a7..2ab8d8f3439ee2571df5df385f8874909605ff5c 100644 +index 27848ad0eee667e515685a5f1cef3e9bfc7a3f53..09729abc27b6cb3458e19af24137bbbc6e5cb63e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2131,4 +2131,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2139,4 +2139,25 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/Purpur/patches/api/0015-Player-invulnerabilities.patch b/patches/Purpur/patches/api/0015-Player-invulnerabilities.patch index 399d2c43..d7c53b52 100644 --- a/patches/Purpur/patches/api/0015-Player-invulnerabilities.patch +++ b/patches/Purpur/patches/api/0015-Player-invulnerabilities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 2ab8d8f3439ee2571df5df385f8874909605ff5c..24408c9bac75182d3cb6146aa25c51a45b53a3af 100644 +index 09729abc27b6cb3458e19af24137bbbc6e5cb63e..d6b6508fd7ab245f657be262c54ae6dfa20415e7 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2151,5 +2151,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2159,5 +2159,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the idle timer back to 0 */ void resetIdleTimer(); diff --git a/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch b/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch index 52031d69..ea3e6af1 100644 --- a/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch +++ b/patches/Purpur/patches/api/0031-Fix-javadoc-warnings-missing-param-and-return.patch @@ -419,6 +419,37 @@ index 5bb677ce585b856b3d3e589e29786a29619c56a7..613f00fa387dcc5af3191e550dea9d4d public class CachedSizeConcurrentLinkedQueue extends ConcurrentLinkedQueue { private final LongAdder cachedSize = new LongAdder(); +diff --git a/src/main/java/io/papermc/paper/event/player/AsyncChatEvent.java b/src/main/java/io/papermc/paper/event/player/AsyncChatEvent.java +index d85006591808b61518545c9f5b0b5915c19e0a9d..363dc1e3157fb94671e07fbdc0f0f7357e308589 100644 +--- a/src/main/java/io/papermc/paper/event/player/AsyncChatEvent.java ++++ b/src/main/java/io/papermc/paper/event/player/AsyncChatEvent.java +@@ -37,6 +37,11 @@ public final class AsyncChatEvent extends AbstractChatEvent { + } + + /** ++ * @param async Async ++ * @param player Player ++ * @param recipients Recipients ++ * @param formatter Formatter ++ * @param message Message + * @deprecated for removal with 1.17, use {@link #AsyncChatEvent(boolean, Player, Set, ChatRenderer, Component)} + */ + @Deprecated +diff --git a/src/main/java/io/papermc/paper/event/player/ChatEvent.java b/src/main/java/io/papermc/paper/event/player/ChatEvent.java +index 6219aabaf40ab89f8e08c256d1255bf5522db4d3..b94e9ff470203f46b27f461db6ca741a933e3411 100644 +--- a/src/main/java/io/papermc/paper/event/player/ChatEvent.java ++++ b/src/main/java/io/papermc/paper/event/player/ChatEvent.java +@@ -41,6 +41,10 @@ public final class ChatEvent extends AbstractChatEvent { + } + + /** ++ * @param player Player ++ * @param recipients Recipients ++ * @param formatter Formatter ++ * @param message Message + * @deprecated for removal with 1.17, use {@link #ChatEvent(Player, Set, ChatRenderer, Component)} + */ + @Deprecated diff --git a/src/main/java/io/papermc/paper/inventory/ItemRarity.java b/src/main/java/io/papermc/paper/inventory/ItemRarity.java index 74ef8395cc040ce488c2acaa416db20272cc2734..b974627a415cd6897b245275e953cc907a5929d8 100644 --- a/src/main/java/io/papermc/paper/inventory/ItemRarity.java @@ -644,7 +675,7 @@ index 08e6f1741685f54506c8a4ff29bbd30f62cf8e45..8efd2669bd5e3dfa47ff8fcb85833321 */ public static long getBlockKey(int x, int y, int z) { diff --git a/src/main/java/org/bukkit/block/Lidded.java b/src/main/java/org/bukkit/block/Lidded.java -index 9da2566e02e63be1a0188deaa27b841fa61688ea..882980b3ada3d6048019a90159fa37639b773d5e 100644 +index 30c7df0021df44a411e50636d906d4a1d30fd927..73930312accf6d8c5d71777caa8190a15c2f036d 100644 --- a/src/main/java/org/bukkit/block/Lidded.java +++ b/src/main/java/org/bukkit/block/Lidded.java @@ -1,5 +1,8 @@ @@ -963,10 +994,10 @@ index a6a7429ed2e1eefb2b12b7480ed74fcc3963a864..e8027e1d505dda6effbb1698550016e8 NORMAL(false), diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 24408c9bac75182d3cb6146aa25c51a45b53a3af..24059b686cca36f594b2efb18666c646f391cea7 100644 +index d6b6508fd7ab245f657be262c54ae6dfa20415e7..25252bad38ca35b81b225b57c4b6ce77ad6de166 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1953,6 +1953,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1961,6 +1961,8 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void resetCooldown(); /** @@ -975,7 +1006,7 @@ index 24408c9bac75182d3cb6146aa25c51a45b53a3af..24059b686cca36f594b2efb18666c646 * @return the client option value of the player */ @NotNull -@@ -1992,6 +1994,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2000,6 +2002,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end // Spigot start diff --git a/patches/Purpur/patches/api/0033-Full-netherite-armor-grants-fire-resistance.patch b/patches/Purpur/patches/api/0032-Full-netherite-armor-grants-fire-resistance.patch similarity index 100% rename from patches/Purpur/patches/api/0033-Full-netherite-armor-grants-fire-resistance.patch rename to patches/Purpur/patches/api/0032-Full-netherite-armor-grants-fire-resistance.patch diff --git a/patches/Purpur/patches/api/0032-PlayerBookTooLargeEvent.patch b/patches/Purpur/patches/api/0032-PlayerBookTooLargeEvent.patch deleted file mode 100644 index dc89fde7..00000000 --- a/patches/Purpur/patches/api/0032-PlayerBookTooLargeEvent.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: BillyGalbreath -Date: Wed, 23 Dec 2020 00:43:27 -0600 -Subject: [PATCH] PlayerBookTooLargeEvent - - -diff --git a/src/main/java/net/pl3x/purpur/event/player/PlayerBookTooLargeEvent.java b/src/main/java/net/pl3x/purpur/event/player/PlayerBookTooLargeEvent.java -new file mode 100644 -index 0000000000000000000000000000000000000000..39378ee2bfadf42ff358cc7b42dd75ac61615e15 ---- /dev/null -+++ b/src/main/java/net/pl3x/purpur/event/player/PlayerBookTooLargeEvent.java -@@ -0,0 +1,65 @@ -+package net.pl3x.purpur.event.player; -+ -+import org.bukkit.Bukkit; -+import org.bukkit.entity.Player; -+import org.bukkit.event.HandlerList; -+import org.bukkit.event.player.PlayerEvent; -+import org.bukkit.inventory.ItemStack; -+import org.jetbrains.annotations.NotNull; -+ -+/** -+ * Called when a player tries to bypass book limitations -+ */ -+public class PlayerBookTooLargeEvent extends PlayerEvent { -+ private static final HandlerList handlers = new HandlerList(); -+ private final ItemStack book; -+ private boolean kickPlayer = true; -+ -+ /** -+ * @param player The player -+ * @param book The book -+ */ -+ public PlayerBookTooLargeEvent(@NotNull Player player, @NotNull ItemStack book) { -+ super(player, !Bukkit.isPrimaryThread()); -+ this.book = book; -+ } -+ -+ /** -+ * Get the book containing the wanted edits -+ * -+ * @return The book -+ */ -+ @NotNull -+ public ItemStack getBook() { -+ return book; -+ } -+ -+ /** -+ * Whether server should kick the player or not -+ * -+ * @return True to kick player -+ */ -+ public boolean shouldKickPlayer() { -+ return kickPlayer; -+ } -+ -+ /** -+ * Whether server should kick the player or not -+ * -+ * @param kickPlayer True to kick player -+ */ -+ public void setShouldKickPlayer(boolean kickPlayer) { -+ this.kickPlayer = kickPlayer; -+ } -+ -+ @Override -+ @NotNull -+ public HandlerList getHandlers() { -+ return handlers; -+ } -+ -+ @NotNull -+ public static HandlerList getHandlerList() { -+ return handlers; -+ } -+} diff --git a/patches/Purpur/patches/api/0034-Add-EntityTeleportHinderedEvent.patch b/patches/Purpur/patches/api/0033-Add-EntityTeleportHinderedEvent.patch similarity index 100% rename from patches/Purpur/patches/api/0034-Add-EntityTeleportHinderedEvent.patch rename to patches/Purpur/patches/api/0033-Add-EntityTeleportHinderedEvent.patch diff --git a/patches/Purpur/patches/api/0035-Add-StructureGenerateEvent.patch b/patches/Purpur/patches/api/0034-Add-StructureGenerateEvent.patch similarity index 100% rename from patches/Purpur/patches/api/0035-Add-StructureGenerateEvent.patch rename to patches/Purpur/patches/api/0034-Add-StructureGenerateEvent.patch diff --git a/patches/Purpur/patches/api/0036-Add-unsafe-Entity-serialization-API.patch b/patches/Purpur/patches/api/0035-Add-unsafe-Entity-serialization-API.patch similarity index 100% rename from patches/Purpur/patches/api/0036-Add-unsafe-Entity-serialization-API.patch rename to patches/Purpur/patches/api/0035-Add-unsafe-Entity-serialization-API.patch diff --git a/patches/Purpur/patches/api/0037-Conflict-on-change-for-adventure-deprecations.patch b/patches/Purpur/patches/api/0036-Conflict-on-change-for-adventure-deprecations.patch similarity index 98% rename from patches/Purpur/patches/api/0037-Conflict-on-change-for-adventure-deprecations.patch rename to patches/Purpur/patches/api/0036-Conflict-on-change-for-adventure-deprecations.patch index 934a5e1c..ec9f4689 100644 --- a/patches/Purpur/patches/api/0037-Conflict-on-change-for-adventure-deprecations.patch +++ b/patches/Purpur/patches/api/0036-Conflict-on-change-for-adventure-deprecations.patch @@ -170,7 +170,7 @@ index 6ea9b54d95d80070c01a612c0ce2ab37f0b4ad41..fe9ec9cb7875df4a40d1c4155e13cca9 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 24059b686cca36f594b2efb18666c646f391cea7..cf1c631b80b5573a2a8b57e774f4faf57f98235b 100644 +index 25252bad38ca35b81b225b57c4b6ce77ad6de166..9f289576d97c3406d506d3f4fa7287bc74e5b425 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -72,7 +72,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @@ -263,7 +263,7 @@ index 24059b686cca36f594b2efb18666c646f391cea7..cf1c631b80b5573a2a8b57e774f4faf5 public void kickPlayer(@Nullable String message); // Paper start -@@ -590,7 +590,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -598,7 +598,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if lines is non-null and has a length less than 4 * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List)} */ @@ -272,7 +272,7 @@ index 24059b686cca36f594b2efb18666c646f391cea7..cf1c631b80b5573a2a8b57e774f4faf5 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines) throws IllegalArgumentException; -@@ -612,7 +612,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -620,7 +620,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @throws IllegalArgumentException if lines is non-null and has a length less than 4 * @deprecated in favour of {@link #sendSignChange(org.bukkit.Location, java.util.List, org.bukkit.DyeColor)} */ @@ -281,7 +281,7 @@ index 24059b686cca36f594b2efb18666c646f391cea7..cf1c631b80b5573a2a8b57e774f4faf5 public void sendSignChange(@NotNull Location loc, @Nullable String[] lines, @NotNull DyeColor dyeColor) throws IllegalArgumentException; /** -@@ -1761,7 +1761,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1769,7 +1769,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @deprecated in favour of {@link #locale()} */ @NotNull @@ -432,10 +432,10 @@ index 851a189d42e271679abc78f95049d8badf7a2b64..7057c2e95267ad32190c5666f20a0566 this.joinMessage = joinMessage != null ? org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(joinMessage) : null; // Paper } diff --git a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java -index 5c0efe74237dbe6803ce023fde99682ff70d1a92..253e15eb42cab4f578aa89af1e298177779e5cdc 100644 +index 02914c0743852e9e4fd2c085fd4b735e74d8875b..94688093671949551992a8c80904cd6042deb83b 100644 --- a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java +++ b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java -@@ -73,7 +73,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { +@@ -85,7 +85,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { * @deprecated in favour of {@link #reason()} */ @NotNull @@ -444,7 +444,7 @@ index 5c0efe74237dbe6803ce023fde99682ff70d1a92..253e15eb42cab4f578aa89af1e298177 public String getReason() { return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.kickReason); // Paper } -@@ -85,7 +85,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { +@@ -97,7 +97,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { * @deprecated in favour of {@link #leaveMessage()} */ @NotNull @@ -453,7 +453,7 @@ index 5c0efe74237dbe6803ce023fde99682ff70d1a92..253e15eb42cab4f578aa89af1e298177 public String getLeaveMessage() { return org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().serialize(this.leaveMessage); // Paper } -@@ -106,7 +106,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { +@@ -118,7 +118,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { * @param kickReason kick reason * @deprecated in favour of {@link #reason(net.kyori.adventure.text.Component)} */ @@ -462,7 +462,7 @@ index 5c0efe74237dbe6803ce023fde99682ff70d1a92..253e15eb42cab4f578aa89af1e298177 public void setReason(@NotNull String kickReason) { this.kickReason = org.bukkit.Bukkit.getUnsafe().legacyComponentSerializer().deserialize(kickReason); // Paper } -@@ -117,7 +117,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { +@@ -129,7 +129,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable { * @param leaveMessage leave message * @deprecated in favour of {@link #leaveMessage(net.kyori.adventure.text.Component)} */ diff --git a/patches/Purpur/patches/api/0038-Add-enchantment-target-for-bows-and-crossbows.patch b/patches/Purpur/patches/api/0037-Add-enchantment-target-for-bows-and-crossbows.patch similarity index 100% rename from patches/Purpur/patches/api/0038-Add-enchantment-target-for-bows-and-crossbows.patch rename to patches/Purpur/patches/api/0037-Add-enchantment-target-for-bows-and-crossbows.patch diff --git a/patches/Purpur/patches/api/0039-Iron-golem-poppy-calms-anger.patch b/patches/Purpur/patches/api/0038-Iron-golem-poppy-calms-anger.patch similarity index 100% rename from patches/Purpur/patches/api/0039-Iron-golem-poppy-calms-anger.patch rename to patches/Purpur/patches/api/0038-Iron-golem-poppy-calms-anger.patch diff --git a/patches/Purpur/patches/api/0039-API-for-any-mob-to-burn-daylight.patch b/patches/Purpur/patches/api/0039-API-for-any-mob-to-burn-daylight.patch new file mode 100644 index 00000000..c0169ff1 --- /dev/null +++ b/patches/Purpur/patches/api/0039-API-for-any-mob-to-burn-daylight.patch @@ -0,0 +1,48 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Kerllenevich +Date: Tue, 25 May 2021 16:30:30 -0400 +Subject: [PATCH] API for any mob to burn daylight + +Co-authored by: Encode42 + +diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java +index 7fa5242bd44c9b19648d79fa8fecbb7ee125288e..62d8d7dbd4d602ca8cb00ff0cf1331583b398323 100644 +--- a/src/main/java/org/bukkit/entity/Entity.java ++++ b/src/main/java/org/bukkit/entity/Entity.java +@@ -770,5 +770,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent + * @return Whether the entity was successfully spawned. + */ + boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason); ++ ++ /** ++ * Checks if the entity is in daylight ++ * ++ * @return True if in daylight ++ */ ++ boolean isInDaylight(); + // Purpur end + } +diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java +index 42811d18ff304082f74f45794344891208599c04..ebe10b5612835d22dfcf8b30b0f028022e47216e 100644 +--- a/src/main/java/org/bukkit/entity/LivingEntity.java ++++ b/src/main/java/org/bukkit/entity/LivingEntity.java +@@ -872,5 +872,19 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + * @param slot Equipment slot to play break animation for + */ + void broadcastItemBreak(@NotNull org.bukkit.inventory.EquipmentSlot slot); ++ ++ /** ++ * If this mob will burn in the sunlight ++ * ++ * @return True if mob will burn in sunlight ++ */ ++ boolean shouldBurnInDay(); ++ ++ /** ++ * Set if this mob should burn in the sunlight ++ * ++ * @param shouldBurnInDay True to burn in sunlight ++ */ ++ void setShouldBurnInDay(boolean shouldBurnInDay); + // Purpur end + } diff --git a/patches/Purpur/patches/server/0001-Rebrand.patch b/patches/Purpur/patches/server/0001-Rebrand.patch index 54f7e80a..9de6bbcb 100644 --- a/patches/Purpur/patches/server/0001-Rebrand.patch +++ b/patches/Purpur/patches/server/0001-Rebrand.patch @@ -92,10 +92,10 @@ index 3bc5cd1e53dd7c94b948e7f57f0dc8e073e349b0..87891161f5b06bb8be0e2016b490484e throwable = throwable1; throw throwable1; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 06d0592bebaefc16c1995781a9e8a3554f4a3205..e26b1d7b6ffc726c8ae8b469eab9df73c033a73f 100644 +index baa6698a2444edc1e9a264eeb8771df47e956849..53eca53bfcb1ea66d8cc2ecad34466f932a23866 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 IAsyncTaskHandlerReentrant(); + commands.put("purpur", new PurpurCommand("purpur")); + -+ version = getInt("config-version", 12); -+ set("config-version", 12); ++ version = getInt("config-version", 13); ++ set("config-version", 13); + + readConfig(PurpurConfig.class, null); + } diff --git a/patches/Purpur/patches/server/0003-Timings-stuff.patch b/patches/Purpur/patches/server/0003-Timings-stuff.patch index 96525f57..7919aa80 100644 --- a/patches/Purpur/patches/server/0003-Timings-stuff.patch +++ b/patches/Purpur/patches/server/0003-Timings-stuff.patch @@ -57,7 +57,7 @@ index 35810f42d7a0cd50a4cbe90e8d698fe57914c889..5e672a0660d0aceffcdb26d185590ca1 String hostName = "BrokenHost"; try { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 2207d5ec00c0f6e4d332c0bbecbc224b24855927..172545163646fb5cc28733af0e51b195c16898d6 100644 +index 74fc4fc2216cf82e1546ef3d567f2750b1240df1..108be36fc37c04eece6ccb93d19e58a31326ceb0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -127,4 +127,10 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch b/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch index 84973036..aceec8b1 100644 --- a/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch +++ b/patches/Purpur/patches/server/0004-Barrels-and-enderchests-6-rows.patch @@ -123,7 +123,7 @@ index 7a6f150490bc3ef8a5ed43c401fd70bcc67f40f0..449d2c38abdd35b782a6732006eebb38 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 172545163646fb5cc28733af0e51b195c16898d6..5046628340f0f48587a790f7819fa368a849d979 100644 +index 108be36fc37c04eece6ccb93d19e58a31326ceb0..2f329bae9f09d0ed21a4538fba6b95919ec35887 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -7,6 +7,7 @@ import org.bukkit.Bukkit; diff --git a/patches/Purpur/patches/server/0007-AFK-API.patch b/patches/Purpur/patches/server/0007-AFK-API.patch index 2909b397..65bce6ed 100644 --- a/patches/Purpur/patches/server/0007-AFK-API.patch +++ b/patches/Purpur/patches/server/0007-AFK-API.patch @@ -86,7 +86,7 @@ index b11af463045bbd3bab8d269fde34071ca5f026af..6433ce5a5b951334efb3d8d7199f784f } else if (entityplayer.isSleeping()) { ++j; diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 64fe0acfccd50465c5fe8c49346a6db2b830155e..8c9a6130fae64509c6e4a79e785bac5f60ba1cd1 100644 +index 8513795943497ca80232e7d47066a6944c2f45ec..de72ebb94052efe8c63bf28f6741a4645b3ee721 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -399,6 +399,12 @@ public class PlayerConnection implements PacketListenerPlayIn { @@ -100,9 +100,9 @@ index 64fe0acfccd50465c5fe8c49346a6db2b830155e..8c9a6130fae64509c6e4a79e785bac5f + } + // Purpur end this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854 - this.disconnect(new ChatMessage("multiplayer.disconnect.idling")); + this.disconnect(new ChatMessage("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } -@@ -674,6 +680,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -682,6 +688,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -111,7 +111,7 @@ index 64fe0acfccd50465c5fe8c49346a6db2b830155e..8c9a6130fae64509c6e4a79e785bac5f // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1421,7 +1429,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1429,7 +1437,7 @@ public class PlayerConnection implements PacketListenerPlayIn { if (!this.player.H() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative() && this.player.playerInteractManager.getGameMode() != EnumGamemode.SPECTATOR) { // Spigot flag1 = true; // Tuinity - diff on change, this should be moved wrongly @@ -120,7 +120,7 @@ index 64fe0acfccd50465c5fe8c49346a6db2b830155e..8c9a6130fae64509c6e4a79e785bac5f } this.player.setLocation(d4, d5, d6, f, f1); -@@ -1471,6 +1479,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1479,6 +1487,8 @@ public class PlayerConnection implements PacketListenerPlayIn { this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -215,7 +215,7 @@ index a7f2304acf8ee0a15d6eae8c42060e003be13ae7..fd56b2f15e570f266a79c25823a3b353 @Nullable diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5046628340f0f48587a790f7819fa368a849d979..215d691de61c514bb75077d25428c2c2f56df0b5 100644 +index 2f329bae9f09d0ed21a4538fba6b95919ec35887..95b55fb93049c6686e13aab78ba1ae2b2fd5785b 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,6 +1,7 @@ @@ -263,10 +263,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 f82fb89e30e30681b2052d1c6a2f24428d6fbfc7..05bd48bb026a71dd420b4d73c58da781828d58e4 100644 +index ed1bb89ae7b85bf4017315d6189d6cbf595aefe5..f3fb405c92a35796baa30cafcd96df2d8bf162e6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2494,4 +2494,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2499,4 +2499,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return spigot; } // Spigot end diff --git a/patches/Purpur/patches/server/0009-Configurable-server-mod-name.patch b/patches/Purpur/patches/server/0009-Configurable-server-mod-name.patch index f51086d3..f2b2a5f6 100644 --- a/patches/Purpur/patches/server/0009-Configurable-server-mod-name.patch +++ b/patches/Purpur/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 e26b1d7b6ffc726c8ae8b469eab9df73c033a73f..87d121dcbb8fcf3545f6c80ce3e219358800d6b9 100644 +index 53eca53bfcb1ea66d8cc2ecad34466f932a23866..3d42dbf9008f63cdd1458366fd87c7994cf722ca 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 IAsyncTaskHandlerReentrant= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info -@@ -3085,6 +3101,16 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -3093,6 +3109,16 @@ public class PlayerConnection implements PacketListenerPlayIn { @Override public void a(PacketPlayInKeepAlive packetplayinkeepalive) { @@ -68,7 +68,7 @@ index 234f87a64684473d9458d0eceefab0b98ab7785e..017c3cd5edfd78917445f7313a4d9455 if (this.awaitingKeepAlive && packetplayinkeepalive.b() == this.h) { int i = (int) (SystemUtils.getMonotonicMillis() - this.lastKeepAlive); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 60ef024891e78e18c64435b7ee8118075ce5fb90..6e855980d32717119f30f39f4b47d86f8039ecc9 100644 +index 089ae62c2189fe774796ecc6caf9961d3edb5ea3..afd0c577069f2a856caf41bd2dd5187db4866fa3 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -155,6 +155,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch b/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch index 6f9d0532..2819f1b7 100644 --- a/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch +++ b/patches/Purpur/patches/server/0022-Logger-settings-suppressing-pointless-logs.patch @@ -17,7 +17,7 @@ index dfdbc028f68ced197ad179248ed3b1e9d70ba057..a1ee1066108985a95abddb03ff447b5a } // CraftBukkit end diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 6e855980d32717119f30f39f4b47d86f8039ecc9..c5da5c0a6f68d4844ad8f59ad603611c909f8dfd 100644 +index afd0c577069f2a856caf41bd2dd5187db4866fa3..c7755cea5e8337af7acc96c6a34afa547b391035 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -178,4 +178,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch b/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch index b749252e..eb38bcac 100644 --- a/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch +++ b/patches/Purpur/patches/server/0031-Dont-send-useless-entity-packets.patch @@ -61,7 +61,7 @@ index 6aad662d823e0a64b8e18156b5f084399bc4f228..71df7a322bcb1f8050bf37a0c1a8dc1d this.tracker.c(entityplayer); entityplayer.c(this.tracker); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index c5da5c0a6f68d4844ad8f59ad603611c909f8dfd..892f72c89af1b550305e2771f1ff5f470941faf8 100644 +index c7755cea5e8337af7acc96c6a34afa547b391035..6d5c2f469e4a7a13a69ac3f7a1dadeac6aabb531 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -179,6 +179,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch b/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch index 79e151a6..3ad113e3 100644 --- a/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch +++ b/patches/Purpur/patches/server/0044-Signs-allow-color-codes.patch @@ -17,10 +17,10 @@ index e65a3e3e7bf6a366c30b44e166e2085966ebc933..a8d60d288afd9b413494fe6abe8cfddb this.playerConnection.sendPacket(new PacketPlayOutOpenSignEditor(tileentitysign.getPosition())); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 017c3cd5edfd78917445f7313a4d9455c3bde9a1..4041e5d0964ec6844b156c9097cd70ec59002854 100644 +index 8856ee8e0e7a3efda7921c0c8df9a2eb4213b1ce..e8a9c8a7fc4089e48e09afc1638cf1ccde7b0fab 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -3079,6 +3079,15 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -3087,6 +3087,15 @@ public class PlayerConnection implements PacketListenerPlayIn { } } // Paper end diff --git a/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch b/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch index c0231604..f4652197 100644 --- a/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch +++ b/patches/Purpur/patches/server/0053-Add-permission-for-F3-N-debug.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d640150c803bc30a353ad34215cbb413632ada86..fc47887dfd3d32788fa11845c738af53126fba46 100644 +index 5897e4e02dad470174a31d3710520d04d4b87fb4..80f6a4e7204bceca3f312fe5c8d572f971a7fa4b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -1174,6 +1174,7 @@ public abstract class PlayerList { diff --git a/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch b/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch index 9a10b29e..b6d26dce 100644 --- a/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch +++ b/patches/Purpur/patches/server/0055-Configurable-TPS-Catchup.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Configurable TPS Catchup diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8a11047d0e60d20c83f2013b5e1488fe08152142..ac21ebf5d835fb34dbaad5f3c40cc5aeb6153231 100644 +index 4a5290a4d9bf8cf0ad48af135231cbef2d8d36f8..0ab2e490f0f568e5b03d538423d8d7b325ce30a8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1135,7 +1135,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant trackedPlayerMap = null; diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 38919488ce5917a751605c4ddcf0296ff0340b91..3c5e4abd104aa016e5cb8e248c4d6a5eff08a42e 100644 +index 4df1be8091af0ed9d3403f217b481645e24020e8..e94d9c784bde37f65c2fd081eacbd41b061cd1aa 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -@@ -2440,7 +2440,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2431,7 +2431,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially public class EntityTracker { @@ -43,7 +43,7 @@ index db43aba6a3455abfd12b8167fefbd5cb8fc14524..f4bef3dda1c33380401750bf1179827c return this.O == tag; } diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..92cd61cd6b085a03c502223f3861540d8c9f27e1 100644 +index 077990f1d95ded2c8b89c38978ec25a56df3a984..be46b8fcbfed932ba96a34c94eee0b237c783bd4 100644 --- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java +++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java @@ -50,6 +50,12 @@ public class EntityItem extends Entity { @@ -59,7 +59,7 @@ index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..92cd61cd6b085a03c502223f3861540d public EntityItem(EntityTypes entitytypes, World world) { super(entitytypes, world); -@@ -301,6 +307,16 @@ public class EntityItem extends Entity { +@@ -309,6 +315,16 @@ public class EntityItem extends Entity { return false; } else if (!this.getItemStack().getItem().a(damagesource)) { return false; @@ -76,7 +76,7 @@ index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..92cd61cd6b085a03c502223f3861540d } else { // CraftBukkit start if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, damagesource, f)) { -@@ -481,6 +497,12 @@ public class EntityItem extends Entity { +@@ -489,6 +505,12 @@ public class EntityItem extends Entity { com.google.common.base.Preconditions.checkArgument(!itemstack.isEmpty(), "Cannot drop air"); // CraftBukkit this.getDataWatcher().set(EntityItem.ITEM, itemstack); this.getDataWatcher().markDirty(EntityItem.ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty @@ -89,7 +89,7 @@ index 5dc3670f35b04d933e96c4b42aa9fbcf941e69c7..92cd61cd6b085a03c502223f3861540d } @Override -@@ -562,4 +584,15 @@ public class EntityItem extends Entity { +@@ -570,4 +592,15 @@ public class EntityItem extends Entity { super.setPositionRaw(x, y, z); } // Paper end - fix MC-4 diff --git a/patches/Purpur/patches/server/0075-Add-ping-command.patch b/patches/Purpur/patches/server/0075-Add-ping-command.patch index 164313a9..41c2e37e 100644 --- a/patches/Purpur/patches/server/0075-Add-ping-command.patch +++ b/patches/Purpur/patches/server/0075-Add-ping-command.patch @@ -67,7 +67,7 @@ index bbad2b1399d9d2e16bfa77563bd564f7c6f640d7..a85c4525335fa46bc23a6dd57cfaea1f List list = ((EntitySelector) commandcontext.getArgument(s, EntitySelector.class)).d((CommandListenerWrapper) commandcontext.getSource()); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 0d16eaeea8b38329ffd6859b3ef93562a8fb86ce..969a4359dfb35e4cfeac26e1f6c700d7e9d142eb 100644 +index 8d27fff773b74014351bfbfeed0197272234be4a..b1b12a46f0b662aff24357b407b65124428ecfaa 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -133,10 +133,12 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch b/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch index 782ec26d..e494c835 100644 --- a/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch +++ b/patches/Purpur/patches/server/0081-Add-allow-water-in-end-world-option.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add allow water in end world option diff --git a/src/main/java/net/minecraft/world/item/ItemBucket.java b/src/main/java/net/minecraft/world/item/ItemBucket.java -index d126f668828e0788e369294c0b376ef52b344f2c..154a76b1b77a97bdf65153250c41275f72f6f73f 100644 +index f97447d77890cd65b5613899c389483bcf82be01..7eb3238b5820bb13f25d78d7808722659cb521f2 100644 --- a/src/main/java/net/minecraft/world/item/ItemBucket.java +++ b/src/main/java/net/minecraft/world/item/ItemBucket.java -@@ -152,7 +152,7 @@ public class ItemBucket extends Item { +@@ -163,7 +163,7 @@ public class ItemBucket extends Item { // CraftBukkit end if (!flag1) { return movingobjectpositionblock != null && this.a(entityhuman, world, movingobjectpositionblock.getBlockPosition().shift(movingobjectpositionblock.getDirection()), (MovingObjectPositionBlock) null, enumdirection, clicked, itemstack, enumhand); // CraftBukkit // Paper - add enumhand @@ -17,7 +17,7 @@ index d126f668828e0788e369294c0b376ef52b344f2c..154a76b1b77a97bdf65153250c41275f int i = blockposition.getX(); int j = blockposition.getY(); int k = blockposition.getZ(); -@@ -160,7 +160,7 @@ public class ItemBucket extends Item { +@@ -171,7 +171,7 @@ public class ItemBucket extends Item { world.playSound(entityhuman, blockposition, SoundEffects.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5F, 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F); for (int l = 0; l < 8; ++l) { @@ -68,7 +68,7 @@ index 461c85b426aab30c34529897e55aa842b45d0555..486a03f2582d6ece2775cb2db127953d } else { world.setTypeUpdate(blockposition, Blocks.WATER.getBlockData()); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 969a4359dfb35e4cfeac26e1f6c700d7e9d142eb..5c65438c8b8acd2893346d26649c9fe142da05e9 100644 +index b1b12a46f0b662aff24357b407b65124428ecfaa..1a9d5409d38be0884c005524069c341a2dc27365 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -186,6 +186,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch b/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch index b7893c51..3f2ff2a6 100644 --- a/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch +++ b/patches/Purpur/patches/server/0082-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 4041e5d0964ec6844b156c9097cd70ec59002854..2b3e4130b906be299760a26a5298b3c73f00103e 100644 +index e8a9c8a7fc4089e48e09afc1638cf1ccde7b0fab..d16149731efbaa9ad19083d5654f4e1e14ef3b76 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1216,7 +1216,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1224,7 +1224,8 @@ public class PlayerConnection implements PacketListenerPlayIn { if (itemstack.getItem() == Items.WRITABLE_BOOK) { NBTTagList nbttaglist = new NBTTagList(); @@ -18,7 +18,7 @@ index 4041e5d0964ec6844b156c9097cd70ec59002854..2b3e4130b906be299760a26a5298b3c7 ItemStack old = itemstack.cloneItemStack(); // CraftBukkit itemstack.a("pages", (NBTBase) nbttaglist); this.player.inventory.setItem(i, CraftEventFactory.handleEditBookEvent(player, i, old, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) -@@ -1234,13 +1235,14 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1242,13 +1243,14 @@ public class PlayerConnection implements PacketListenerPlayIn { itemstack1.setTag(nbttagcompound.clone()); } @@ -35,7 +35,7 @@ index 4041e5d0964ec6844b156c9097cd70ec59002854..2b3e4130b906be299760a26a5298b3c7 ChatComponentText chatcomponenttext = new ChatComponentText(s1); String s2 = IChatBaseComponent.ChatSerializer.a((IChatBaseComponent) chatcomponenttext); -@@ -1252,6 +1254,16 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1260,6 +1262,16 @@ public class PlayerConnection implements PacketListenerPlayIn { } } diff --git a/patches/Purpur/patches/server/0083-Entity-lifespan.patch b/patches/Purpur/patches/server/0083-Entity-lifespan.patch index 3944f7c8..4c744b32 100644 --- a/patches/Purpur/patches/server/0083-Entity-lifespan.patch +++ b/patches/Purpur/patches/server/0083-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 2b3e4130b906be299760a26a5298b3c73f00103e..e6d73912a333edd43c4e489c50f4e441c3b2cc29 100644 +index d16149731efbaa9ad19083d5654f4e1e14ef3b76..10c5af3949af4a3bee4999753e7545f0ac745e63 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -2464,6 +2464,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2472,6 +2472,7 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean triggerLeashUpdate = itemInHand != null && itemInHand.getItem() == Items.LEAD && entity instanceof EntityInsentient; Item origItem = this.player.inventory.getItemInHand() == null ? null : this.player.inventory.getItemInHand().getItem(); PlayerInteractEntityEvent event; diff --git a/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch b/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch index 7c5807bc..407a33bf 100644 --- a/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch +++ b/patches/Purpur/patches/server/0086-Configurable-end-spike-seed.patch @@ -25,7 +25,7 @@ index dd623702131eaa1a65937a19a0e986e865322258..54ac8444702c3cfc2bcbaa6c8bc40398 List list = worldgenfeatureendspikeconfiguration.c(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5c65438c8b8acd2893346d26649c9fe142da05e9..90f1b46a8afd858eb0bc8a3723eda38c583d1ce3 100644 +index 1a9d5409d38be0884c005524069c341a2dc27365..7a95f27827cbf5d5f69e0f3d55f327bac4203573 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,5 +1,6 @@ diff --git a/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch b/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch index 8bccf35b..f33b977b 100644 --- a/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch +++ b/patches/Purpur/patches/server/0087-Configurable-dungeon-seed.patch @@ -31,7 +31,7 @@ index 4a2e3af98ef3383678445c1bdf535203097558ee..363de0352804e6a778d4e6ee34609a94 int i = random.nextInt(2) + 2; int j = -i - 1; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 90f1b46a8afd858eb0bc8a3723eda38c583d1ce3..3a2476d78e74286636fb927258c583249aefd791 100644 +index 7a95f27827cbf5d5f69e0f3d55f327bac4203573..013f8a21be68f4e0470c0b873252bf21dd611127 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -142,10 +142,13 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch b/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch index c6bcc6a6..c0260ea2 100644 --- a/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch +++ b/patches/Purpur/patches/server/0089-Configurable-villager-breeding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager breeding diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index e06f7cfe2d7020f4f6c416d5b82958d3821a1529..e2779521977716aa58bb713de67cb2d9fa8cbe5f 100644 +index 02fb339300669a2b3f702a67085dae3dae2f9908..9c187b015c9acd11a372ec4844bc6d5ead4ca73d 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -718,7 +718,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch b/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch index 1871ec94..5a651943 100644 --- a/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch +++ b/patches/Purpur/patches/server/0094-Add-option-to-disable-mushroom-and-note-block-update.patch @@ -91,7 +91,7 @@ index feec1db88b22a4d13ffd3034633da79ed41b94fe..148718f8f96d94e76a4a7a96d5955b62 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 3a2476d78e74286636fb927258c583249aefd791..0f7d4aecadf319bef64793e4938736c531459e0e 100644 +index 013f8a21be68f4e0470c0b873252bf21dd611127..739e9724b316cfe1454ed32c13d91748ed0f180d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -202,6 +202,13 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0099-Short-enderman-height.patch b/patches/Purpur/patches/server/0099-Short-enderman-height.patch index f60f38fb..757f83c8 100644 --- a/patches/Purpur/patches/server/0099-Short-enderman-height.patch +++ b/patches/Purpur/patches/server/0099-Short-enderman-height.patch @@ -31,7 +31,7 @@ index 72142f5c777c6218050bc2b69891072d256ea57d..52aa47036acee2ec21ae2d6f4df634ec if (this.tryEscape(EndermanEscapeEvent.Reason.INDIRECT)) { // Paper start for (int i = 0; i < 64; ++i) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 0f7d4aecadf319bef64793e4938736c531459e0e..3b20793e3eb4349f8a4ce724f8fc0d6366bb28c2 100644 +index 739e9724b316cfe1454ed32c13d91748ed0f180d..3023df34803e93e4ce43fda6c0bee8de86fff5bc 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -4,6 +4,8 @@ import co.aikar.timings.TimingsManager; diff --git a/patches/Purpur/patches/server/0101-Ridables.patch b/patches/Purpur/patches/server/0101-Ridables.patch index 230ba4a3..b70ee9a4 100644 --- a/patches/Purpur/patches/server/0101-Ridables.patch +++ b/patches/Purpur/patches/server/0101-Ridables.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Ridables diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index cbc6d074a7366f6456c6af2a3fedf0f7bd40cb5b..8ba25be0ea59483e824be9afc63d47cb75b5b334 100644 +index 6fee6b5ea9e2a946bf170a8ad94ae785502419b0..6c0729b0b2a956607067885768cbe848d7406ad6 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1543,6 +1543,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 0; // Paper worldserver.hasEntityMoveEvent = EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper @@ -116,10 +116,10 @@ index 375ac2a1c126a27a0a47ab7a369a821785aeada9..ac41fc5b23ec81a57c3ec8f1fa0cff0b return new Throwable(entity + " Added to world at " + new java.util.Date()); } diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index e6d73912a333edd43c4e489c50f4e441c3b2cc29..e35a23544112aa11506951f2a609a5df54cf83a3 100644 +index 10c5af3949af4a3bee4999753e7545f0ac745e63..764ec67150a37f3a18eb1efde9d0c8810a92da6d 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -2473,6 +2473,8 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2481,6 +2481,8 @@ public class PlayerConnection implements PacketListenerPlayIn { } this.server.getPluginManager().callEvent(event); @@ -2043,7 +2043,7 @@ index f25f5ced218555af0d62844a78842cfc7599d608..b46315700b8857318b03b83097fcf829 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java b/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java -index e9f20d387ccdacfbb1a48dc31e2a6cd4843a0d7b..38fe79872b4b7f4ad4a030fbdf505efbc0352fc0 100644 +index 4e4327b3cb84367534c6f5855cf8b89763b1419d..b94aa69e2c5f41161e8c21d68078a522d063e03d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java @@ -39,6 +39,18 @@ public class EntityPufferFish extends EntityFish { @@ -5326,10 +5326,10 @@ index 9aa4850e021076fde306eea7eec104c31086c57f..c2e32121f693a6207e6239c26a1fd6e6 this.world.getMethodProfiler().exit(); HoglinAI.a(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index 48acef830eb1d919499e9b79dc6a9af4bdf8a17b..2311d82824314a9feede9c3c106b0e1b24ac1b7a 100644 +index 4ee979a2771b1c97379a77af34b9e7b6de34d67b..4021174b3c0bcbe582354fc72697e1123d3a9627 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -@@ -70,6 +70,18 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { +@@ -86,6 +86,18 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { this.f = 5; } @@ -5348,12 +5348,12 @@ index 48acef830eb1d919499e9b79dc6a9af4bdf8a17b..2311d82824314a9feede9c3c106b0e1b @Override public void saveData(NBTTagCompound nbttagcompound) { super.saveData(nbttagcompound); -@@ -250,6 +262,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { +@@ -278,6 +290,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { // Airplane - dynamic tick if (!gg.airplane.AirplaneConfig.dynamicPiglinBehavior || this.behaviorTick++ % this.activatedPriority == 0) { this.world.getMethodProfiler().enter("piglinBrain"); + if (getPurpurRider() == null) // Purpur - only use brain if no rider - this.getBehaviorController().a((WorldServer) this.world, (EntityPiglin) this); // Airplane - compile error + this.getBehaviorController().a((WorldServer) this.world, (EntityPiglin) this); // CraftBukkit - decompile error this.world.getMethodProfiler().exit(); PiglinAI.b(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglinBrute.java @@ -5399,7 +5399,7 @@ index 3d85501791fce621335f34bf508becb74b80210d..1370d2d8568a4ed62f2ec3d54abc7d2b PiglinBruteAI.b(this); PiglinBruteAI.c(this); diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index e2779521977716aa58bb713de67cb2d9fa8cbe5f..bd56b7a009a8bcbdd353d7bdcb2a2a7310ab45cc 100644 +index 9c187b015c9acd11a372ec4844bc6d5ead4ca73d..daad6520c5d20646f34895225fbf669ecb18e72b 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -32,6 +32,7 @@ import net.minecraft.network.syncher.DataWatcherObject; @@ -5633,7 +5633,7 @@ index a19a26a88f247d359354902efeece9923f3e0e0b..1119f60890784d953c2cd4e0078af4d0 return new Vec3D(this.x * d0, this.y * d1, this.z * d2); } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 3b20793e3eb4349f8a4ce724f8fc0d6366bb28c2..9789d0f9f73540a486befcdd4901014efeed8403 100644 +index 3023df34803e93e4ce43fda6c0bee8de86fff5bc..d242fc9828d36476c43bd2e5484de38047b35ae5 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -137,11 +137,13 @@ public class PurpurConfig { @@ -6995,10 +6995,10 @@ index dee4d12a49468d38f077784b219199f0070786f2..dcdc82b42689b4962323938a62cf7ded + // 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 b14cec316b16e46d54d389650372c5c9ce1e5a4d..81ea6ffb6be8a7aed281c6538f0535bbaf00b068 100644 +index a678277416cd71e01cd6980bcfaf9a9803e7ea17..c4218281721cf4a5b8f2cad5e12089e3aee89737 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -545,6 +545,18 @@ public class CraftEventFactory { +@@ -548,6 +548,18 @@ public class CraftEventFactory { } craftServer.getPluginManager().callEvent(event); @@ -7017,7 +7017,7 @@ index b14cec316b16e46d54d389650372c5c9ce1e5a4d..81ea6ffb6be8a7aed281c6538f0535bb return event; } -@@ -948,6 +960,7 @@ public class CraftEventFactory { +@@ -951,6 +963,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions); @@ -7025,7 +7025,7 @@ index b14cec316b16e46d54d389650372c5c9ce1e5a4d..81ea6ffb6be8a7aed281c6538f0535bb } event.setCancelled(cancelled); -@@ -1032,6 +1045,7 @@ public class CraftEventFactory { +@@ -1035,6 +1048,7 @@ public class CraftEventFactory { if (!event.isCancelled()) { event.getEntity().setLastDamageCause(event); } @@ -7033,7 +7033,7 @@ index b14cec316b16e46d54d389650372c5c9ce1e5a4d..81ea6ffb6be8a7aed281c6538f0535bb return event; } -@@ -1081,6 +1095,7 @@ public class CraftEventFactory { +@@ -1084,6 +1098,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions); diff --git a/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch b/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch index b590241a..8fac28f1 100644 --- a/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch +++ b/patches/Purpur/patches/server/0103-Crying-obsidian-valid-for-portal-frames.patch @@ -42,7 +42,7 @@ index 3f8a674345bcad8289a48d2daa5e2a283528e952..3c35f5d171df518f491cad1f49882622 private final GeneratorAccess b; private final EnumDirection.EnumAxis c; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 9789d0f9f73540a486befcdd4901014efeed8403..d783f6a9288db216a5eb812ab0cbf5c000edb1b5 100644 +index d242fc9828d36476c43bd2e5484de38047b35ae5..48bfafcfedc6b17d2cbd9693ec389d4c3d13de52 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -180,6 +180,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch b/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch index 9bbb0575..8d751f4f 100644 --- a/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch +++ b/patches/Purpur/patches/server/0117-Allow-infinite-and-mending-enchantments-together.patch @@ -17,7 +17,7 @@ index bf9d6d0e593951aa5abc9aef6cf4803430ea18e5..29bebbccf8dd6ff8976d1bfdb4c2ddcf } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d783f6a9288db216a5eb812ab0cbf5c000edb1b5..24220d8a4e832771aa86619b660535867bb091de 100644 +index 48bfafcfedc6b17d2cbd9693ec389d4c3d13de52..4dda822c91bbe3109eaa7f727002ab3737547c77 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -198,6 +198,16 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch b/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch index 2f739f39..7509eae9 100644 --- a/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch +++ b/patches/Purpur/patches/server/0120-Add-tablist-suffix-option-for-afk.patch @@ -22,7 +22,7 @@ index d06bae9d71f23fccbfaf65c0fd9e9a550549432e..adab7cf319ed7d77bdd0196709741f67 ((WorldServer) world).everyoneSleeping(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 24220d8a4e832771aa86619b660535867bb091de..b903a19e0fcf008cb8358be2d5050c89d2addf28 100644 +index 4dda822c91bbe3109eaa7f727002ab3737547c77..909f0a283f0b7b1123fc7afde7fdf36a37f983e9 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -136,12 +136,14 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0129-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch b/patches/Purpur/patches/server/0129-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch index f295b107..2cc229e1 100644 --- a/patches/Purpur/patches/server/0129-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch +++ b/patches/Purpur/patches/server/0129-Add-critical-hit-check-to-EntityDamagedByEntityEvent.patch @@ -33,10 +33,10 @@ index a70c557de56c5ba04cb520108cdb037eb9cad8a9..78442fe87ceaf65b302536c893610aa0 if (flag5) { if (i > 0) { diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index 81ea6ffb6be8a7aed281c6538f0535bbaf00b068..064256873da7660815aeb416a6cfe55c24e6838d 100644 +index c4218281721cf4a5b8f2cad5e12089e3aee89737..cfeb80b889b84f9de65c4d5ba50bd76019c16ef0 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -1094,7 +1094,7 @@ public class CraftEventFactory { +@@ -1097,7 +1097,7 @@ public class CraftEventFactory { private static EntityDamageEvent callEntityDamageEvent(Entity damager, Entity damagee, DamageCause cause, Map modifiers, Map> modifierFunctions, boolean cancelled) { EntityDamageEvent event; if (damager != null) { diff --git a/patches/Purpur/patches/server/0132-Add-demo-command.patch b/patches/Purpur/patches/server/0132-Add-demo-command.patch index abeae395..30f70241 100644 --- a/patches/Purpur/patches/server/0132-Add-demo-command.patch +++ b/patches/Purpur/patches/server/0132-Add-demo-command.patch @@ -30,7 +30,7 @@ index edb6c0ab2826051b04e025a713d794dbc5de4792..0161657748d398b6827ef8bc2b00b8a6 public static final PacketPlayOutGameStateChange.a h = new PacketPlayOutGameStateChange.a(7); public static final PacketPlayOutGameStateChange.a i = new PacketPlayOutGameStateChange.a(8); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index b903a19e0fcf008cb8358be2d5050c89d2addf28..69d6d3fb4333531ea63acf5272ffa52ed296346f 100644 +index 909f0a283f0b7b1123fc7afde7fdf36a37f983e9..c5812b2c1160cfed927a23c9da4c8c913dab158c 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -137,6 +137,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch b/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch index 112f4b89..0f03f109 100644 --- a/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch +++ b/patches/Purpur/patches/server/0137-Config-migration-disable-saving-projectiles-to-disk-.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config migration: disable saving projectiles to disk -> diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 69d6d3fb4333531ea63acf5272ffa52ed296346f..457a20aee6f7aa25be052bec202bbcb8153612c0 100644 +index c5812b2c1160cfed927a23c9da4c8c913dab158c..f46abac134119031523e37f28b115dd46fbb8885 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -1,6 +1,7 @@ diff --git a/patches/Purpur/patches/server/0139-PaperPR-Config-option-for-Piglins-guarding-chests.patch b/patches/Purpur/patches/server/0139-PaperPR-Config-option-for-Piglins-guarding-chests.patch index 8e9824b4..9b87f3d4 100644 --- a/patches/Purpur/patches/server/0139-PaperPR-Config-option-for-Piglins-guarding-chests.patch +++ b/patches/Purpur/patches/server/0139-PaperPR-Config-option-for-Piglins-guarding-chests.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PaperPR - Config option for Piglins guarding chests diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 921253a06daa414aed7dc6824effc65db09ea7a5..319e12c843305e62c34b1b6e2fd198d02491ca12 100644 +index 795b76379eb698aa0ed83c000ea0679a844792d5..577ed19fa8875ab37433b1061f055521a4245434 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -704,6 +704,11 @@ public class PaperWorldConfig { @@ -21,10 +21,10 @@ index 921253a06daa414aed7dc6824effc65db09ea7a5..319e12c843305e62c34b1b6e2fd198d0 private void useEigencraftRedstone() { useEigencraftRedstone = this.getBoolean("use-faster-eigencraft-redstone", false); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAI.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAI.java -index 490e749db3fc60a06fbb51347491b1ed29f3eaa0..39451d6d7a5b8cb4a29c6b3a4787979d40144cd9 100644 +index f2102a970f4bbb49b8206dd8577349b62bf355f7..5b4c32dd8c634c73273bacd5629dff1df35ac132 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAI.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAI.java -@@ -419,6 +419,7 @@ public class PiglinAI { +@@ -437,6 +437,7 @@ public class PiglinAI { } public static void a(EntityHuman entityhuman, boolean flag) { diff --git a/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch b/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch index 7d06e897..59bb55ab 100644 --- a/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch +++ b/patches/Purpur/patches/server/0140-EMC-Configurable-disable-give-dropping.patch @@ -20,7 +20,7 @@ index a10207f7cb9455e29db7e6906cb2138ad5609a1f..9557fd12f87e7e825501759598eaee75 itemstack.setCount(1); entityitem = entityplayer.drop(itemstack, false, false, true); // Paper - Fix duplicating /give items on item drop cancel diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 457a20aee6f7aa25be052bec202bbcb8153612c0..521604b37ca61b849420f206fde88210b582cd3c 100644 +index f46abac134119031523e37f28b115dd46fbb8885..8c9a791195821cf9df393c8d3bf33ef6d0913e70 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -193,6 +193,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch b/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch index b87b4c70..92194207 100644 --- a/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch +++ b/patches/Purpur/patches/server/0141-Config-migration-climbing-should-not-bypass-cramming.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Config migration: climbing should not bypass cramming diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 521604b37ca61b849420f206fde88210b582cd3c..116f17bcc02d15951fa248c6ce4e2cf3617034d4 100644 +index 8c9a791195821cf9df393c8d3bf33ef6d0913e70..78baa4e01538205001613bf6e1ab6fb88d91dec1 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -145,6 +145,17 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch b/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch index e07ab631..75764160 100644 --- a/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch +++ b/patches/Purpur/patches/server/0142-Lobotomize-stuck-villagers.patch @@ -30,7 +30,7 @@ index 48e6a4c588ef39a4bde067d79b96a656c68750ce..ac7bad10697c6fde7d512753992d5971 // Paper start - add target parameter return this.a(blockposition, null, i); diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index bd56b7a009a8bcbdd353d7bdcb2a2a7310ab45cc..45739558f10687870b475711735342d839859e03 100644 +index daad6520c5d20646f34895225fbf669ecb18e72b..01cfb29db6c9d42530e4113d6ae2384743018f70 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -89,6 +89,7 @@ import net.minecraft.world.level.IWorldReader; diff --git a/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 2e248569..2bfef1db 100644 --- a/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/Purpur/patches/server/0143-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -186,7 +186,7 @@ index 25c10973c74f98224dd1d2ae5e7178b9781374aa..d50b5632f0e53147ea23109f1ed627b4 behaviorcontroller.removeMemory(MemoryModuleType.SECONDARY_JOB_SITE); } diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 45739558f10687870b475711735342d839859e03..0699d835da44296ede8ee6458a7bf8ebccc313ae 100644 +index 01cfb29db6c9d42530e4113d6ae2384743018f70..19c90ba0342ac2e38ae31fb1440b37e24df43f18 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -203,7 +203,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @@ -198,7 +198,7 @@ index 45739558f10687870b475711735342d839859e03..0699d835da44296ede8ee6458a7bf8eb } behaviorcontroller.a(Activity.CORE, Behaviors.a(villagerprofession, 0.5F)); -@@ -951,6 +951,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -953,6 +953,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation } public boolean canPlant() { diff --git a/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch b/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch index 7e464e98..558b047d 100644 --- a/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch +++ b/patches/Purpur/patches/server/0145-Spread-out-and-optimise-player-list-ticks.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Spread out and optimise player list ticks diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index fc47887dfd3d32788fa11845c738af53126fba46..21c51883c73dfaa7ec874fb7f8ed7c284239e0a5 100644 +index 80f6a4e7204bceca3f312fe5c8d572f971a7fa4b..62f2033606170248f07f7683688b8a11ca3bd302 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -151,7 +151,7 @@ public abstract class PlayerList { @@ -56,10 +56,10 @@ index fc47887dfd3d32788fa11845c738af53126fba46..21c51883c73dfaa7ec874fb7f8ed7c28 public void sendAll(Packet packet) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 14b9e4c845d73946f4151c902e12aa0690b9414c..e557157c5128ea89d728de2ab92b5e1a7b3437ef 100644 +index b7180dea1d71a68e4025388916600093dfd000c7..8cc2b2b83ad3cb74f8cf7916141ae1f4ade27908 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1442,7 +1442,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1447,7 +1447,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public boolean canSee(Player player) { diff --git a/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch b/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch index 8202ae18..3de99010 100644 --- a/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch +++ b/patches/Purpur/patches/server/0148-Configurable-entity-base-attributes.patch @@ -288,7 +288,7 @@ index c9c7c9de638079393bbea86f8069023dcbcbca83..83494d3c989a120297c21a1bd560bc37 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java b/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java -index 38fe79872b4b7f4ad4a030fbdf505efbc0352fc0..0d32590cf4cfdd95da6aceac5190d42c8e966ce7 100644 +index b94aa69e2c5f41161e8c21d68078a522d063e03d..c81aa13dff40d41577c7c13f6aef8972bf31d69e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityPufferFish.java @@ -20,6 +20,7 @@ import net.minecraft.world.entity.EntityPose; @@ -1335,10 +1335,10 @@ index 8c2815c8b11c8db8e6c1d0caf71188322e52094d..0b6c80e908392025197b68d1ba6b3eed @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index 2311d82824314a9feede9c3c106b0e1b24ac1b7a..17dde4532714378f7480f55991d94fc82e9a2b05 100644 +index 4021174b3c0bcbe582354fc72697e1123d3a9627..1f2f836284c52cf3e7ff295a538f88d95e088761 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -@@ -80,6 +80,11 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { +@@ -96,6 +96,11 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { public boolean isRidableInWater() { return world.purpurConfig.piglinRidableInWater; } @@ -1367,7 +1367,7 @@ index 1370d2d8568a4ed62f2ec3d54abc7d2bebc48f75..201b78ffb5062254a6b3447f217df03d public static AttributeProvider.Builder eS() { diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 0699d835da44296ede8ee6458a7bf8ebccc313ae..f911cd4cf2ad82e81b09f92063abd573797fe5d6 100644 +index 19c90ba0342ac2e38ae31fb1440b37e24df43f18..0c37f2cb72438b2b0114a231a7766ecdc8ac3064 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -167,6 +167,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/Purpur/patches/server/0151-Implement-TPSBar.patch b/patches/Purpur/patches/server/0151-Implement-TPSBar.patch index 7bf449ab..7ba0fc9c 100644 --- a/patches/Purpur/patches/server/0151-Implement-TPSBar.patch +++ b/patches/Purpur/patches/server/0151-Implement-TPSBar.patch @@ -17,10 +17,10 @@ index 0ea56c863a9a1019b36f7f9f9164301aef12637b..4338b459011bf7a083790b7bb76cf1b2 if (commanddispatcher_servertype.d) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 8ba25be0ea59483e824be9afc63d47cb75b5b334..61603bda0d1e305679ab2463188c3f6cf9c8c18d 100644 +index 6c0729b0b2a956607067885768cbe848d7406ad6..f9a5b96bf479c177f6a2f2a45258990c297ea3b8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -992,6 +992,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant -Date: Wed, 23 Dec 2020 00:43:59 -0600 -Subject: [PATCH] PlayerBookTooLargeEvent - - -diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index e35a23544112aa11506951f2a609a5df54cf83a3..2bf4acf2e08abcfdf8f2529480b48f1eb9b85d27 100644 ---- a/src/main/java/net/minecraft/server/network/PlayerConnection.java -+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1128,6 +1128,7 @@ public class PlayerConnection implements PacketListenerPlayIn { - NBTTagList pageList = testStack.getTag().getList("pages", 8); - if (pageList.size() > 100) { - PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send a book with too many pages"); -+ net.pl3x.purpur.event.player.PlayerBookTooLargeEvent event = new net.pl3x.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), testStack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur - minecraftServer.scheduleOnMain(() -> this.disconnect("Book too large!")); - return; - } -@@ -1140,6 +1141,7 @@ public class PlayerConnection implements PacketListenerPlayIn { - int byteLength = testString.getBytes(java.nio.charset.StandardCharsets.UTF_8).length; - if (byteLength > 256 * 4) { - PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send a book with with a page too large!"); -+ net.pl3x.purpur.event.player.PlayerBookTooLargeEvent event = new net.pl3x.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), testStack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur - minecraftServer.scheduleOnMain(() -> this.disconnect("Book too large!")); - return; - } -@@ -1163,6 +1165,7 @@ public class PlayerConnection implements PacketListenerPlayIn { - - if (byteTotal > byteAllowed) { - PlayerConnection.LOGGER.warn(this.player.getName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); -+ net.pl3x.purpur.event.player.PlayerBookTooLargeEvent event = new net.pl3x.purpur.event.player.PlayerBookTooLargeEvent(player.getBukkitEntity(), testStack.asBukkitCopy()); if (event.shouldKickPlayer()) // Purpur - minecraftServer.scheduleOnMain(() -> this.disconnect("Book too large!")); - return; - } diff --git a/patches/Purpur/patches/server/0155-Fix-rotating-UP-DOWN-CW-and-CCW.patch b/patches/Purpur/patches/server/0154-Fix-rotating-UP-DOWN-CW-and-CCW.patch similarity index 100% rename from patches/Purpur/patches/server/0155-Fix-rotating-UP-DOWN-CW-and-CCW.patch rename to patches/Purpur/patches/server/0154-Fix-rotating-UP-DOWN-CW-and-CCW.patch diff --git a/patches/Purpur/patches/server/0156-Add-MC-4-fix-back.patch b/patches/Purpur/patches/server/0155-Add-MC-4-fix-back.patch similarity index 86% rename from patches/Purpur/patches/server/0156-Add-MC-4-fix-back.patch rename to patches/Purpur/patches/server/0155-Add-MC-4-fix-back.patch index 6651ddd1..1c54d461 100644 --- a/patches/Purpur/patches/server/0156-Add-MC-4-fix-back.patch +++ b/patches/Purpur/patches/server/0155-Add-MC-4-fix-back.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add MC-4 fix back diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -index 92cd61cd6b085a03c502223f3861540d8c9f27e1..51663e58def93cc38157a99069db86603faf4c0a 100644 +index be46b8fcbfed932ba96a34c94eee0b237c783bd4..dd4997e7ffac4773e01add88efec7c0dcd7b4df0 100644 --- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java +++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -@@ -575,7 +575,7 @@ public class EntityItem extends Entity { +@@ -583,7 +583,7 @@ public class EntityItem extends Entity { // Paper start - fix MC-4 public void setPositionRaw(double x, double y, double z) { diff --git a/patches/Purpur/patches/server/0157-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/Purpur/patches/server/0156-Add-mobGriefing-bypass-to-everything-affected.patch similarity index 100% rename from patches/Purpur/patches/server/0157-Add-mobGriefing-bypass-to-everything-affected.patch rename to patches/Purpur/patches/server/0156-Add-mobGriefing-bypass-to-everything-affected.patch diff --git a/patches/Purpur/patches/server/0158-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/Purpur/patches/server/0157-Config-to-allow-Note-Block-sounds-when-blocked.patch similarity index 100% rename from patches/Purpur/patches/server/0158-Config-to-allow-Note-Block-sounds-when-blocked.patch rename to patches/Purpur/patches/server/0157-Config-to-allow-Note-Block-sounds-when-blocked.patch diff --git a/patches/Purpur/patches/server/0159-Add-EntityTeleportHinderedEvent.patch b/patches/Purpur/patches/server/0158-Add-EntityTeleportHinderedEvent.patch similarity index 98% rename from patches/Purpur/patches/server/0159-Add-EntityTeleportHinderedEvent.patch rename to patches/Purpur/patches/server/0158-Add-EntityTeleportHinderedEvent.patch index 2bc96f22..9d32dea3 100644 --- a/patches/Purpur/patches/server/0159-Add-EntityTeleportHinderedEvent.patch +++ b/patches/Purpur/patches/server/0158-Add-EntityTeleportHinderedEvent.patch @@ -123,7 +123,7 @@ index dcdc82b42689b4962323938a62cf7ded49afd6f4..4a70d657fd83627e8d66b52cb5f87381 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e557157c5128ea89d728de2ab92b5e1a7b3437ef..dbac5843088e221cd7d654a0c872ef4451b53075 100644 +index 8cc2b2b83ad3cb74f8cf7916141ae1f4ade27908..0501d5bee249ac35e6344dfa1bed3d802901f377 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -126,6 +126,7 @@ import org.bukkit.entity.EntityType; @@ -134,7 +134,7 @@ index e557157c5128ea89d728de2ab92b5e1a7b3437ef..dbac5843088e221cd7d654a0c872ef44 import org.bukkit.event.player.PlayerUnregisterChannelEvent; import org.bukkit.inventory.InventoryView.Property; import org.bukkit.inventory.ItemStack; -@@ -881,6 +882,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -886,6 +887,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } if (entity.isVehicle()) { diff --git a/patches/Purpur/patches/server/0160-Add-StructureGenerateEvent.patch b/patches/Purpur/patches/server/0159-Add-StructureGenerateEvent.patch similarity index 100% rename from patches/Purpur/patches/server/0160-Add-StructureGenerateEvent.patch rename to patches/Purpur/patches/server/0159-Add-StructureGenerateEvent.patch diff --git a/patches/Purpur/patches/server/0161-Farmland-trampling-changes.patch b/patches/Purpur/patches/server/0160-Farmland-trampling-changes.patch similarity index 100% rename from patches/Purpur/patches/server/0161-Farmland-trampling-changes.patch rename to patches/Purpur/patches/server/0160-Farmland-trampling-changes.patch diff --git a/patches/Purpur/patches/server/0162-Movement-options-for-armor-stands.patch b/patches/Purpur/patches/server/0161-Movement-options-for-armor-stands.patch similarity index 100% rename from patches/Purpur/patches/server/0162-Movement-options-for-armor-stands.patch rename to patches/Purpur/patches/server/0161-Movement-options-for-armor-stands.patch diff --git a/patches/Purpur/patches/server/0163-Fix-stuck-in-portals.patch b/patches/Purpur/patches/server/0162-Fix-stuck-in-portals.patch similarity index 100% rename from patches/Purpur/patches/server/0163-Fix-stuck-in-portals.patch rename to patches/Purpur/patches/server/0162-Fix-stuck-in-portals.patch diff --git a/patches/Purpur/patches/server/0164-Config-to-use-infinity-bows-without-arrows.patch b/patches/Purpur/patches/server/0163-Config-to-use-infinity-bows-without-arrows.patch similarity index 100% rename from patches/Purpur/patches/server/0164-Config-to-use-infinity-bows-without-arrows.patch rename to patches/Purpur/patches/server/0163-Config-to-use-infinity-bows-without-arrows.patch diff --git a/patches/Purpur/patches/server/0165-Toggle-for-water-sensitive-mob-damage.patch b/patches/Purpur/patches/server/0164-Toggle-for-water-sensitive-mob-damage.patch similarity index 100% rename from patches/Purpur/patches/server/0165-Toggle-for-water-sensitive-mob-damage.patch rename to patches/Purpur/patches/server/0164-Toggle-for-water-sensitive-mob-damage.patch diff --git a/patches/Purpur/patches/server/0166-Config-to-always-tame-in-Creative.patch b/patches/Purpur/patches/server/0165-Config-to-always-tame-in-Creative.patch similarity index 100% rename from patches/Purpur/patches/server/0166-Config-to-always-tame-in-Creative.patch rename to patches/Purpur/patches/server/0165-Config-to-always-tame-in-Creative.patch diff --git a/patches/Purpur/patches/server/0167-End-crystal-explosion-options.patch b/patches/Purpur/patches/server/0166-End-crystal-explosion-options.patch similarity index 100% rename from patches/Purpur/patches/server/0167-End-crystal-explosion-options.patch rename to patches/Purpur/patches/server/0166-End-crystal-explosion-options.patch diff --git a/patches/Purpur/patches/server/0168-Add-unsafe-Entity-serialization-API.patch b/patches/Purpur/patches/server/0167-Add-unsafe-Entity-serialization-API.patch similarity index 100% rename from patches/Purpur/patches/server/0168-Add-unsafe-Entity-serialization-API.patch rename to patches/Purpur/patches/server/0167-Add-unsafe-Entity-serialization-API.patch diff --git a/patches/Purpur/patches/server/0169-Add-ghast-allow-griefing-option.patch b/patches/Purpur/patches/server/0168-Add-ghast-allow-griefing-option.patch similarity index 100% rename from patches/Purpur/patches/server/0169-Add-ghast-allow-griefing-option.patch rename to patches/Purpur/patches/server/0168-Add-ghast-allow-griefing-option.patch diff --git a/patches/Purpur/patches/server/0170-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/Purpur/patches/server/0169-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch similarity index 100% rename from patches/Purpur/patches/server/0170-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch rename to patches/Purpur/patches/server/0169-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch diff --git a/patches/Purpur/patches/server/0171-Dont-run-with-scissors.patch b/patches/Purpur/patches/server/0170-Dont-run-with-scissors.patch similarity index 94% rename from patches/Purpur/patches/server/0171-Dont-run-with-scissors.patch rename to patches/Purpur/patches/server/0170-Dont-run-with-scissors.patch index 734fbd6e..49acd512 100644 --- a/patches/Purpur/patches/server/0171-Dont-run-with-scissors.patch +++ b/patches/Purpur/patches/server/0170-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 2bf4acf2e08abcfdf8f2529480b48f1eb9b85d27..fda4e5b5c15e9d1fab48006991ec8139907abc74 100644 +index 764ec67150a37f3a18eb1efde9d0c8810a92da6d..0c47ea59ec05efdf1f9e25bf837e6039c79f6692 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -1552,6 +1552,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1557,6 +1557,12 @@ public class PlayerConnection implements PacketListenerPlayIn { this.player.fallDistance = 0.0F; } diff --git a/patches/Purpur/patches/server/0172-One-Punch-Man.patch b/patches/Purpur/patches/server/0171-One-Punch-Man.patch similarity index 100% rename from patches/Purpur/patches/server/0172-One-Punch-Man.patch rename to patches/Purpur/patches/server/0171-One-Punch-Man.patch diff --git a/patches/Purpur/patches/server/0173-Add-config-for-snow-on-blue-ice.patch b/patches/Purpur/patches/server/0172-Add-config-for-snow-on-blue-ice.patch similarity index 100% rename from patches/Purpur/patches/server/0173-Add-config-for-snow-on-blue-ice.patch rename to patches/Purpur/patches/server/0172-Add-config-for-snow-on-blue-ice.patch diff --git a/patches/Purpur/patches/server/0174-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/Purpur/patches/server/0173-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch similarity index 100% rename from patches/Purpur/patches/server/0174-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch rename to patches/Purpur/patches/server/0173-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch diff --git a/patches/Purpur/patches/server/0175-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/Purpur/patches/server/0174-Config-to-ignore-nearby-mobs-when-sleeping.patch similarity index 100% rename from patches/Purpur/patches/server/0175-Config-to-ignore-nearby-mobs-when-sleeping.patch rename to patches/Purpur/patches/server/0174-Config-to-ignore-nearby-mobs-when-sleeping.patch diff --git a/patches/Purpur/patches/server/0176-Config-for-Enderman-to-aggro-spawned-Endermites.patch b/patches/Purpur/patches/server/0175-Config-for-Enderman-to-aggro-spawned-Endermites.patch similarity index 100% rename from patches/Purpur/patches/server/0176-Config-for-Enderman-to-aggro-spawned-Endermites.patch rename to patches/Purpur/patches/server/0175-Config-for-Enderman-to-aggro-spawned-Endermites.patch diff --git a/patches/Purpur/patches/server/0177-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/Purpur/patches/server/0176-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch similarity index 100% rename from patches/Purpur/patches/server/0177-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch rename to patches/Purpur/patches/server/0176-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch diff --git a/patches/Purpur/patches/server/0178-Tick-fluids-config.patch b/patches/Purpur/patches/server/0177-Tick-fluids-config.patch similarity index 100% rename from patches/Purpur/patches/server/0178-Tick-fluids-config.patch rename to patches/Purpur/patches/server/0177-Tick-fluids-config.patch diff --git a/patches/Purpur/patches/server/0179-Config-to-disable-Llama-caravans.patch b/patches/Purpur/patches/server/0178-Config-to-disable-Llama-caravans.patch similarity index 100% rename from patches/Purpur/patches/server/0179-Config-to-disable-Llama-caravans.patch rename to patches/Purpur/patches/server/0178-Config-to-disable-Llama-caravans.patch diff --git a/patches/Purpur/patches/server/0180-Config-to-make-Creepers-explode-on-death.patch b/patches/Purpur/patches/server/0179-Config-to-make-Creepers-explode-on-death.patch similarity index 100% rename from patches/Purpur/patches/server/0180-Config-to-make-Creepers-explode-on-death.patch rename to patches/Purpur/patches/server/0179-Config-to-make-Creepers-explode-on-death.patch diff --git a/patches/Purpur/patches/server/0181-Configurable-ravager-griefable-blocks-list.patch b/patches/Purpur/patches/server/0180-Configurable-ravager-griefable-blocks-list.patch similarity index 100% rename from patches/Purpur/patches/server/0181-Configurable-ravager-griefable-blocks-list.patch rename to patches/Purpur/patches/server/0180-Configurable-ravager-griefable-blocks-list.patch diff --git a/patches/Purpur/patches/server/0182-Sneak-to-bulk-process-composter.patch b/patches/Purpur/patches/server/0181-Sneak-to-bulk-process-composter.patch similarity index 100% rename from patches/Purpur/patches/server/0182-Sneak-to-bulk-process-composter.patch rename to patches/Purpur/patches/server/0181-Sneak-to-bulk-process-composter.patch diff --git a/patches/Purpur/patches/server/0183-Config-for-skipping-night.patch b/patches/Purpur/patches/server/0182-Config-for-skipping-night.patch similarity index 100% rename from patches/Purpur/patches/server/0183-Config-for-skipping-night.patch rename to patches/Purpur/patches/server/0182-Config-for-skipping-night.patch diff --git a/patches/Purpur/patches/server/0184-Add-config-for-villager-trading.patch b/patches/Purpur/patches/server/0183-Add-config-for-villager-trading.patch similarity index 97% rename from patches/Purpur/patches/server/0184-Add-config-for-villager-trading.patch rename to patches/Purpur/patches/server/0183-Add-config-for-villager-trading.patch index b96d228c..a5e74694 100644 --- a/patches/Purpur/patches/server/0184-Add-config-for-villager-trading.patch +++ b/patches/Purpur/patches/server/0183-Add-config-for-villager-trading.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config for villager trading diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index f911cd4cf2ad82e81b09f92063abd573797fe5d6..4903d79ad1036df8f52aded6ddaca604d4a8434a 100644 +index 0c37f2cb72438b2b0114a231a7766ecdc8ac3064..e042af3f78a25587ba14d5fd9e346805dd5f1e85 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -373,7 +373,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation diff --git a/patches/Purpur/patches/server/0185-Allow-infinity-on-crossbows.patch b/patches/Purpur/patches/server/0184-Allow-infinity-on-crossbows.patch similarity index 98% rename from patches/Purpur/patches/server/0185-Allow-infinity-on-crossbows.patch rename to patches/Purpur/patches/server/0184-Allow-infinity-on-crossbows.patch index 564f3827..1096dfac 100644 --- a/patches/Purpur/patches/server/0185-Allow-infinity-on-crossbows.patch +++ b/patches/Purpur/patches/server/0184-Allow-infinity-on-crossbows.patch @@ -63,7 +63,7 @@ index cf41863bc8b0be9f2a73ca2dd02a4d414d4f230e..2b75432d74df4f627d08d32c6553bd1a private EnchantmentSlotType() {} diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 116f17bcc02d15951fa248c6ce4e2cf3617034d4..f469b27273883c56cee98fee464c4d1a32a31478 100644 +index 78baa4e01538205001613bf6e1ab6fb88d91dec1..226e6491589dc68a7cd7cba7969a2b38b92271fd 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -231,6 +231,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0186-Drowning-Settings.patch b/patches/Purpur/patches/server/0185-Drowning-Settings.patch similarity index 100% rename from patches/Purpur/patches/server/0186-Drowning-Settings.patch rename to patches/Purpur/patches/server/0185-Drowning-Settings.patch diff --git a/patches/Purpur/patches/server/0187-Break-individual-slabs-when-sneaking.patch b/patches/Purpur/patches/server/0186-Break-individual-slabs-when-sneaking.patch similarity index 100% rename from patches/Purpur/patches/server/0187-Break-individual-slabs-when-sneaking.patch rename to patches/Purpur/patches/server/0186-Break-individual-slabs-when-sneaking.patch diff --git a/patches/Purpur/patches/server/0188-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/Purpur/patches/server/0187-Config-to-disable-hostile-mob-spawn-on-ice.patch similarity index 100% rename from patches/Purpur/patches/server/0188-Config-to-disable-hostile-mob-spawn-on-ice.patch rename to patches/Purpur/patches/server/0187-Config-to-disable-hostile-mob-spawn-on-ice.patch diff --git a/patches/Purpur/patches/server/0189-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/Purpur/patches/server/0188-Config-to-show-Armor-Stand-arms-on-spawn.patch similarity index 100% rename from patches/Purpur/patches/server/0189-Config-to-show-Armor-Stand-arms-on-spawn.patch rename to patches/Purpur/patches/server/0188-Config-to-show-Armor-Stand-arms-on-spawn.patch diff --git a/patches/Purpur/patches/server/0190-Option-to-make-doors-require-redstone.patch b/patches/Purpur/patches/server/0189-Option-to-make-doors-require-redstone.patch similarity index 100% rename from patches/Purpur/patches/server/0190-Option-to-make-doors-require-redstone.patch rename to patches/Purpur/patches/server/0189-Option-to-make-doors-require-redstone.patch diff --git a/patches/Purpur/patches/server/0191-Config-to-allow-for-unsafe-enchants.patch b/patches/Purpur/patches/server/0190-Config-to-allow-for-unsafe-enchants.patch similarity index 98% rename from patches/Purpur/patches/server/0191-Config-to-allow-for-unsafe-enchants.patch rename to patches/Purpur/patches/server/0190-Config-to-allow-for-unsafe-enchants.patch index a888769e..330edcb4 100644 --- a/patches/Purpur/patches/server/0191-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/Purpur/patches/server/0190-Config-to-allow-for-unsafe-enchants.patch @@ -56,7 +56,7 @@ index b2d28c2bf0a9e93d38583e2d734c12fed4f63d5d..63a6f63a2d3e03e74c314cdebf7cb61b Map map = Maps.newLinkedHashMap(); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index f469b27273883c56cee98fee464c4d1a32a31478..b410d38a431f79971ca183b476115d9e85e1cd6e 100644 +index 226e6491589dc68a7cd7cba7969a2b38b92271fd..4947df56f3f7372dead7d5674d1327570dba00b0 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -232,6 +232,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0192-Configurable-sponge-absorption.patch b/patches/Purpur/patches/server/0191-Configurable-sponge-absorption.patch similarity index 100% rename from patches/Purpur/patches/server/0192-Configurable-sponge-absorption.patch rename to patches/Purpur/patches/server/0191-Configurable-sponge-absorption.patch diff --git a/patches/Purpur/patches/server/0193-Projectile-offset-config.patch b/patches/Purpur/patches/server/0192-Projectile-offset-config.patch similarity index 100% rename from patches/Purpur/patches/server/0193-Projectile-offset-config.patch rename to patches/Purpur/patches/server/0192-Projectile-offset-config.patch diff --git a/patches/Purpur/patches/server/0194-Config-for-powered-rail-activation-distance.patch b/patches/Purpur/patches/server/0193-Config-for-powered-rail-activation-distance.patch similarity index 100% rename from patches/Purpur/patches/server/0194-Config-for-powered-rail-activation-distance.patch rename to patches/Purpur/patches/server/0193-Config-for-powered-rail-activation-distance.patch diff --git a/patches/Purpur/patches/server/0195-Piglin-portal-spawn-modifier.patch b/patches/Purpur/patches/server/0194-Piglin-portal-spawn-modifier.patch similarity index 100% rename from patches/Purpur/patches/server/0195-Piglin-portal-spawn-modifier.patch rename to patches/Purpur/patches/server/0194-Piglin-portal-spawn-modifier.patch diff --git a/patches/Purpur/patches/server/0196-Config-to-change-max-number-of-bees.patch b/patches/Purpur/patches/server/0195-Config-to-change-max-number-of-bees.patch similarity index 96% rename from patches/Purpur/patches/server/0196-Config-to-change-max-number-of-bees.patch rename to patches/Purpur/patches/server/0195-Config-to-change-max-number-of-bees.patch index c21f11fb..73c6b381 100644 --- a/patches/Purpur/patches/server/0196-Config-to-change-max-number-of-bees.patch +++ b/patches/Purpur/patches/server/0195-Config-to-change-max-number-of-bees.patch @@ -18,7 +18,7 @@ index 80083a6666a28372946cf0e68ded44d075357f7d..58bf1008ab19340bce5111e006a8de0e public TileEntityBeehive() { super(TileEntityTypes.BEEHIVE); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index b410d38a431f79971ca183b476115d9e85e1cd6e..c0ef121956ad42bbb555eb8ee6c46b1845dd9e0d 100644 +index 4947df56f3f7372dead7d5674d1327570dba00b0..7ff63f18000ddd9c14a61adbbbb941740dbe2432 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -213,6 +213,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0197-Configurable-damage-settings-for-magma-blocks.patch b/patches/Purpur/patches/server/0196-Configurable-damage-settings-for-magma-blocks.patch similarity index 100% rename from patches/Purpur/patches/server/0197-Configurable-damage-settings-for-magma-blocks.patch rename to patches/Purpur/patches/server/0196-Configurable-damage-settings-for-magma-blocks.patch diff --git a/patches/Purpur/patches/server/0198-Config-for-wither-explosion-radius.patch b/patches/Purpur/patches/server/0197-Config-for-wither-explosion-radius.patch similarity index 100% rename from patches/Purpur/patches/server/0198-Config-for-wither-explosion-radius.patch rename to patches/Purpur/patches/server/0197-Config-for-wither-explosion-radius.patch diff --git a/patches/Purpur/patches/server/0199-Add-credits-command.patch b/patches/Purpur/patches/server/0198-Add-credits-command.patch similarity index 98% rename from patches/Purpur/patches/server/0199-Add-credits-command.patch rename to patches/Purpur/patches/server/0198-Add-credits-command.patch index b5b5e9a4..f39f8aa7 100644 --- a/patches/Purpur/patches/server/0199-Add-credits-command.patch +++ b/patches/Purpur/patches/server/0198-Add-credits-command.patch @@ -30,7 +30,7 @@ index 0161657748d398b6827ef8bc2b00b8a63bf37c55..aaff933c5bf619303842ce6b9a9dc979 public static final PacketPlayOutGameStateChange.a g = new PacketPlayOutGameStateChange.a(6); public static final PacketPlayOutGameStateChange.a h = new PacketPlayOutGameStateChange.a(7); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index c0ef121956ad42bbb555eb8ee6c46b1845dd9e0d..e0228fb58149ac8a9430d54157d5e92c93618f22 100644 +index 7ff63f18000ddd9c14a61adbbbb941740dbe2432..556e46d3c489445fb31325b3f5bda8793b8c3664 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -161,6 +161,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0200-Gamemode-extra-permissions.patch b/patches/Purpur/patches/server/0199-Gamemode-extra-permissions.patch similarity index 98% rename from patches/Purpur/patches/server/0200-Gamemode-extra-permissions.patch rename to patches/Purpur/patches/server/0199-Gamemode-extra-permissions.patch index 284d8b96..b91c2102 100644 --- a/patches/Purpur/patches/server/0200-Gamemode-extra-permissions.patch +++ b/patches/Purpur/patches/server/0199-Gamemode-extra-permissions.patch @@ -69,7 +69,7 @@ index eea551a68ba44927cb23560b898dd2c17f041442..1b049bdc897aaf1f0cb9b6dfeaf3a1e4 return this.g; } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index e0228fb58149ac8a9430d54157d5e92c93618f22..56424e45c04e7165c0671f74cdcd0147d1069af7 100644 +index 556e46d3c489445fb31325b3f5bda8793b8c3664..84dbd4d9ac11817febc2f3d801f211b374e089e2 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -211,6 +211,11 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0201-Config-for-changing-the-blocks-that-turn-into-paths.patch b/patches/Purpur/patches/server/0200-Config-for-changing-the-blocks-that-turn-into-paths.patch similarity index 100% rename from patches/Purpur/patches/server/0201-Config-for-changing-the-blocks-that-turn-into-paths.patch rename to patches/Purpur/patches/server/0200-Config-for-changing-the-blocks-that-turn-into-paths.patch diff --git a/patches/Purpur/patches/server/0202-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch b/patches/Purpur/patches/server/0201-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch similarity index 100% rename from patches/Purpur/patches/server/0202-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch rename to patches/Purpur/patches/server/0201-Allows-you-to-change-the-thrust-limit-of-a-piston-by.patch diff --git a/patches/Purpur/patches/server/0203-Allows-to-display-progress-messages-by-player-instea.patch b/patches/Purpur/patches/server/0202-Allows-change-broadcast-message-by-player.patch similarity index 56% rename from patches/Purpur/patches/server/0203-Allows-to-display-progress-messages-by-player-instea.patch rename to patches/Purpur/patches/server/0202-Allows-change-broadcast-message-by-player.patch index 5037fba4..f6738aa1 100644 --- a/patches/Purpur/patches/server/0203-Allows-to-display-progress-messages-by-player-instea.patch +++ b/patches/Purpur/patches/server/0202-Allows-change-broadcast-message-by-player.patch @@ -1,8 +1,7 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: DoctaEnkoda Date: Mon, 3 May 2021 01:33:14 +0200 -Subject: [PATCH] Allows to display progress messages by player instead to - everyone on the server. +Subject: [PATCH] Allows change broadcast message by player diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java @@ -33,17 +32,37 @@ index a1ee1066108985a95abddb03ff447b5a14f4f85f..4720644ae82f76f835f14c0b3a00e7b7 // Paper end } } +diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java +index 96520df171fadbc90c130555bd0c7139579f73d8..753fc239b9968d76541c536184b2039526d80005 100644 +--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java ++++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java +@@ -1038,7 +1038,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { + + }); + ScoreboardTeamBase scoreboardteambase = this.getScoreboardTeam(); +- ++ if (net.pl3x.purpur.PurpurConfig.deathMessageOnlyBroadcastToAffectedPlayer) this.sendMessage(ichatbasecomponent); else // Purpur + if (scoreboardteambase != null && scoreboardteambase.getDeathMessageVisibility() != ScoreboardTeamBase.EnumNameTagVisibility.ALWAYS) { + if (scoreboardteambase.getDeathMessageVisibility() == ScoreboardTeamBase.EnumNameTagVisibility.HIDE_FOR_OTHER_TEAMS) { + this.server.getPlayerList().a((EntityHuman) this, ichatbasecomponent); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 56424e45c04e7165c0671f74cdcd0147d1069af7..7e8654e4df61527f33d4fce2afdb14e29b90a4c2 100644 +index 84dbd4d9ac11817febc2f3d801f211b374e089e2..c735ebe56cf95edffb53f03a5c7a15bac446e583 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -287,4 +287,9 @@ public class PurpurConfig { +@@ -287,4 +287,16 @@ public class PurpurConfig { private static void tpsCatchup() { tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup); } + + public static boolean advancementOnlyBroadcastToAffectedPlayer = false; -+ private static void advancementSettings() { -+ advancementOnlyBroadcastToAffectedPlayer = getBoolean("settings.advancement.only-broadcast-to-affected-player", advancementOnlyBroadcastToAffectedPlayer ); ++ public static boolean deathMessageOnlyBroadcastToAffectedPlayer = false; ++ private static void broadcastSettings() { ++ if (version < 13) { ++ boolean oldValue = getBoolean("settings.advancement.only-broadcast-to-affected-player", false); ++ set("settings.broadcasts.advancement.only-broadcast-to-affected-player", oldValue); ++ set("settings.advancement.only-broadcast-to-affected-player", null); ++ } ++ advancementOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.advancement.only-broadcast-to-affected-player", advancementOnlyBroadcastToAffectedPlayer); ++ deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer); + } } diff --git a/patches/Purpur/patches/server/0204-Fix-SPIGOT-6278.patch b/patches/Purpur/patches/server/0203-Fix-SPIGOT-6278.patch similarity index 82% rename from patches/Purpur/patches/server/0204-Fix-SPIGOT-6278.patch rename to patches/Purpur/patches/server/0203-Fix-SPIGOT-6278.patch index 65fa0890..8c6800e8 100644 --- a/patches/Purpur/patches/server/0204-Fix-SPIGOT-6278.patch +++ b/patches/Purpur/patches/server/0203-Fix-SPIGOT-6278.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fix SPIGOT-6278 diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -index 17dde4532714378f7480f55991d94fc82e9a2b05..31de422d9ad5809653c0ce129ebc565d12352e65 100644 +index 1f2f836284c52cf3e7ff295a538f88d95e088761..c8bb46f7331b07364ebbf9fbea9a6d2583c3ccb6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/EntityPiglin.java -@@ -172,7 +172,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { +@@ -200,7 +200,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow { @Override public boolean isTypeNotPersistent(double d0) { diff --git a/patches/Purpur/patches/server/0205-Implement-Mob-Blindness.patch b/patches/Purpur/patches/server/0204-Implement-Mob-Blindness.patch similarity index 100% rename from patches/Purpur/patches/server/0205-Implement-Mob-Blindness.patch rename to patches/Purpur/patches/server/0204-Implement-Mob-Blindness.patch diff --git a/patches/Purpur/patches/server/0206-Hide-hidden-players-from-entity-selector.patch b/patches/Purpur/patches/server/0205-Hide-hidden-players-from-entity-selector.patch similarity index 97% rename from patches/Purpur/patches/server/0206-Hide-hidden-players-from-entity-selector.patch rename to patches/Purpur/patches/server/0205-Hide-hidden-players-from-entity-selector.patch index e555fb33..277923e3 100644 --- a/patches/Purpur/patches/server/0206-Hide-hidden-players-from-entity-selector.patch +++ b/patches/Purpur/patches/server/0205-Hide-hidden-players-from-entity-selector.patch @@ -60,7 +60,7 @@ index ee3123ac8a568d915ca4e1b42fc1196c269b287e..82125185233bdc59ef93d376e7327180 + // Purpur end } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 7e8654e4df61527f33d4fce2afdb14e29b90a4c2..61f385021e8e870a4cb1b9c2744105988c8b709a 100644 +index c735ebe56cf95edffb53f03a5c7a15bac446e583..9291b245dc7d7a8a7f458d9a447c03482c7fe22e 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -212,8 +212,10 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0207-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/Purpur/patches/server/0206-Config-for-health-to-impact-Creeper-explosion-radius.patch similarity index 100% rename from patches/Purpur/patches/server/0207-Config-for-health-to-impact-Creeper-explosion-radius.patch rename to patches/Purpur/patches/server/0206-Config-for-health-to-impact-Creeper-explosion-radius.patch diff --git a/patches/Purpur/patches/server/0208-Optimize-collisions.patch b/patches/Purpur/patches/server/0207-Optimize-collisions.patch similarity index 100% rename from patches/Purpur/patches/server/0208-Optimize-collisions.patch rename to patches/Purpur/patches/server/0207-Optimize-collisions.patch diff --git a/patches/Purpur/patches/server/0209-Iron-golem-poppy-calms-anger.patch b/patches/Purpur/patches/server/0208-Iron-golem-poppy-calms-anger.patch similarity index 100% rename from patches/Purpur/patches/server/0209-Iron-golem-poppy-calms-anger.patch rename to patches/Purpur/patches/server/0208-Iron-golem-poppy-calms-anger.patch diff --git a/patches/Purpur/patches/server/0210-Breedable-parrots.patch b/patches/Purpur/patches/server/0209-Breedable-parrots.patch similarity index 100% rename from patches/Purpur/patches/server/0210-Breedable-parrots.patch rename to patches/Purpur/patches/server/0209-Breedable-parrots.patch diff --git a/patches/Purpur/patches/server/0211-Configurable-powered-rail-boost-modifier.patch b/patches/Purpur/patches/server/0210-Configurable-powered-rail-boost-modifier.patch similarity index 100% rename from patches/Purpur/patches/server/0211-Configurable-powered-rail-boost-modifier.patch rename to patches/Purpur/patches/server/0210-Configurable-powered-rail-boost-modifier.patch diff --git a/patches/Purpur/patches/server/0212-Add-config-change-multiplier-critical-damage-value.patch b/patches/Purpur/patches/server/0211-Add-config-change-multiplier-critical-damage-value.patch similarity index 100% rename from patches/Purpur/patches/server/0212-Add-config-change-multiplier-critical-damage-value.patch rename to patches/Purpur/patches/server/0211-Add-config-change-multiplier-critical-damage-value.patch diff --git a/patches/Purpur/patches/server/0213-Option-to-disable-dragon-egg-teleporting.patch b/patches/Purpur/patches/server/0212-Option-to-disable-dragon-egg-teleporting.patch similarity index 100% rename from patches/Purpur/patches/server/0213-Option-to-disable-dragon-egg-teleporting.patch rename to patches/Purpur/patches/server/0212-Option-to-disable-dragon-egg-teleporting.patch diff --git a/patches/Purpur/patches/server/0214-Config-for-unverified-username-message.patch b/patches/Purpur/patches/server/0213-Config-for-unverified-username-message.patch similarity index 96% rename from patches/Purpur/patches/server/0214-Config-for-unverified-username-message.patch rename to patches/Purpur/patches/server/0213-Config-for-unverified-username-message.patch index 692faa90..424aca79 100644 --- a/patches/Purpur/patches/server/0214-Config-for-unverified-username-message.patch +++ b/patches/Purpur/patches/server/0213-Config-for-unverified-username-message.patch @@ -18,7 +18,7 @@ index 25437a993c02379fa43e5d46159cd9ba2aebf10f..f378d654a7fdd61ca31ca50ba45eff6a } } catch (AuthenticationUnavailableException authenticationunavailableexception) { diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 61f385021e8e870a4cb1b9c2744105988c8b709a..5a228c14a6e6335399f3436419deb51420082ad2 100644 +index 9291b245dc7d7a8a7f458d9a447c03482c7fe22e..d9b2fa1946d4b63e3a807154f485231937a0f2ea 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -164,6 +164,7 @@ public class PurpurConfig { diff --git a/patches/Purpur/patches/server/0214-Make-anvil-cumulative-cost-configurable.patch b/patches/Purpur/patches/server/0214-Make-anvil-cumulative-cost-configurable.patch new file mode 100644 index 00000000..21ee60ed --- /dev/null +++ b/patches/Purpur/patches/server/0214-Make-anvil-cumulative-cost-configurable.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: 12emin34 +Date: Fri, 21 May 2021 16:58:45 +0200 +Subject: [PATCH] Make anvil cumulative cost configurable + + +diff --git a/src/main/java/net/minecraft/world/inventory/ContainerAnvil.java b/src/main/java/net/minecraft/world/inventory/ContainerAnvil.java +index 77810fbb70bf2e1ad03c28c0d69ceaa63221d94c..e1cc66e382b2251e0fa60f777515d5a110f1684e 100644 +--- a/src/main/java/net/minecraft/world/inventory/ContainerAnvil.java ++++ b/src/main/java/net/minecraft/world/inventory/ContainerAnvil.java +@@ -337,7 +337,7 @@ public class ContainerAnvil extends ContainerAnvilAbstract { + } + + public static int d(int i) { +- return i * 2 + 1; ++ return net.pl3x.purpur.PurpurConfig.anvilCumulativeCost ? i * 2 + 1 : 0; + } + + public void a(String s) { +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index d9b2fa1946d4b63e3a807154f485231937a0f2ea..a580b021c7d9727b82a67dedfc509c286feb8c7e 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -225,6 +225,7 @@ public class PurpurConfig { + public static boolean enderChestPermissionRows = false; + public static boolean cryingObsidianValidForPortalFrame = false; + public static int beeInsideBeeHive = 3; ++ public static boolean anvilCumulativeCost = true; + private static void blockSettings() { + if (version < 3) { + boolean oldValue = getBoolean("settings.barrel.packed-barrels", true); +@@ -234,6 +235,7 @@ public class PurpurConfig { + set("settings.blocks.ender_chest.six-rows", oldValue); + set("settings.large-ender-chests", null); + } ++ anvilCumulativeCost = getBoolean("settings.blocks.anvil.cumulative-cost", anvilCumulativeCost); + barrelSixRows = getBoolean("settings.blocks.barrel.six-rows", barrelSixRows); + InventoryType.BARREL.setDefaultSize(barrelSixRows ? 54 : 27); + enderChestSixRows = getBoolean("settings.blocks.ender_chest.six-rows", enderChestSixRows); diff --git a/patches/Purpur/patches/server/0215-ShulkerBox-allow-oversized-stacks.patch b/patches/Purpur/patches/server/0215-ShulkerBox-allow-oversized-stacks.patch new file mode 100644 index 00000000..85bda9da --- /dev/null +++ b/patches/Purpur/patches/server/0215-ShulkerBox-allow-oversized-stacks.patch @@ -0,0 +1,52 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Thu, 27 May 2021 04:04:23 -0500 +Subject: [PATCH] ShulkerBox allow oversized stacks + +This fixes PaperMC/Paper#4748 where breaking a shulkerbox in survival mode +with oversized itemstacks would cause a "chunk ban". This fixes it by always +creating an itemstack using the TileEntity's NBT data (how it handles it for +creative players) instead of routing it through the LootableBuilder. + +diff --git a/src/main/java/net/minecraft/server/level/PlayerInteractManager.java b/src/main/java/net/minecraft/server/level/PlayerInteractManager.java +index 7302554063ac7b5dedaff895cba33b70234008e6..151da6c134f908d9037fddc5b54e71b069680e56 100644 +--- a/src/main/java/net/minecraft/server/level/PlayerInteractManager.java ++++ b/src/main/java/net/minecraft/server/level/PlayerInteractManager.java +@@ -440,7 +440,7 @@ public class PlayerInteractManager { + block.postBreak(this.world, blockposition, iblockdata); + } + +- if (this.isCreative()) { ++ if (this.isCreative() || (world.purpurConfig.shulkerBoxAllowOversizedStacks && block instanceof net.minecraft.world.level.block.BlockShulkerBox)) { // Purpur + // return true; // CraftBukkit + } else { + ItemStack itemstack = this.player.getItemInMainHand(); +diff --git a/src/main/java/net/minecraft/world/level/block/BlockShulkerBox.java b/src/main/java/net/minecraft/world/level/block/BlockShulkerBox.java +index 2c1c6562efe8cdc079b4e353144d20c1e46355c5..1083060cc3e0168d362851c34a2f38bf93c6a5fe 100644 +--- a/src/main/java/net/minecraft/world/level/block/BlockShulkerBox.java ++++ b/src/main/java/net/minecraft/world/level/block/BlockShulkerBox.java +@@ -110,7 +110,7 @@ public class BlockShulkerBox extends BlockTileEntity { + if (tileentity instanceof TileEntityShulkerBox) { + TileEntityShulkerBox tileentityshulkerbox = (TileEntityShulkerBox) tileentity; + +- if (!world.isClientSide && entityhuman.isCreative() && !tileentityshulkerbox.isEmpty()) { ++ if (!world.isClientSide && (world.purpurConfig.shulkerBoxAllowOversizedStacks || entityhuman.isCreative()) && !tileentityshulkerbox.isEmpty()) { + ItemStack itemstack = b(this.c()); + NBTTagCompound nbttagcompound = tileentityshulkerbox.e(new NBTTagCompound()); + +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index cda80cf8d2556defd1453b473aca76bf7c014794..0afe0d9c0b9d4c7abc6f65938d8fd147df52f880 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -630,6 +630,11 @@ public class PurpurWorldConfig { + } + } + ++ public boolean shulkerBoxAllowOversizedStacks = false; ++ private void shulkerBoxSettings() { ++ shulkerBoxAllowOversizedStacks = getBoolean("blocks.shulker_box.allow-oversized-stacks", shulkerBoxAllowOversizedStacks); ++ } ++ + public boolean signAllowColors = false; + public boolean signRightClickEdit = false; + private void signSettings() { diff --git a/patches/Purpur/patches/server/0216-Bee-can-work-when-raining-or-at-night.patch b/patches/Purpur/patches/server/0216-Bee-can-work-when-raining-or-at-night.patch new file mode 100644 index 00000000..78ac47e5 --- /dev/null +++ b/patches/Purpur/patches/server/0216-Bee-can-work-when-raining-or-at-night.patch @@ -0,0 +1,54 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: DoctaEnkoda +Date: Thu, 27 May 2021 06:46:30 +0200 +Subject: [PATCH] Bee can work when raining or at night + + +diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java +index e425e093c233a21e5ef457e3a94defe8b74261d2..4da4fadbd4a036b316d554de20c0d30d35cc206b 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java ++++ b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java +@@ -356,7 +356,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB + + private boolean fd() { + if (this.cannotEnterHiveTicks <= 0 && !this.bC.k() && !this.hasStung() && this.getGoalTarget() == null) { +- boolean flag = this.canPollinate() || this.world.isRaining() || this.world.isNight() || this.hasNectar(); ++ boolean flag = this.canPollinate() || (this.world.isRaining() && !this.world.purpurConfig.beeCanWorkInRain) || (this.world.isNight() && !this.world.purpurConfig.beeCanWorkAtNight) || this.hasNectar(); // Purpur + + return flag && !this.ff(); + } else { +diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +index 58bf1008ab19340bce5111e006a8de0e7f39e0e5..6fbd8ee31c517cd08ce4d1374a278dd748f9933e 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +@@ -181,7 +181,7 @@ public class TileEntityBeehive extends TileEntity implements ITickable { + } + + private boolean releaseBee(IBlockData iblockdata, TileEntityBeehive.HiveBee tileentitybeehive_hivebee, @Nullable List list, TileEntityBeehive.ReleaseStatus tileentitybeehive_releasestatus, boolean force) { +- if (!force && (this.world.isNight() || this.world.isRaining()) && tileentitybeehive_releasestatus != TileEntityBeehive.ReleaseStatus.EMERGENCY) { ++ if (!force && ((this.world.isNight() && !this.world.purpurConfig.beeCanWorkAtNight) || (this.world.isRaining() && !this.world.purpurConfig.beeCanWorkInRain)) && tileentitybeehive_releasestatus != TileEntityBeehive.ReleaseStatus.EMERGENCY) { // Purpur + // CraftBukkit end + return false; + } else { +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 0afe0d9c0b9d4c7abc6f65938d8fd147df52f880..bd72ed2da22c1d1121ea7ca04e163979baa05b27 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -726,6 +726,8 @@ public class PurpurWorldConfig { + public double beeMaxY = 256D; + public int beeBreedingTicks = 6000; + public double beeMaxHealth = 10.0D; ++ public boolean beeCanWorkAtNight = false; ++ public boolean beeCanWorkInRain = false; + private void beeSettings() { + beeRidable = getBoolean("mobs.bee.ridable", beeRidable); + beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); +@@ -737,6 +739,8 @@ public class PurpurWorldConfig { + set("mobs.bee.attributes.max_health", oldValue); + } + beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); ++ beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); ++ beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); + } + + public boolean blazeRidable = false; diff --git a/patches/Purpur/patches/server/0217-API-for-any-mob-to-burn-daylight.patch b/patches/Purpur/patches/server/0217-API-for-any-mob-to-burn-daylight.patch new file mode 100644 index 00000000..f52741e1 --- /dev/null +++ b/patches/Purpur/patches/server/0217-API-for-any-mob-to-burn-daylight.patch @@ -0,0 +1,369 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Kerllenevich +Date: Tue, 25 May 2021 16:31:09 -0400 +Subject: [PATCH] API for any mob to burn daylight + +Co-authored by: Encode42 + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index 4f0b8d966ba38672a39f95d1f6f55f95cdc8d334..773b4cd8e0da1c0aff0c6efde6bd9e682b758a6e 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -1642,7 +1642,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne + } + } + +- public float aR() { ++ public float getBrightness() { return this.aR(); } public float aR() { // Purpur - OBFHELPER + BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(this.locX(), 0.0D, this.locZ()); + + if (this.world.isLoaded(blockposition_mutableblockposition)) { +@@ -3866,5 +3866,17 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne + public boolean processClick(EnumHand hand) { + return false; + } ++ ++ // Purpur start - copied from EntityInsentient ++ public boolean isInDaylight() { ++ if (this.world.isDay() && !this.world.isClientSide) { ++ float brightness = this.getBrightness(); ++ BlockPosition blockposition = this.getVehicle() instanceof EntityBoat ? (new BlockPosition(this.locX(), (double) Math.round(this.locY()), this.locZ())).up() : new BlockPosition(this.locX(), (double) Math.round(this.locY()), this.locZ()); ++ ++ return brightness > 0.5F && this.random.nextFloat() * 30.0F < (brightness - 0.4F) * 2.0F && this.world.isSkyVisible(blockposition); ++ } ++ ++ return false; ++ } + // Purpur end + } +diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java +index b69bc34bfc4873dc2214aea19bfa877c37740418..b895288e0aa49e5a1222f7c5897f3dc43ff946fe 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java ++++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java +@@ -1687,6 +1687,7 @@ public abstract class EntityInsentient extends EntityLiving { + + public boolean isInDaylight() { return this.eG(); } // Paper - OBFHELPER + protected boolean eG() { ++ /* // Purpur start - moved to Entity + if (this.world.isDay() && !this.world.isClientSide) { + float f = this.aR(); + BlockPosition blockposition = this.getVehicle() instanceof EntityBoat ? (new BlockPosition(this.locX(), (double) Math.round(this.locY()), this.locZ())).up() : new BlockPosition(this.locX(), (double) Math.round(this.locY()), this.locZ()); +@@ -1697,6 +1698,9 @@ public abstract class EntityInsentient extends EntityLiving { + } + + return false; ++ */ ++ return super.isInDaylight(); ++ // Purpur end + } + + @Override +diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java +index 9e0c00bf0c1fb41d09de39d2a3831b6bc6658259..6b65b17d6b100adacd628d08a24a68164d2bb9aa 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java ++++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java +@@ -238,6 +238,7 @@ public abstract class EntityLiving extends Entity { + public boolean canPickUpLoot; + public org.bukkit.craftbukkit.entity.CraftLivingEntity getBukkitLivingEntity() { return (org.bukkit.craftbukkit.entity.CraftLivingEntity) super.getBukkitEntity(); } // Paper + public boolean silentDeath = false; // Paper - mark entity as dying silently for cancellable death event ++ protected boolean shouldBurnInDay; public boolean shouldBurnInDay() { return this.shouldBurnInDay; } public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } // Purpur + + @Override + public float getBukkitYaw() { +@@ -276,6 +277,8 @@ public abstract class EntityLiving extends Entity { + DynamicOpsNBT dynamicopsnbt = DynamicOpsNBT.a; + + this.bg = this.a(new Dynamic(dynamicopsnbt, dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), dynamicopsnbt.emptyMap())))); ++ ++ this.shouldBurnInDay = false; // Purpur + } + + protected void initAttributes() {} // Purpur +@@ -709,6 +712,7 @@ public abstract class EntityLiving extends Entity { + dataresult.resultOrPartial(logger::error).ifPresent((nbtbase) -> { + nbttagcompound.set("Brain", nbtbase); + }); ++ nbttagcompound.setBoolean("Purpur.ShouldBurnInDay", shouldBurnInDay); // Purpur + } + + @Override +@@ -784,6 +788,11 @@ public abstract class EntityLiving extends Entity { + this.bg = this.a(new Dynamic(DynamicOpsNBT.a, nbttagcompound.get("Brain"))); + } + ++ // Purpur start ++ if (nbttagcompound.hasKey("Purpur.ShouldBurnInDay")) { ++ shouldBurnInDay = nbttagcompound.getBoolean("Purpur.ShouldBurnInDay"); ++ } ++ // Purpur end + } + + // CraftBukkit start +@@ -3017,6 +3026,31 @@ public abstract class EntityLiving extends Entity { + this.damageEntity(DamageSource.DROWN, 1.0F); + } + ++ // Purpur start - copied from EntityZombie ++ if (this.isAlive()) { ++ boolean flag = this.shouldBurnInDay() && this.isInDaylight(); ++ ++ if (flag) { ++ ItemStack itemstack = this.getEquipment(EnumItemSlot.HEAD); ++ ++ if (!itemstack.isEmpty()) { ++ if (itemstack.isDamageableItem()) { ++ itemstack.setDamage(itemstack.getDamage() + this.random.nextInt(2)); ++ if (itemstack.getDamage() >= itemstack.getMaxDamage()) { ++ this.broadcastItemBreak(EnumItemSlot.HEAD); ++ this.setSlot(EnumItemSlot.HEAD, ItemStack.NULL_ITEM); ++ } ++ } ++ ++ flag = false; ++ } ++ ++ if (flag) { ++ this.setOnFire(8); ++ } ++ } ++ } ++ // Purpur end + } + + public boolean isSensitiveToWater() { return dO(); } // Purpur - OBFHELPER +diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java +index fe07d9798eaae670e218d25fe23256c87c41d686..be5837c4f515cd2587bea22b14a3833a81e7b560 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EntityPhantom.java +@@ -67,6 +67,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { + this.f = 5; + this.moveController = new EntityPhantom.g(this); + this.lookController = new EntityPhantom.f(this); ++ this.setShouldBurnInDay(true); // Purpur + } + + // Purpur start +@@ -231,7 +232,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { + + @Override + public void movementTick() { +- if (this.isAlive() && !hasPurpurRider() && (((shouldBurnInDay || world.purpurConfig.phantomBurnInDaylight) && this.isInDaylight()) || (world.purpurConfig.phantomBurnInLight > 0 && world.getLightLevel(new BlockPosition(this)) >= world.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur ++ if (this.isAlive() && !hasPurpurRider() && (((this.shouldBurnInDay() || world.purpurConfig.phantomBurnInDaylight) && this.isInDaylight()) || (world.purpurConfig.phantomBurnInLight > 0 && world.getLightLevel(new BlockPosition(this)) >= world.purpurConfig.phantomBurnInLight))) { // Paper - Configurable Burning // Purpur + this.setOnFire(8); + } + +@@ -262,7 +263,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { + if (nbttagcompound.hasUUID("Paper.SpawningEntity")) { + this.spawningEntity = nbttagcompound.getUUID("Paper.SpawningEntity"); + } +- this.shouldBurnInDay = nbttagcompound.getBoolean("Paper.ShouldBurnInDay"); ++ // this.shouldBurnInDay = nbttagcompound.getBoolean("Paper.ShouldBurnInDay"); // Purpur - implemented in EntityLiving + // Paper end + } + +@@ -277,7 +278,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { + if (this.spawningEntity != null) { + nbttagcompound.setUUID("Paper.SpawningEntity", this.spawningEntity); + } +- nbttagcompound.setBoolean("Paper.ShouldBurnInDay", shouldBurnInDay); ++ // nbttagcompound.setBoolean("Paper.ShouldBurnInDay", shouldBurnInDay); // Purpur - implemented in EntityLiving + // Paper end + } + +@@ -333,7 +334,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { + } + public void setSpawningEntity(java.util.UUID entity) { this.spawningEntity = entity; } + +- private boolean shouldBurnInDay = true; ++ // private boolean shouldBurnInDay = true; // Purpur - moved to EntityLiving - keep methods for ABI compatibility + public boolean shouldBurnInDay() { return shouldBurnInDay; } + public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } + // Paper end +diff --git a/src/main/java/net/minecraft/world/entity/monster/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/world/entity/monster/EntitySkeletonAbstract.java +index 81059fc3fc22f251b5b08f0cd6814a992cff6b1e..1676fbb80e5573c2591c1de7a6a858cf4824b48f 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EntitySkeletonAbstract.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EntitySkeletonAbstract.java +@@ -67,6 +67,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR + protected EntitySkeletonAbstract(EntityTypes entitytypes, World world) { + super(entitytypes, world); + this.eL(); ++ this.setShouldBurnInDay(true); // Purpur + } + + @Override +@@ -102,13 +103,14 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR + } + + // Paper start +- private boolean shouldBurnInDay = true; ++ // private boolean shouldBurnInDay = true; // Purpur - moved to EntityLiving - keep methods for ABI compatibility + public boolean shouldBurnInDay() { return shouldBurnInDay; } + public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } + // Paper end + + @Override + public void movementTick() { ++ /* // Purpur start - implemented in EntityLiving + boolean flag = shouldBurnInDay && this.eG(); // Paper - Configurable Burning + + if (flag) { +@@ -130,6 +132,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR + this.setOnFire(8); + } + } ++ */ // Purpur end + + super.movementTick(); + } +@@ -233,14 +236,14 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR + public void loadData(NBTTagCompound nbttagcompound) { + super.loadData(nbttagcompound); + this.eL(); +- this.shouldBurnInDay = nbttagcompound.getBoolean("Paper.ShouldBurnInDay"); // Paper ++ // this.shouldBurnInDay = nbttagcompound.getBoolean("Paper.ShouldBurnInDay"); // Paper // Purpur - implemented in EntityLiving + } + + // Paper start + @Override + public void saveData(NBTTagCompound nbttagcompound) { + super.saveData(nbttagcompound); +- nbttagcompound.setBoolean("Paper.ShouldBurnInDay", shouldBurnInDay); ++ // nbttagcompound.setBoolean("Paper.ShouldBurnInDay", shouldBurnInDay); // Purpur - implemented in EntityLiving + } + // Paper end + +diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java b/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java +index 7112db516e62ca75a445482005c524129b84f54c..bce7b674ef4450c1f6e932cba1b06ae8730cedfe 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java +@@ -97,11 +97,12 @@ public class EntityZombie extends EntityMonster { + private int bt; + public int drownedConversionTime; + private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field +- private boolean shouldBurnInDay = true; // Paper ++ // private boolean shouldBurnInDay = true; // Paper // Purpur - implemented in EntityLiving + + public EntityZombie(EntityTypes entitytypes, World world) { + super(entitytypes, world); + this.br = new PathfinderGoalBreakDoor(this, com.google.common.base.Predicates.in(world.paperConfig.zombieBreakDoors)); // Paper ++ this.setShouldBurnInDay(true); // Purpur + } + + public EntityZombie(World world) { +@@ -288,6 +289,7 @@ public class EntityZombie extends EntityMonster { + + @Override + public void movementTick() { ++ /* // Purpur start - implemented in EntityLiving + if (this.isAlive()) { + boolean flag = this.T_() && this.eG(); + +@@ -311,6 +313,7 @@ public class EntityZombie extends EntityMonster { + } + } + } ++ */ // Purpur end + + super.movementTick(); + } +@@ -479,7 +482,7 @@ public class EntityZombie extends EntityMonster { + nbttagcompound.setBoolean("CanBreakDoors", this.eU()); + nbttagcompound.setInt("InWaterTime", this.isInWater() ? this.bt : -1); + nbttagcompound.setInt("DrownedConversionTime", this.isDrownConverting() ? this.drownedConversionTime : -1); +- nbttagcompound.setBoolean("Paper.ShouldBurnInDay", shouldBurnInDay); // Paper ++ // nbttagcompound.setBoolean("Paper.ShouldBurnInDay", shouldBurnInDay); // Paper // Purpur - implemented in EntityLiving + } + + @Override +@@ -491,11 +494,13 @@ public class EntityZombie extends EntityMonster { + if (nbttagcompound.hasKeyOfType("DrownedConversionTime", 99) && nbttagcompound.getInt("DrownedConversionTime") > -1) { + this.startDrownedConversion(nbttagcompound.getInt("DrownedConversionTime")); + } ++ /* // Purpur start - implemented in EntityLiving + // Paper start + if (nbttagcompound.hasKey("Paper.ShouldBurnInDay")) { + shouldBurnInDay = nbttagcompound.getBoolean("Paper.ShouldBurnInDay"); + } + // Paper end ++ */ // Purpur end - implemented in EntityLiving + } + + @Override +diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZombieHusk.java b/src/main/java/net/minecraft/world/entity/monster/EntityZombieHusk.java +index c060d93d9f3332b514a1400dec14f2035c058e48..2d249337be7f8c1feed204f5a1b47f278d68e867 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EntityZombieHusk.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EntityZombieHusk.java +@@ -21,6 +21,7 @@ public class EntityZombieHusk extends EntityZombie { + + public EntityZombieHusk(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.setShouldBurnInDay(false); // Purpur + } + + // Purpur start +@@ -65,7 +66,7 @@ public class EntityZombieHusk extends EntityZombie { + + @Override + protected boolean T_() { +- return false; ++ return this.shouldBurnInDay; // Purpur - moved to EntityLiving - keep methods for ABI compatibility + } + + @Override +diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java +index 677f866dfaab653b05c693663adaeb2465117a55..81ceeff37f7e03eead177cbd49f79a74be3aeeb2 100644 +--- a/src/main/java/net/minecraft/world/item/ItemStack.java ++++ b/src/main/java/net/minecraft/world/item/ItemStack.java +@@ -458,7 +458,7 @@ public final class ItemStack { + return this.getMaxStackSize() > 1 && (!this.e() || !this.f()); + } + +- public boolean e() { ++ public boolean isDamageableItem() { return e(); } public boolean e() { // Purpur - OBFHELPER + if (!this.j && this.getItem().getMaxDurability() > 0) { + NBTTagCompound nbttagcompound = this.getTag(); + +@@ -489,7 +489,7 @@ public final class ItemStack { + this.getOrCreateTag().setInt("Damage", Math.max(0, i)); + } + +- public int h() { ++ public int getMaxDamage() { return h(); } public int h() { // Purpur - OBFHELPER + return this.getItem().getMaxDurability(); + } + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +index af69023b241560031f6aa116561d7407b2502578..f0a16fae2ddba2e3deeb09f04c02972495a53137 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +@@ -1203,5 +1203,10 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { + entity.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); + return !entity.valid && entity.world.addEntity(entity, spawnReason); + } ++ ++ @Override ++ public boolean isInDaylight() { ++ return getHandle().isInDaylight(); ++ } + // Purpur end + } +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +index cf79f39fc8071d86f7455681e41b3eab1826cb35..bbc88fa176612e265534a5432b2a73779bb8921b 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +@@ -876,5 +876,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + if (slot == null) return; + getHandle().broadcastItemBreak(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot)); + } ++ ++ @Override ++ public boolean shouldBurnInDay() { ++ return getHandle().shouldBurnInDay(); ++ } ++ ++ @Override ++ public void setShouldBurnInDay(boolean shouldBurnInDay) { ++ getHandle().setShouldBurnInDay(shouldBurnInDay); ++ } + // Purpur end + } diff --git a/patches/Purpur/patches/server/0218-Fix-advancement-triggers-on-entity-death.patch b/patches/Purpur/patches/server/0218-Fix-advancement-triggers-on-entity-death.patch new file mode 100644 index 00000000..d9998d87 --- /dev/null +++ b/patches/Purpur/patches/server/0218-Fix-advancement-triggers-on-entity-death.patch @@ -0,0 +1,209 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Fri, 28 May 2021 12:24:45 -0500 +Subject: [PATCH] Fix advancement triggers on entity death + +This fixes PaperMC/Paper#3729 and PaperMC/Paper#4252 + +Paper changes logical order revolving around making the EntityDeathEvent +cancellable. Reordering this logic has ended up with entity equipment being +cleared _before_ advancement criteria can run, causing things like killing +raid captains not giving the voluntary exile advancement. + +This fixes the issue by storing a copy of the equipment in a new field just +before doing the death event logic where the equipment is cleared and then +restoring it back to the entity just before the criterion triggers run and +then finally clearing the equipment again right after the criterion is done. + +diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java +index b895288e0aa49e5a1222f7c5897f3dc43ff946fe..e4f5a5ffd25d4d4e427938a633675be46805af66 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java ++++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java +@@ -106,9 +106,9 @@ public abstract class EntityInsentient extends EntityLiving { + public PathfinderGoalSelector targetSelector; + private EntityLiving goalTarget; + private final EntitySenses bo; +- private final NonNullList bp; ++ private final NonNullList bp; public List getHandEquipment() { return this.bp; } // Purpur - OBFHELPER + public final float[] dropChanceHand; +- private final NonNullList bq; ++ private final NonNullList bq; public List getArmorEquipment() { return this.bq; } // Purpur - OBFHELPER + public final float[] dropChanceArmor; + // private boolean canPickUpLoot; // CraftBukkit - moved up to EntityLiving + public boolean persistent; +@@ -1013,6 +1013,41 @@ public abstract class EntityInsentient extends EntityLiving { + } + } + ++ // Purpur start ++ public List> cloneEquipment() { ++ List> list = new java.util.ArrayList<>(); ++ List handItems = new java.util.ArrayList<>(); ++ for (ItemStack item : this.getHandEquipment()) { ++ handItems.add(item.cloneItemStack()); ++ } ++ list.add(handItems); ++ List armorItems = new java.util.ArrayList<>(); ++ for (ItemStack item : this.getArmorEquipment()) { ++ armorItems.add(item.cloneItemStack()); ++ } ++ list.add(armorItems); ++ return list; ++ } ++ ++ public void restoreEquipment(List> list) { ++ this.getHandEquipment().clear(); ++ List handItems = list.get(0); ++ for (int i = 0; i < handItems.size(); i++) { ++ this.getHandEquipment().set(i, handItems.get(1)); ++ } ++ this.getArmorEquipment().clear(); ++ List armorItems = list.get(1); ++ for (int i = 0; i < armorItems.size(); i++) { ++ this.getArmorEquipment().set(i, armorItems.get(i)); ++ } ++ } ++ ++ public void clearEquipment() { ++ this.getHandEquipment().clear(); ++ this.getArmorEquipment().clear(); ++ } ++ // Purpur end ++ + @Override + public void setSlot(EnumItemSlot enumitemslot, ItemStack itemstack) { + switch (enumitemslot.a()) { +diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java +index 6b65b17d6b100adacd628d08a24a68164d2bb9aa..2f7352d7ae99ecdefe0f7b56cebf008906607d4d 100644 +--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java ++++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java +@@ -1560,10 +1560,13 @@ public abstract class EntityLiving extends Entity { + } + + // Paper start ++ List> equipmentSnapshotBefore = this.cloneEquipment(); // Purpur + org.bukkit.event.entity.EntityDeathEvent deathEvent = this.d(damagesource); + if (deathEvent == null || !deathEvent.isCancelled()) { + if (this.getKillCount() >= 0 && entityliving != null) { ++ this.restoreEquipment(equipmentSnapshotBefore); // Purpur + entityliving.runKillTrigger(this, this.getKillCount(), damagesource); ++ this.clearEquipment(); // Purpur + } + if (this.isSleeping()) { + this.entityWakeup(); +@@ -2274,6 +2277,12 @@ public abstract class EntityLiving extends Entity { + + public abstract ItemStack getEquipment(EnumItemSlot enumitemslot); + ++ // Purpur start ++ public abstract List> cloneEquipment(); ++ public abstract void restoreEquipment(List> list); ++ public abstract void clearEquipment(); ++ // Purpur end ++ + // CraftBukkit start + public void setSlot(EnumItemSlot enumitemslot, ItemStack itemstack, boolean silent) { + this.setSlot(enumitemslot, itemstack); +diff --git a/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java +index ddc1c3383cdc32fa832485f3922c74185731557a..e28a2d983ae7b83f435c9dea606a92e2fbd3391a 100644 +--- a/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java ++++ b/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java +@@ -171,6 +171,41 @@ public class EntityArmorStand extends EntityLiving { + } + } + ++ // Purpur start ++ public List> cloneEquipment() { ++ List> list = new java.util.ArrayList<>(); ++ List handItems = new java.util.ArrayList<>(); ++ for (ItemStack item : this.handItems) { ++ handItems.add(item.cloneItemStack()); ++ } ++ list.add(handItems); ++ List armorItems = new java.util.ArrayList<>(); ++ for (ItemStack item : this.armorItems) { ++ armorItems.add(item.cloneItemStack()); ++ } ++ list.add(armorItems); ++ return list; ++ } ++ ++ public void restoreEquipment(List> list) { ++ this.handItems.clear(); ++ List handItems = list.get(0); ++ for (int i = 0; i < handItems.size(); i++) { ++ this.handItems.set(i, handItems.get(1)); ++ } ++ this.armorItems.clear(); ++ List armorItems = list.get(1); ++ for (int i = 0; i < armorItems.size(); i++) { ++ this.armorItems.set(i, armorItems.get(1)); ++ } ++ } ++ ++ public void clearEquipment() { ++ this.handItems.clear(); ++ this.armorItems.clear(); ++ } ++ // Purpur end ++ + @Override + public void setSlot(EnumItemSlot enumitemslot, ItemStack itemstack) { + // CraftBukkit start +diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +index abac4b996c7935ac6115a9ad96191f2a57afc95f..0443aaa9fc4058cc4ce61977a89cdf6ea6452b65 100644 +--- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java ++++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +@@ -1892,6 +1892,52 @@ public abstract class EntityHuman extends EntityLiving { + return enumitemslot == EnumItemSlot.MAINHAND ? this.inventory.getItemInHand() : (enumitemslot == EnumItemSlot.OFFHAND ? (ItemStack) this.inventory.extraSlots.get(0) : (enumitemslot.a() == EnumItemSlot.Function.ARMOR ? (ItemStack) this.inventory.armor.get(enumitemslot.b()) : ItemStack.b)); + } + ++ // Purpur start ++ public List> cloneEquipment() { ++ List> list = new java.util.ArrayList<>(); ++ List invItems = new java.util.ArrayList<>(); ++ for (ItemStack item : this.inventory.items) { ++ invItems.add(item.cloneItemStack()); ++ } ++ list.add(invItems); ++ List armorItems = new java.util.ArrayList<>(); ++ for (ItemStack item : this.inventory.armor) { ++ armorItems.add(item.cloneItemStack()); ++ } ++ list.add(armorItems); ++ List extraItems = new java.util.ArrayList<>(); ++ for (ItemStack item : this.inventory.extraSlots) { ++ extraItems.add(item.cloneItemStack()); ++ } ++ list.add(extraItems); ++ return list; ++ } ++ ++ public void restoreEquipment(List> list) { ++ this.inventory.items.clear(); ++ List invItems = list.get(0); ++ for (int i = 0; i < invItems.size(); i++) { ++ this.inventory.items.set(i, invItems.get(1)); ++ } ++ this.inventory.armor.clear(); ++ List armorItems = list.get(1); ++ for (int i = 0; i < armorItems.size(); i++) { ++ this.inventory.armor.set(i, armorItems.get(1)); ++ } ++ this.inventory.extraSlots.clear(); ++ List extraItems = list.get(2); ++ for (int i = 0; i < extraItems.size(); i++) { ++ this.inventory.extraSlots.set(i, extraItems.get(1)); ++ } ++ } ++ ++ public void clearEquipment() { ++ this.inventory.items.clear(); ++ this.inventory.armor.clear(); ++ this.inventory.extraSlots.clear(); ++ } ++ // Purpur end ++ + @Override + public void setSlot(EnumItemSlot enumitemslot, ItemStack itemstack) { + // CraftBukkit start diff --git a/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch b/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch index 53846424..324c6966 100644 --- a/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch +++ b/patches/Tuinity/patches/api/0003-Per-player-viewdistances.patch @@ -39,10 +39,10 @@ index a1496fe00a2d5ba6c1af054d4327f868b2cd7344..6ca9aa2c438810b5537dc196b3fd89b0 // Spigot start diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 34b51466ffb281b05f531b3f7deda245ae7fd96a..4a4f041c6acfd335871fa67d6d1c7f723229c8a7 100644 +index a4b236d75e77176a163094edd31f81725bbf4eca..27848ad0eee667e515685a5f1cef3e9bfc7a3f53 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -1783,23 +1783,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -1791,23 +1791,63 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Gets the view distance for this player * * @return the player's view distance diff --git a/patches/Tuinity/patches/server/0002-Brand-changes.patch b/patches/Tuinity/patches/server/0002-Brand-changes.patch index c15cd7c1..a963d536 100644 --- a/patches/Tuinity/patches/server/0002-Brand-changes.patch +++ b/patches/Tuinity/patches/server/0002-Brand-changes.patch @@ -40,10 +40,10 @@ index a0f53c9eff04a40780b3ba568dbfc5bbe9bd8504..3bc5cd1e53dd7c94b948e7f57f0dc8e0 throwable = throwable1; throw throwable1; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 848219f43b2bcb2d79147107c68df52efd46d461..2f71aef1a4b21ec83e36c91eca687b1ade9e1343 100644 +index 03823e95e1fbf465ff5b3b2c5743f1beb25de083..a31ae036fba3873211805c8ced5e456e0aa7e26b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1582,7 +1582,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant void mergeSortedSets(final java.util.function.Consumer consumer, final java.util.Comparator comparator, final java.util.SortedSet...sets) { final ObjectRBTreeSet all = new ObjectRBTreeSet<>(comparator); diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2f71aef1a4b21ec83e36c91eca687b1ade9e1343..0e23428360a1709c198845b1e58b1b54ccfcc48d 100644 +index a31ae036fba3873211805c8ced5e456e0aa7e26b..b310a066c386aef1b227515f053b06094ebc0373 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -268,6 +268,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant processQueue = new java.util.concurrent.ConcurrentLinkedQueue(); public int autosavePeriod; public boolean serverAutoSave = false; // Paper -@@ -1101,6 +1102,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant { @@ -148,7 +148,7 @@ index 0515a01dbd1863b11b1418550aba82d8557f0668..89892c22787e9e1e070d0aca4d20ac7e return !this.canOversleep(); }); isOversleep = false;MinecraftTimings.serverOversleep.stopTiming(); -@@ -1424,16 +1480,16 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant(), diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 89892c22787e9e1e070d0aca4d20ac7ecc2ccb84..2b9b5db565161884539175d975d9fd8253b8de7b 100644 +index c57c818c5aab61b66d8b40065c4d667b67e6d329..746be904a8408c2fa718d6e8352e50315f7bf362 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1454,6 +1454,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant -Date: Wed, 13 May 2020 09:59:12 -0700 -Subject: [PATCH] Use entity ticking chunk map for entity tracker - -Should bring us back in-line with tracker performance -before the loaded entity list reversion. - -diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 7574546475be5ca800fd6792ec2fdba092a50d69..4d230d2df0e33e6f3da089ea9610cc9f0f950d3f 100644 ---- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -@@ -2161,22 +2161,25 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { - private final void processTrackQueue() { - this.world.timings.tracker1.startTiming(); - try { -- for (EntityTracker tracker : this.trackedEntities.values()) { -- // update tracker entry -- tracker.updatePlayers(tracker.tracker.getPlayersInTrackRange()); -+ com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator iterator = this.world.getChunkProvider().entityTickingChunks.iterator(); -+ try { -+ while (iterator.hasNext()) { -+ Chunk chunk = iterator.next(); -+ Entity[] entities = chunk.entities.getRawData(); -+ for (int i = 0, len = chunk.entities.size(); i < len; ++i) { -+ Entity entity = entities[i]; -+ EntityTracker tracker = this.trackedEntities.get(entity.getId()); -+ if (tracker != null) { -+ tracker.updatePlayers(tracker.tracker.getPlayersInTrackRange()); -+ tracker.trackerEntry.tick(); -+ } -+ } - } -- } finally { -- this.world.timings.tracker1.stopTiming(); -- } -- -- -- this.world.timings.tracker2.startTiming(); -- try { -- for (EntityTracker tracker : this.trackedEntities.values()) { -- tracker.trackerEntry.tick(); -+ } finally { -+ iterator.finishedIterating(); - } - } finally { -- this.world.timings.tracker2.stopTiming(); -+ this.world.timings.tracker1.stopTiming(); - } - } - // Paper end - optimised tracker diff --git a/patches/Tuinity/patches/server/0029-Improve-async-tp-to-not-load-chunks-when-crossing-wo.patch b/patches/Tuinity/patches/server/0028-Improve-async-tp-to-not-load-chunks-when-crossing-wo.patch similarity index 100% rename from patches/Tuinity/patches/server/0029-Improve-async-tp-to-not-load-chunks-when-crossing-wo.patch rename to patches/Tuinity/patches/server/0028-Improve-async-tp-to-not-load-chunks-when-crossing-wo.patch diff --git a/patches/Tuinity/patches/server/0030-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch b/patches/Tuinity/patches/server/0029-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch similarity index 100% rename from patches/Tuinity/patches/server/0030-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch rename to patches/Tuinity/patches/server/0029-Revert-getChunkAt-Async-retaining-chunks-for-long-pe.patch diff --git a/patches/Tuinity/patches/server/0031-Rework-PlayerChunk-main-thread-checks.patch b/patches/Tuinity/patches/server/0030-Rework-PlayerChunk-main-thread-checks.patch similarity index 98% rename from patches/Tuinity/patches/server/0031-Rework-PlayerChunk-main-thread-checks.patch rename to patches/Tuinity/patches/server/0030-Rework-PlayerChunk-main-thread-checks.patch index e99bf860..b4620d6a 100644 --- a/patches/Tuinity/patches/server/0031-Rework-PlayerChunk-main-thread-checks.patch +++ b/patches/Tuinity/patches/server/0030-Rework-PlayerChunk-main-thread-checks.patch @@ -74,7 +74,7 @@ index f7deb4fe98ef9900acb276c7680d5a2da9661e8f..6b939d35e13fdc84fd3767e74eaf78c9 if (chunk != null) { playerchunkmap.callbackExecutor.execute(() -> { diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 4d230d2df0e33e6f3da089ea9610cc9f0f950d3f..d839a0267bc23f444294966bf29bd71861ea1301 100644 +index 7574546475be5ca800fd6792ec2fdba092a50d69..82522a3bcad4aba15595fff63052c722a52110d0 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -1355,7 +1355,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { diff --git a/patches/Tuinity/patches/server/0032-Allow-Entities-to-be-removed-from-a-world-while-tick.patch b/patches/Tuinity/patches/server/0031-Allow-Entities-to-be-removed-from-a-world-while-tick.patch similarity index 100% rename from patches/Tuinity/patches/server/0032-Allow-Entities-to-be-removed-from-a-world-while-tick.patch rename to patches/Tuinity/patches/server/0031-Allow-Entities-to-be-removed-from-a-world-while-tick.patch diff --git a/patches/Tuinity/patches/server/0033-Prevent-unload-calls-removing-tickets-for-sync-loads.patch b/patches/Tuinity/patches/server/0032-Prevent-unload-calls-removing-tickets-for-sync-loads.patch similarity index 100% rename from patches/Tuinity/patches/server/0033-Prevent-unload-calls-removing-tickets-for-sync-loads.patch rename to patches/Tuinity/patches/server/0032-Prevent-unload-calls-removing-tickets-for-sync-loads.patch diff --git a/patches/Tuinity/patches/server/0034-Optimise-collision-checking-in-player-move-packet-ha.patch b/patches/Tuinity/patches/server/0033-Optimise-collision-checking-in-player-move-packet-ha.patch similarity index 94% rename from patches/Tuinity/patches/server/0034-Optimise-collision-checking-in-player-move-packet-ha.patch rename to patches/Tuinity/patches/server/0033-Optimise-collision-checking-in-player-move-packet-ha.patch index 9be42ab0..7e611796 100644 --- a/patches/Tuinity/patches/server/0034-Optimise-collision-checking-in-player-move-packet-ha.patch +++ b/patches/Tuinity/patches/server/0033-Optimise-collision-checking-in-player-move-packet-ha.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimise collision checking in player move packet handling Move collision logic to just the hasNewCollision call instead of getCubes + hasNewCollision diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f838cb34e19 100644 +index d33d8396764eca938124e69d70b059e413a4b809..3418e8ce835b8b0a7434f6f56688bfbe6df88c26 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -585,12 +585,14 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -593,12 +593,14 @@ public class PlayerConnection implements PacketListenerPlayIn { return; } @@ -25,7 +25,7 @@ index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f83 double d11 = d7; d6 = d3 - entity.locX(); -@@ -604,16 +606,25 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -612,16 +614,25 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean flag1 = false; if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot @@ -55,7 +55,7 @@ index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f83 entity.setLocation(d0, d1, d2, f, f1); player.setLocation(d0, d1, d2, this.player.yaw, this.player.pitch); // CraftBukkit this.networkManager.sendPacket(new PacketPlayOutVehicleMove(entity)); -@@ -699,7 +710,32 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -707,7 +718,32 @@ public class PlayerConnection implements PacketListenerPlayIn { } private boolean a(Entity entity) { @@ -89,7 +89,7 @@ index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f83 } @Override -@@ -1226,7 +1262,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1234,7 +1270,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } if (this.teleportPos != null) { @@ -98,7 +98,7 @@ index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f83 this.A = this.e; this.a(this.teleportPos.x, this.teleportPos.y, this.teleportPos.z, this.player.yaw, this.player.pitch); } -@@ -1313,7 +1349,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1321,7 +1357,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } } @@ -107,7 +107,7 @@ index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f83 d7 = d4 - this.o; d8 = d5 - this.p; -@@ -1352,6 +1388,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1360,6 +1396,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } this.player.move(EnumMoveType.PLAYER, new Vec3D(d7, d8, d9)); @@ -115,7 +115,7 @@ index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f83 this.player.setOnGround(packetplayinflying.b()); // CraftBukkit - SPIGOT-5810, SPIGOT-5835: reset by this.player.move // Paper start - prevent position desync if (this.teleportPos != null) { -@@ -1371,12 +1408,23 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1379,12 +1416,23 @@ public class PlayerConnection implements PacketListenerPlayIn { boolean flag1 = false; if (!this.player.H() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.playerInteractManager.isCreative() && this.player.playerInteractManager.getGameMode() != EnumGamemode.SPECTATOR) { // Spigot @@ -141,7 +141,7 @@ index 26142bae7f326323385046ea3038a6d183d60fd5..ba63cc4bff4a8614a25b1576ea2c8f83 this.a(d0, d1, d2, f, f1); } else { // CraftBukkit start - fire PlayerMoveEvent -@@ -1463,6 +1511,26 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1471,6 +1519,26 @@ public class PlayerConnection implements PacketListenerPlayIn { } } diff --git a/patches/Tuinity/patches/server/0035-Manually-inline-methods-in-BlockPosition.patch b/patches/Tuinity/patches/server/0034-Manually-inline-methods-in-BlockPosition.patch similarity index 100% rename from patches/Tuinity/patches/server/0035-Manually-inline-methods-in-BlockPosition.patch rename to patches/Tuinity/patches/server/0034-Manually-inline-methods-in-BlockPosition.patch diff --git a/patches/Tuinity/patches/server/0036-Separate-lookup-locking-from-state-access-in-UserCac.patch b/patches/Tuinity/patches/server/0035-Separate-lookup-locking-from-state-access-in-UserCac.patch similarity index 100% rename from patches/Tuinity/patches/server/0036-Separate-lookup-locking-from-state-access-in-UserCac.patch rename to patches/Tuinity/patches/server/0035-Separate-lookup-locking-from-state-access-in-UserCac.patch diff --git a/patches/Tuinity/patches/server/0037-Distance-manager-tick-timings.patch b/patches/Tuinity/patches/server/0036-Distance-manager-tick-timings.patch similarity index 100% rename from patches/Tuinity/patches/server/0037-Distance-manager-tick-timings.patch rename to patches/Tuinity/patches/server/0036-Distance-manager-tick-timings.patch diff --git a/patches/Tuinity/patches/server/0038-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/Tuinity/patches/server/0037-Name-craft-scheduler-threads-according-to-the-plugin.patch similarity index 100% rename from patches/Tuinity/patches/server/0038-Name-craft-scheduler-threads-according-to-the-plugin.patch rename to patches/Tuinity/patches/server/0037-Name-craft-scheduler-threads-according-to-the-plugin.patch diff --git a/patches/Tuinity/patches/server/0039-Fix-swamp-hut-cat-generation-deadlock.patch b/patches/Tuinity/patches/server/0038-Fix-swamp-hut-cat-generation-deadlock.patch similarity index 100% rename from patches/Tuinity/patches/server/0039-Fix-swamp-hut-cat-generation-deadlock.patch rename to patches/Tuinity/patches/server/0038-Fix-swamp-hut-cat-generation-deadlock.patch diff --git a/patches/Tuinity/patches/server/0040-Range-check-flag-dirty-calls-in-PlayerChunk.patch b/patches/Tuinity/patches/server/0039-Range-check-flag-dirty-calls-in-PlayerChunk.patch similarity index 100% rename from patches/Tuinity/patches/server/0040-Range-check-flag-dirty-calls-in-PlayerChunk.patch rename to patches/Tuinity/patches/server/0039-Range-check-flag-dirty-calls-in-PlayerChunk.patch diff --git a/patches/Tuinity/patches/server/0041-Optimise-tab-complete.patch b/patches/Tuinity/patches/server/0040-Optimise-tab-complete.patch similarity index 100% rename from patches/Tuinity/patches/server/0041-Optimise-tab-complete.patch rename to patches/Tuinity/patches/server/0040-Optimise-tab-complete.patch diff --git a/patches/Tuinity/patches/server/0042-Do-not-allow-ticket-level-changes-while-unloading-pl.patch b/patches/Tuinity/patches/server/0041-Do-not-allow-ticket-level-changes-while-unloading-pl.patch similarity index 97% rename from patches/Tuinity/patches/server/0042-Do-not-allow-ticket-level-changes-while-unloading-pl.patch rename to patches/Tuinity/patches/server/0041-Do-not-allow-ticket-level-changes-while-unloading-pl.patch index d95574ee..c7c9bef8 100644 --- a/patches/Tuinity/patches/server/0042-Do-not-allow-ticket-level-changes-while-unloading-pl.patch +++ b/patches/Tuinity/patches/server/0041-Do-not-allow-ticket-level-changes-while-unloading-pl.patch @@ -20,7 +20,7 @@ index 9d26ca0ed8a8ad33091ee5b649289f2fae6c6f74..d1fa4602f2f443c19ff69bfbd39cacdb boolean flag = this.chunkMapDistance.a(this.playerChunkMap); boolean flag1 = this.playerChunkMap.b(); diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index d839a0267bc23f444294966bf29bd71861ea1301..b1f2841bed5b913cbfb8c18d7ee1c05a64d3e252 100644 +index 82522a3bcad4aba15595fff63052c722a52110d0..aaf6668050e754cddb977f3bc0897a5df71ac696 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -846,6 +846,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { diff --git a/patches/Tuinity/patches/server/0043-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/Tuinity/patches/server/0042-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch similarity index 100% rename from patches/Tuinity/patches/server/0043-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch rename to patches/Tuinity/patches/server/0042-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch diff --git a/patches/Tuinity/patches/server/0044-Add-packet-limiter-config.patch b/patches/Tuinity/patches/server/0043-Add-packet-limiter-config.patch similarity index 100% rename from patches/Tuinity/patches/server/0044-Add-packet-limiter-config.patch rename to patches/Tuinity/patches/server/0043-Add-packet-limiter-config.patch diff --git a/patches/Tuinity/patches/server/0045-Optimise-closest-entity-lookup.patch b/patches/Tuinity/patches/server/0044-Optimise-closest-entity-lookup.patch similarity index 100% rename from patches/Tuinity/patches/server/0045-Optimise-closest-entity-lookup.patch rename to patches/Tuinity/patches/server/0044-Optimise-closest-entity-lookup.patch diff --git a/patches/Tuinity/patches/server/0046-Optimise-nearby-player-lookups.patch b/patches/Tuinity/patches/server/0045-Optimise-nearby-player-lookups.patch similarity index 99% rename from patches/Tuinity/patches/server/0046-Optimise-nearby-player-lookups.patch rename to patches/Tuinity/patches/server/0045-Optimise-nearby-player-lookups.patch index bf437276..5f41e699 100644 --- a/patches/Tuinity/patches/server/0046-Optimise-nearby-player-lookups.patch +++ b/patches/Tuinity/patches/server/0045-Optimise-nearby-player-lookups.patch @@ -26,7 +26,7 @@ index 37c3617979da7839ad89883d9800c14c34e8b19b..e3dc57282a559f783c027780740e8089 // Paper end - optimise isOutsideOfRange // Paper start - optimize chunk status progression without jumping through thread pool diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index b1f2841bed5b913cbfb8c18d7ee1c05a64d3e252..42907d6a9f48818d758b5518c70440cd3c411eca 100644 +index aaf6668050e754cddb977f3bc0897a5df71ac696..76993a8601b251ecce2880820cf5a00496c17f19 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -250,6 +250,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { diff --git a/patches/Tuinity/patches/server/0047-Remove-streams-for-villager-AI.patch b/patches/Tuinity/patches/server/0046-Remove-streams-for-villager-AI.patch similarity index 100% rename from patches/Tuinity/patches/server/0047-Remove-streams-for-villager-AI.patch rename to patches/Tuinity/patches/server/0046-Remove-streams-for-villager-AI.patch diff --git a/patches/Tuinity/patches/server/0048-Don-t-lookup-fluid-state-when-raytracing.patch b/patches/Tuinity/patches/server/0047-Don-t-lookup-fluid-state-when-raytracing.patch similarity index 100% rename from patches/Tuinity/patches/server/0048-Don-t-lookup-fluid-state-when-raytracing.patch rename to patches/Tuinity/patches/server/0047-Don-t-lookup-fluid-state-when-raytracing.patch diff --git a/patches/Tuinity/patches/server/0049-Reduce-pathfinder-branches.patch b/patches/Tuinity/patches/server/0048-Reduce-pathfinder-branches.patch similarity index 100% rename from patches/Tuinity/patches/server/0049-Reduce-pathfinder-branches.patch rename to patches/Tuinity/patches/server/0048-Reduce-pathfinder-branches.patch diff --git a/patches/Tuinity/patches/server/0050-Add-Velocity-natives-for-encryption-and-compression.patch b/patches/Tuinity/patches/server/0049-Add-Velocity-natives-for-encryption-and-compression.patch similarity index 100% rename from patches/Tuinity/patches/server/0050-Add-Velocity-natives-for-encryption-and-compression.patch rename to patches/Tuinity/patches/server/0049-Add-Velocity-natives-for-encryption-and-compression.patch diff --git a/patches/Tuinity/patches/server/0051-Optimise-non-flush-packet-sending.patch b/patches/Tuinity/patches/server/0050-Optimise-non-flush-packet-sending.patch similarity index 100% rename from patches/Tuinity/patches/server/0051-Optimise-non-flush-packet-sending.patch rename to patches/Tuinity/patches/server/0050-Optimise-non-flush-packet-sending.patch diff --git a/patches/Tuinity/patches/server/0052-Do-not-retain-playerchunkmap-instance-in-light-threa.patch b/patches/Tuinity/patches/server/0051-Do-not-retain-playerchunkmap-instance-in-light-threa.patch similarity index 94% rename from patches/Tuinity/patches/server/0052-Do-not-retain-playerchunkmap-instance-in-light-threa.patch rename to patches/Tuinity/patches/server/0051-Do-not-retain-playerchunkmap-instance-in-light-threa.patch index 776a495a..2613ef5e 100644 --- a/patches/Tuinity/patches/server/0052-Do-not-retain-playerchunkmap-instance-in-light-threa.patch +++ b/patches/Tuinity/patches/server/0051-Do-not-retain-playerchunkmap-instance-in-light-threa.patch @@ -7,7 +7,7 @@ The executor returned is finalizable and of course that causes issues. diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 42907d6a9f48818d758b5518c70440cd3c411eca..65de161c5bff3f56aba39bb4b22932f18dde8ad5 100644 +index 76993a8601b251ecce2880820cf5a00496c17f19..19fe7b6a60d2f445bec738484c4ef93f73a4acc8 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -410,9 +410,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { diff --git a/patches/Tuinity/patches/server/0053-Do-not-load-chunks-during-a-crash-report.patch b/patches/Tuinity/patches/server/0052-Do-not-load-chunks-during-a-crash-report.patch similarity index 100% rename from patches/Tuinity/patches/server/0053-Do-not-load-chunks-during-a-crash-report.patch rename to patches/Tuinity/patches/server/0052-Do-not-load-chunks-during-a-crash-report.patch diff --git a/patches/Tuinity/patches/server/0054-Improve-abnormal-server-shutdown-process.patch b/patches/Tuinity/patches/server/0053-Improve-abnormal-server-shutdown-process.patch similarity index 90% rename from patches/Tuinity/patches/server/0054-Improve-abnormal-server-shutdown-process.patch rename to patches/Tuinity/patches/server/0053-Improve-abnormal-server-shutdown-process.patch index fff734b2..7701623a 100644 --- a/patches/Tuinity/patches/server/0054-Improve-abnormal-server-shutdown-process.patch +++ b/patches/Tuinity/patches/server/0053-Improve-abnormal-server-shutdown-process.patch @@ -11,10 +11,10 @@ gui. It looks like during sigint shutdown there can be some deadlock between the server thread and awt shutdown thread here. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2b9b5db565161884539175d975d9fd8253b8de7b..72d1c1202581abc284848000663ada5514cfcb15 100644 +index 746be904a8408c2fa718d6e8352e50315f7bf362..264ed751002b3f52294d00d3135503dabc639a13 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -881,10 +881,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant= (double) (-i) && vec3d_dx <= (double) i && vec3d_dz >= (double) (-i) && vec3d_dz <= (double) i && this.tracker.a(entityplayer); // Paper - remove allocation of Vec3D here if (flag) { -@@ -2663,7 +2582,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially +@@ -2660,7 +2579,7 @@ Sections go from 0..16. Now whenever a section is not empty, it can potentially ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(this.tracker.chunkX, this.tracker.chunkZ); PlayerChunk playerchunk = PlayerChunkMap.this.getVisibleChunk(chunkcoordintpair.pair()); @@ -1554,7 +1554,7 @@ index 8fac805c74d24a65c01007307ae21c8ac3d3db9b..44b9175fe49e798dbcd7f0ddd71a889b } } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 132443d009ab8feb63d860868edd2fd6a4c9c23e..ab113991486c913e0a05df1029571d3e920af9c7 100644 +index d6485ebdc8d754885f2cc362bf567a93c6aca02d..5936075251ef3d6dda3e93866009d0e996598698 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -270,7 +270,7 @@ public abstract class PlayerList { @@ -1795,10 +1795,10 @@ index 12e17315040de205b51ec254cd919b51682c0442..3f9be0d2d6be83893b8835acfec93d2c // Spigot start private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot() diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 34395248e3daea47178cb40aad53680fbce73600..f82fb89e30e30681b2052d1c6a2f24428d6fbfc7 100644 +index cfe6898dc373fe55a08acf5c90e200061aa7d0fc..ed1bb89ae7b85bf4017315d6189d6cbf595aefe5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2260,15 +2260,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2265,15 +2265,70 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } } diff --git a/patches/Tuinity/patches/server/0074-Optimise-general-POI-access.patch b/patches/Tuinity/patches/server/0073-Optimise-general-POI-access.patch similarity index 100% rename from patches/Tuinity/patches/server/0074-Optimise-general-POI-access.patch rename to patches/Tuinity/patches/server/0073-Optimise-general-POI-access.patch diff --git a/patches/Tuinity/patches/server/0075-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch b/patches/Tuinity/patches/server/0074-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch similarity index 100% rename from patches/Tuinity/patches/server/0075-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch rename to patches/Tuinity/patches/server/0074-Be-aware-of-entity-teleports-when-chunk-checking-ent.patch diff --git a/patches/Tuinity/patches/server/0076-Custom-table-implementation-for-blockstate-state-loo.patch b/patches/Tuinity/patches/server/0075-Custom-table-implementation-for-blockstate-state-loo.patch similarity index 100% rename from patches/Tuinity/patches/server/0076-Custom-table-implementation-for-blockstate-state-loo.patch rename to patches/Tuinity/patches/server/0075-Custom-table-implementation-for-blockstate-state-loo.patch diff --git a/patches/Tuinity/patches/server/0077-Do-not-update-TE-s-in-generating-chunks.patch b/patches/Tuinity/patches/server/0076-Do-not-update-TE-s-in-generating-chunks.patch similarity index 100% rename from patches/Tuinity/patches/server/0077-Do-not-update-TE-s-in-generating-chunks.patch rename to patches/Tuinity/patches/server/0076-Do-not-update-TE-s-in-generating-chunks.patch diff --git a/patches/Tuinity/patches/server/0078-Stop-large-move-vectors-in-player-packet-handling-fr.patch b/patches/Tuinity/patches/server/0077-Stop-large-move-vectors-in-player-packet-handling-fr.patch similarity index 92% rename from patches/Tuinity/patches/server/0078-Stop-large-move-vectors-in-player-packet-handling-fr.patch rename to patches/Tuinity/patches/server/0077-Stop-large-move-vectors-in-player-packet-handling-fr.patch index 3e18caaf..65318848 100644 --- a/patches/Tuinity/patches/server/0078-Stop-large-move-vectors-in-player-packet-handling-fr.patch +++ b/patches/Tuinity/patches/server/0077-Stop-large-move-vectors-in-player-packet-handling-fr.patch @@ -7,10 +7,10 @@ Subject: [PATCH] Stop large move vectors in player packet handling from Looks like we need to check three vectors, not two. fun. diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java -index ba63cc4bff4a8614a25b1576ea2c8f838cb34e19..64fe0acfccd50465c5fe8c49346a6db2b830155e 100644 +index 3418e8ce835b8b0a7434f6f56688bfbe6df88c26..8513795943497ca80232e7d47066a6944c2f45ec 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java -@@ -542,6 +542,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -550,6 +550,12 @@ public class PlayerConnection implements PacketListenerPlayIn { double currDeltaZ = toZ - fromZ; double d10 = Math.max(d6 * d6 + d7 * d7 + d8 * d8, (currDeltaX * currDeltaX + currDeltaY * currDeltaY + currDeltaZ * currDeltaZ) - 1); // Paper end - fix large move vectors killing the server @@ -23,7 +23,7 @@ index ba63cc4bff4a8614a25b1576ea2c8f838cb34e19..64fe0acfccd50465c5fe8c49346a6db2 // CraftBukkit start - handle custom speeds and skipped ticks -@@ -588,9 +594,9 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -596,9 +602,9 @@ public class PlayerConnection implements PacketListenerPlayIn { //boolean flag = worldserver.getCubes(entity, entity.getBoundingBox().shrink(0.0625D)); // Tuinity - replace with different checks AxisAlignedBB oldBox = entity.getBoundingBox(); // Tuinity - copy from player movement packet @@ -36,7 +36,7 @@ index ba63cc4bff4a8614a25b1576ea2c8f838cb34e19..64fe0acfccd50465c5fe8c49346a6db2 entity.move(EnumMoveType.PLAYER, new Vec3D(d6, d7, d8)); boolean didCollide = toX != entity.locX() || toY != entity.locY() || toZ != entity.locZ(); // Tuinity - needed here as the difference in Y can be reset - also note: this is only a guess at whether collisions took place, floating point errors can make this true when it shouldn't be... double d11 = d7; -@@ -1300,6 +1306,12 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1308,6 +1314,12 @@ public class PlayerConnection implements PacketListenerPlayIn { double currDeltaZ = toZ - prevZ; double d11 = Math.max(d7 * d7 + d8 * d8 + d9 * d9, (currDeltaX * currDeltaX + currDeltaY * currDeltaY + currDeltaZ * currDeltaZ) - 1); // Paper end - fix large move vectors killing the server @@ -49,7 +49,7 @@ index ba63cc4bff4a8614a25b1576ea2c8f838cb34e19..64fe0acfccd50465c5fe8c49346a6db2 if (this.player.isSleeping()) { if (d11 > 1.0D) { -@@ -1351,9 +1363,9 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -1359,9 +1371,9 @@ public class PlayerConnection implements PacketListenerPlayIn { AxisAlignedBB axisalignedbb = this.player.getBoundingBox(); // Tuinity - diff on change, should be old AABB diff --git a/patches/Tuinity/patches/server/0079-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/Tuinity/patches/server/0078-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch similarity index 100% rename from patches/Tuinity/patches/server/0079-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch rename to patches/Tuinity/patches/server/0078-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch diff --git a/patches/Tuinity/patches/server/0080-Do-not-copy-visible-chunks.patch b/patches/Tuinity/patches/server/0079-Do-not-copy-visible-chunks.patch similarity index 99% rename from patches/Tuinity/patches/server/0080-Do-not-copy-visible-chunks.patch rename to patches/Tuinity/patches/server/0079-Do-not-copy-visible-chunks.patch index d268fdd9..5de3c9f5 100644 --- a/patches/Tuinity/patches/server/0080-Do-not-copy-visible-chunks.patch +++ b/patches/Tuinity/patches/server/0079-Do-not-copy-visible-chunks.patch @@ -22,7 +22,7 @@ index 848eb25ed0640db61a0f28bc26ddabd0444e9ed4..ec2b9995f1bf0f6cf029df7bfac526c2 continue; } diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 44b9175fe49e798dbcd7f0ddd71a889b360587b0..33429be7da4d4c2b2469b8140e46e66d9921652c 100644 +index 7e24be3a16560c93863c2624a413e8dd7f98c5b4..4df1be8091af0ed9d3403f217b481645e24020e8 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -116,8 +116,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { diff --git a/patches/Tuinity/patches/server/0081-Correctly-handle-recursion-for-chunkholder-updates.patch b/patches/Tuinity/patches/server/0080-Correctly-handle-recursion-for-chunkholder-updates.patch similarity index 100% rename from patches/Tuinity/patches/server/0081-Correctly-handle-recursion-for-chunkholder-updates.patch rename to patches/Tuinity/patches/server/0080-Correctly-handle-recursion-for-chunkholder-updates.patch diff --git a/patches/Tuinity/patches/server/0082-Replace-ticket-level-propagator.patch b/patches/Tuinity/patches/server/0081-Replace-ticket-level-propagator.patch similarity index 100% rename from patches/Tuinity/patches/server/0082-Replace-ticket-level-propagator.patch rename to patches/Tuinity/patches/server/0081-Replace-ticket-level-propagator.patch diff --git a/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch b/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch index c0bdb307..3fff9bed 100644 --- a/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch +++ b/patches/api/0005-Add-NBT-API-as-a-first-class-lib.patch @@ -98,12 +98,12 @@ index 3b10fcc13893403b29f0260b8605144679e89b82..1e9a96d8b08cc396acf73dc420830093 + // Yatopia end } diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 7fa5242bd44c9b19648d79fa8fecbb7ee125288e..592c65017e601534dad56e988d096992ad70b05a 100644 +index 62d8d7dbd4d602ca8cb00ff0cf1331583b398323..7cb395466babc84dd4ce1c91cbab7d130a5437b3 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -771,4 +771,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -778,4 +778,26 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ - boolean spawnAt(@NotNull Location location, @NotNull org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason); + boolean isInDaylight(); // Purpur end + + // Yatopia start diff --git a/patches/server/0002-Brandings.patch b/patches/server/0002-Brandings.patch index e4d130fe..7c7f0be6 100644 --- a/patches/server/0002-Brandings.patch +++ b/patches/server/0002-Brandings.patch @@ -40,7 +40,7 @@ index e56ebeaaa12494817d31099eed54ef2c50b98b9e..eb0509386feb156ae9c8ca0eb25c0120 .completer(new ConsoleCommandCompleter(this.server)) .option(LineReader.Option.COMPLETE_IN_WORD, true); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 5a228c14a6e6335399f3436419deb51420082ad2..629da7bf9d929fc50a57457c45fb2ce9e74e4f73 100644 +index a580b021c7d9727b82a67dedfc509c286feb8c7e..046b6a2f80b3a71437b088cada9dd23ccb231234 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -187,7 +187,7 @@ public class PurpurConfig { @@ -105,7 +105,7 @@ index 191f5331f0c7871f80f0da9cc38345ce33353577..4776d0f496fb2ed492545ffb53ecf05e if (stream != null) { diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java -index 00c728704a1a7aa8b3a2e7679eaa0d2f604da087..1b92b3d2c696fa4ef86a2d2a58eeb447bb3d2739 100644 +index b650f9b6901f15b7fec7a426cd77660039eecd66..b15db666281227d1dc486e4e57dae1831fbf78ec 100644 --- a/src/main/java/org/spigotmc/WatchdogThread.java +++ b/src/main/java/org/spigotmc/WatchdogThread.java @@ -26,7 +26,7 @@ public class WatchdogThread extends Thread diff --git a/patches/server/0005-Add-last-tick-time-API.patch b/patches/server/0005-Add-last-tick-time-API.patch index 83d77531..eea18a41 100644 --- a/patches/server/0005-Add-last-tick-time-API.patch +++ b/patches/server/0005-Add-last-tick-time-API.patch @@ -7,10 +7,10 @@ Original patch by: Co-authored-by: tr7zw diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index dd2f3d79693710ddb3c1d34dffdc7925260e5de5..779b59e6a2ca6bb6d4320c9181e13ed8508ae7ad 100644 +index 3f33301c3349c1c04b869a001120d03697afae8d..08d4a2ef671ff750305df9d4c0cac0f2e9c89006 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1067,6 +1067,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant list = com.tuinity.tuinity.util.CachedLists.getTempGetEntitiesList(); diff --git a/patches/server/0009-Modify-default-configs.patch b/patches/server/0009-Modify-default-configs.patch index 1cb7fea3..4953cbd5 100644 --- a/patches/server/0009-Modify-default-configs.patch +++ b/patches/server/0009-Modify-default-configs.patch @@ -18,7 +18,7 @@ index a0ed8ed1d6b89a4f10dff645e09eaff303fb3f8a..3115c6b308c1371f065dcbb60d9443f4 TimingsManager.privacy = getBoolean("timings.server-name-privacy", false); TimingsManager.hiddenConfigs = getList("timings.hidden-config-entries", Lists.newArrayList("database", "settings.bungeecord-addresses", "settings.velocity-support.secret")); diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 319e12c843305e62c34b1b6e2fd198d02491ca12..cb2d35dbfa9e307fa098a66670a1126906ccaed2 100644 +index 577ed19fa8875ab37433b1061f055521a4245434..c3b31fd44abb1a8731fecc8587d581f4a1efa2e3 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -633,7 +633,7 @@ public class PaperWorldConfig { diff --git a/patches/server/0012-lithium-enum_values.patch b/patches/server/0012-lithium-enum_values.patch index df3517cd..acb4b611 100644 --- a/patches/server/0012-lithium-enum_values.patch +++ b/patches/server/0012-lithium-enum_values.patch @@ -65,10 +65,10 @@ index 8078e4f5b79eaada03508265ba6b81db636e822a..b2d26289a6f501b093ec229394f75864 }; diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index af2bd5fe40cb3c180a1f0c1c1d38eee820176ac7..56a5dce9d5a511e300232620e97c514e49399499 100644 +index 3158511eca5467b3891de08bca503f65d3f27154..7b8a2332b0992c4e4b20eedacef4347dd5dc929e 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java -@@ -2761,10 +2761,12 @@ public abstract class EntityLiving extends Entity { +@@ -2779,10 +2779,12 @@ public abstract class EntityLiving extends Entity { } diff --git a/patches/server/0014-Item-stuck-sleep-config.patch b/patches/server/0014-Item-stuck-sleep-config.patch index 491114bc..473b8a0d 100644 --- a/patches/server/0014-Item-stuck-sleep-config.patch +++ b/patches/server/0014-Item-stuck-sleep-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item stuck sleep config diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java -index 51663e58def93cc38157a99069db86603faf4c0a..e5d84a285e143cf278b33b579b6874b2bb5f3517 100644 +index dd4997e7ffac4773e01add88efec7c0dcd7b4df0..2cdb72093c9668d7e5ff4d6d0a91ffbf5889470d 100644 --- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java +++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java @@ -115,7 +115,7 @@ public class EntityItem extends Entity { diff --git a/patches/server/0015-Option-for-simpler-Villagers.patch b/patches/server/0015-Option-for-simpler-Villagers.patch index 0b0bb07d..adbae4b3 100644 --- a/patches/server/0015-Option-for-simpler-Villagers.patch +++ b/patches/server/0015-Option-for-simpler-Villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option for simpler Villagers diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java -index 4903d79ad1036df8f52aded6ddaca604d4a8434a..3ddbf0beed54cd355da486078d1c26defc0512b7 100644 +index e042af3f78a25587ba14d5fd9e346805dd5f1e85..53916eb31f9b5699c56bbe466ba46834149a8f08 100644 --- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java +++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java @@ -103,6 +103,7 @@ import org.bukkit.event.entity.VillagerReplenishTradeEvent; diff --git a/patches/server/0019-Redirect-Configs.patch b/patches/server/0019-Redirect-Configs.patch index 7745b0a0..cb51889a 100644 --- a/patches/server/0019-Redirect-Configs.patch +++ b/patches/server/0019-Redirect-Configs.patch @@ -39,7 +39,7 @@ index a088b8f84f01ce3863ae949f4cd3d7ae9589c27c..4ff5d3d45c1055af148e34d6bfe645a6 for (final Method method : clazz.getDeclaredMethods()) { if (method.getReturnType() != void.class || method.getParameterCount() != 0 || diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 2d41e3b6e4b6e14470a2d22a482e345f882b6bcd..e57efc3900530899d81b3a42a7d38e7ac601f29f 100644 +index 0b7e85f83d1e2494fc58a5563862db18ec8c1081..2662202e60d80af9af33b3dc4af535cf3dd8b366 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -236,7 +236,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer diff --git a/patches/server/0021-Fix-lead-fall-dmg-config.patch b/patches/server/0021-Fix-lead-fall-dmg-config.patch index ad33ef93..05dbc26f 100644 --- a/patches/server/0021-Fix-lead-fall-dmg-config.patch +++ b/patches/server/0021-Fix-lead-fall-dmg-config.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix lead fall dmg config diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9ad284fd9d8df3dc3302eae0161c483f6a5f594b..314c9aadc70a10556e60ee921112f67cd1929968 100644 +index f3d1e0bf6b268fffa50181b1901f41539820fe05..286e14bb39509328844e1f57d8faa04b20014f83 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -1426,6 +1426,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/patches/server/0025-Highly-optimize-VillagePlace-filtering.patch b/patches/server/0025-Highly-optimize-VillagePlace-filtering.patch index 8aa0dcd3..4d7a533e 100644 --- a/patches/server/0025-Highly-optimize-VillagePlace-filtering.patch +++ b/patches/server/0025-Highly-optimize-VillagePlace-filtering.patch @@ -297,7 +297,7 @@ index 41ffad7cbb6c77713736f37b3728b201d315f6d4..866e9a434423702d2edaf9b52fa0e621 return true; } diff --git a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java -index e425e093c233a21e5ef457e3a94defe8b74261d2..56189617dd49e62a57bf3f9050711dc0dea46b2a 100644 +index 4da4fadbd4a036b316d554de20c0d30d35cc206b..4fb72f73ef4a1131ad91b3edea78a79169202720 100644 --- a/src/main/java/net/minecraft/world/entity/animal/EntityBee.java +++ b/src/main/java/net/minecraft/world/entity/animal/EntityBee.java @@ -856,15 +856,19 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB diff --git a/patches/server/0028-Stop-wasting-resources-on-JsonList-get.patch b/patches/server/0028-Stop-wasting-resources-on-JsonList-get.patch index d10055d0..b9891d5a 100644 --- a/patches/server/0028-Stop-wasting-resources-on-JsonList-get.patch +++ b/patches/server/0028-Stop-wasting-resources-on-JsonList-get.patch @@ -55,7 +55,7 @@ index c960852dc60d0598012c5eef0d139fe38bde63fb..96fbb1a3d216302aa937e07bf88fdb19 Throwable throwable = null; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 4aa61fe614d3bb830570af8e6702686f89aa79c3..8fc60257b14657b7e27023801581fc64749175d4 100644 +index 36d53df60dfad980119eefa4499f4cb7280f55b1..bc3adc076870cc7cfb61ac1fa9e4c939b714ef57 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -740,6 +740,7 @@ public abstract class PlayerList { diff --git a/patches/server/0032-Optimize-whitelist-command-for-multiple-additions-re.patch b/patches/server/0032-Optimize-whitelist-command-for-multiple-additions-re.patch index 69985794..47e2ae6f 100644 --- a/patches/server/0032-Optimize-whitelist-command-for-multiple-additions-re.patch +++ b/patches/server/0032-Optimize-whitelist-command-for-multiple-additions-re.patch @@ -10,10 +10,10 @@ added. These changes aim to reduce that load whenever you are using the /whitelist command. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 779b59e6a2ca6bb6d4320c9181e13ed8508ae7ad..3d0bdea2cd8e22736f2e640433a2360259847e8a 100644 +index 08d4a2ef671ff750305df9d4c0cac0f2e9c89006..c50e6c9199e6577a1a1a2b09f53b939e08589501 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -2120,6 +2120,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 80) { + if (org.yatopiamc.yatopia.server.YatopiaConfig.checkFlying && ++this.C > 80) { // Yatopia PlayerConnection.LOGGER.warn("{} was kicked for floating too long!", this.player.getDisplayName().getString()); - this.disconnect(com.destroystokyo.paper.PaperConfig.flyingKickPlayerMessage); // Paper - use configurable kick message + this.disconnect(com.destroystokyo.paper.PaperConfig.flyingKickPlayerMessage, org.bukkit.event.player.PlayerKickEvent.Cause.FLYING_PLAYER); // Paper - use configurable kick message & kick event cause return; @@ -347,7 +347,7 @@ public class PlayerConnection implements PacketListenerPlayIn { this.w = this.r.locY(); @@ -24,7 +24,7 @@ index fda4e5b5c15e9d1fab48006991ec8139907abc74..dfd0f6a6820ed0166afd7be2dfda55c9 - if (++this.E > 80) { + if (org.yatopiamc.yatopia.server.YatopiaConfig.checkVehicleFlying && ++this.E > 80) { // Yatopia PlayerConnection.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getDisplayName().getString()); - this.disconnect(com.destroystokyo.paper.PaperConfig.flyingKickVehicleMessage); // Paper - use configurable kick message + this.disconnect(com.destroystokyo.paper.PaperConfig.flyingKickVehicleMessage, org.bukkit.event.player.PlayerKickEvent.Cause.FLYING_VEHICLE); // Paper - use configurable kick message & kick event cause return; diff --git a/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java b/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java index 98b78bd015218a39b7512c67e0db9ba0451e3d6d..90760a81f2d66082d4603df430f931403e5989b4 100644 diff --git a/patches/server/0039-Heavily-optimize-recipe-lookups-in-CraftingManager.patch b/patches/server/0039-Heavily-optimize-recipe-lookups-in-CraftingManager.patch index 2e5ae7ba..25675adf 100644 --- a/patches/server/0039-Heavily-optimize-recipe-lookups-in-CraftingManager.patch +++ b/patches/server/0039-Heavily-optimize-recipe-lookups-in-CraftingManager.patch @@ -11,7 +11,7 @@ Co-authored-by: Ivan Pekov Co-authored-by: ishland diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 677f866dfaab653b05c693663adaeb2465117a55..51b9288856f7415cb854ca3fe32905d0c2886266 100644 +index 81ceeff37f7e03eead177cbd49f79a74be3aeeb2..3bda167c4436a4f926850b2f3c06d1a0dce7c171 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java @@ -640,6 +640,7 @@ public final class ItemStack { diff --git a/patches/server/0045-Smarter-statistics-ticking.patch b/patches/server/0045-Smarter-statistics-ticking.patch index 14ba2353..934aaf81 100644 --- a/patches/server/0045-Smarter-statistics-ticking.patch +++ b/patches/server/0045-Smarter-statistics-ticking.patch @@ -8,7 +8,7 @@ In vanilla, statistics that count time spent for an action (i.e. time played or With an interval of 20, this patch saves roughly 3ms per tick on a server w/ 80 players online. diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java -index 61feb098b0786d316f9d99eba305ca9244e299e5..40d56f2da4dd1dd387594ad0ce8cb5a4d8b6a033 100644 +index 6c16db02cc405fb8a7d9ac2fa70882a6e6edbfec..b484f02c994869787bdf65dbc5ef1f1af3889b69 100644 --- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java +++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java @@ -279,18 +279,23 @@ public abstract class EntityHuman extends EntityLiving { diff --git a/patches/server/0046-Configurable-criterion-triggers.patch b/patches/server/0046-Configurable-criterion-triggers.patch index 35bb820a..f87fc104 100644 --- a/patches/server/0046-Configurable-criterion-triggers.patch +++ b/patches/server/0046-Configurable-criterion-triggers.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable criterion triggers This patch adds toggles for three criterion triggers that are called every tick. These can be very unnecessary, and especially in the case of CriterionTriggerEnterBlock, quite heavy. diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java -index 96520df171fadbc90c130555bd0c7139579f73d8..313517288e6ab7888310462a69fb8771f6d9b17e 100644 +index 753fc239b9968d76541c536184b2039526d80005..85f0b1e789858d840d0d709fc1974d6b7419f7ef 100644 --- a/src/main/java/net/minecraft/server/level/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java @@ -577,6 +577,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { diff --git a/patches/server/0047-Configurable-BlockPhysicsEvent.patch b/patches/server/0047-Configurable-BlockPhysicsEvent.patch index acc9b539..2fd2e11d 100644 --- a/patches/server/0047-Configurable-BlockPhysicsEvent.patch +++ b/patches/server/0047-Configurable-BlockPhysicsEvent.patch @@ -8,10 +8,10 @@ Paper does alleviate this quite well by only firing if plugins are listening, bu This patch implements a hard toggle for the event. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3d0bdea2cd8e22736f2e640433a2360259847e8a..3ee9bbe0dff3dd85abb69bd296dac779b2e548dc 100644 +index c50e6c9199e6577a1a1a2b09f53b939e08589501..2572b5ab8c13f20a4f7efc168fdd8c7adafbcfcd 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1549,7 +1549,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 1b5f387e5b62e341abd9ef17a72a836137b88c76..05989f600f06d940752bb1e4408f985550778d0f 100644 +index cda0f9bf15fead921ced0e984dc9cf80ead88286..ed4a8f34c0f48adb9d90e53ac5c9ca584e400a47 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -954,7 +954,9 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant 0) { -@@ -1592,7 +1595,7 @@ public abstract class EntityLiving extends Entity { +@@ -1604,7 +1607,7 @@ public abstract class EntityLiving extends Entity { BlockPosition blockposition = this.getChunkCoordinates(); IBlockData iblockdata = Blocks.WITHER_ROSE.getBlockData(); @@ -291,7 +291,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e this.world.setTypeAndData(blockposition, iblockdata, 3); flag = true; } -@@ -1797,12 +1800,12 @@ public abstract class EntityLiving extends Entity { +@@ -1809,12 +1812,12 @@ public abstract class EntityLiving extends Entity { // Airplane end public IBlockData ds() { @@ -306,7 +306,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e if (iblockdata1.a(Blocks.LADDER) && iblockdata1.get(BlockLadder.FACING) == iblockdata.get(BlockTrapdoor.FACING)) { return true; -@@ -1849,7 +1852,7 @@ public abstract class EntityLiving extends Entity { +@@ -1861,7 +1864,7 @@ public abstract class EntityLiving extends Entity { int i = MathHelper.floor(this.locX()); int j = MathHelper.floor(this.locY() - 0.20000000298023224D); int k = MathHelper.floor(this.locZ()); @@ -315,7 +315,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e if (!iblockdata.isAir()) { SoundEffectType soundeffecttype = iblockdata.getStepSound(); -@@ -2340,7 +2343,7 @@ public abstract class EntityLiving extends Entity { +@@ -2358,7 +2361,7 @@ public abstract class EntityLiving extends Entity { private void a(Entity entity) { Vec3D vec3d; @@ -324,7 +324,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e vec3d = entity.b(this); } else { vec3d = new Vec3D(entity.locX(), entity.locY() + (double) entity.getHeight(), entity.locZ()); -@@ -2394,7 +2397,7 @@ public abstract class EntityLiving extends Entity { +@@ -2412,7 +2415,7 @@ public abstract class EntityLiving extends Entity { this.fallDistance = 0.0F; } @@ -333,7 +333,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e double d1; float f; -@@ -2510,7 +2513,7 @@ public abstract class EntityLiving extends Entity { +@@ -2528,7 +2531,7 @@ public abstract class EntityLiving extends Entity { } } else { BlockPosition blockposition = this.as(); @@ -342,7 +342,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e f = this.onGround ? f5 * 0.91F : 0.91F; Vec3D vec3d6 = this.a(vec3d, f5); -@@ -3581,7 +3584,7 @@ public abstract class EntityLiving extends Entity { +@@ -3624,7 +3627,7 @@ public abstract class EntityLiving extends Entity { while (!flag2 && blockposition.getY() > 0) { BlockPosition blockposition1 = blockposition.down(); @@ -351,7 +351,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e if (iblockdata.getMaterial().isSolid()) { flag2 = true; -@@ -3693,7 +3696,7 @@ public abstract class EntityLiving extends Entity { +@@ -3736,7 +3739,7 @@ public abstract class EntityLiving extends Entity { this.stopRiding(); } @@ -360,7 +360,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e if (iblockdata.getBlock() instanceof BlockBed) { this.world.setTypeAndData(blockposition, (IBlockData) iblockdata.set(BlockBed.OCCUPIED, true), 3); -@@ -3712,7 +3715,7 @@ public abstract class EntityLiving extends Entity { +@@ -3755,7 +3758,7 @@ public abstract class EntityLiving extends Entity { private boolean x() { return (Boolean) this.getBedPosition().map((blockposition) -> { @@ -369,7 +369,7 @@ index 56a5dce9d5a511e300232620e97c514e49399499..0a6e6830a2cdaa5979d920c5c61a5d1e }).orElse(false); } -@@ -3722,7 +3725,7 @@ public abstract class EntityLiving extends Entity { +@@ -3765,7 +3768,7 @@ public abstract class EntityLiving extends Entity { this.world.getClass(); optional.filter(world::isLoaded).ifPresent((blockposition) -> { diff --git a/patches/server/0063-lithium-entity.patch b/patches/server/0063-lithium-entity.patch index 8d82ad24..15b913a0 100644 --- a/patches/server/0063-lithium-entity.patch +++ b/patches/server/0063-lithium-entity.patch @@ -6,11 +6,11 @@ Subject: [PATCH] lithium entity Co-authored-by: Hugo Planque diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java -index 0a6e6830a2cdaa5979d920c5c61a5d1eae8e6cc2..8c29f1693de2e5019d931654e984110276211923 100644 +index 89ec42a757060688c088baef3dd95280205c2a3d..583657316fd404d2373b4777fe26a0f4d081100a 100644 --- a/src/main/java/net/minecraft/world/entity/EntityLiving.java +++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java -@@ -279,6 +279,9 @@ public abstract class EntityLiving extends Entity { - this.bg = this.a(new Dynamic(dynamicopsnbt, dynamicopsnbt.createMap((Map) ImmutableMap.of(dynamicopsnbt.createString("memories"), dynamicopsnbt.emptyMap())))); +@@ -282,6 +282,9 @@ public abstract class EntityLiving extends Entity { + this.shouldBurnInDay = false; // Purpur } + private IBlockData lastStateAtFeet = null; @@ -19,7 +19,7 @@ index 0a6e6830a2cdaa5979d920c5c61a5d1eae8e6cc2..8c29f1693de2e5019d931654e9841102 protected void initAttributes() {} // Purpur public BehaviorController getBehaviorController() { -@@ -355,6 +358,10 @@ public abstract class EntityLiving extends Entity { +@@ -358,6 +361,10 @@ public abstract class EntityLiving extends Entity { @Override public void entityBaseTick() { @@ -30,7 +30,7 @@ index 0a6e6830a2cdaa5979d920c5c61a5d1eae8e6cc2..8c29f1693de2e5019d931654e9841102 this.ar = this.as; if (this.justCreated) { this.getBedPosition().ifPresent(this::a); -@@ -1800,7 +1807,24 @@ public abstract class EntityLiving extends Entity { +@@ -1812,7 +1819,24 @@ public abstract class EntityLiving extends Entity { // Airplane end public IBlockData ds() { diff --git a/patches/server/0064-lithium-shape.patch b/patches/server/0064-lithium-shape.patch index 82a35a5a..4bf582a3 100644 --- a/patches/server/0064-lithium-shape.patch +++ b/patches/server/0064-lithium-shape.patch @@ -270,7 +270,7 @@ index b95115aca72ba0cf6451096ddbd8b50a8f3bb5c6..0afb8c643cb3e5938e12183c6132797d int j = i - 1; diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d7a046c793c90ba6bb73ed5f6359ed1ca79cfe13..aad482c4676282517ec1dcf9a81d2cfad5972a9c 100644 +index 2ed54208faf35ea5b4ea8540e95886b56d4d11fe..4b64a8f7ca507a54871c3b4929e663a60897870d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -2676,6 +2676,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne diff --git a/patches/server/0065-lithium-skip-ticking-block-entities-that-are-doing-n.patch b/patches/server/0065-lithium-skip-ticking-block-entities-that-are-doing-n.patch index ebe45be9..3510429a 100644 --- a/patches/server/0065-lithium-skip-ticking-block-entities-that-are-doing-n.patch +++ b/patches/server/0065-lithium-skip-ticking-block-entities-that-are-doing-n.patch @@ -737,7 +737,7 @@ index 35c4d5414db66b977a354ac50d35a6aa0fcd4cf8..35aef3647c025eaa763e2b9a5a4e266d public Timing tickTimer = MinecraftTimings.getTileEntityTimings(this); // Paper // CraftBukkit start - data containers diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java -index cbee856aec7f1c220dc188d224fe9d60e17c2134..9565ca741ae6608f66ac9d9de384a1ad4de7d338 100644 +index 95479df9fb009c5ca1872f8ee89b13e9c66d0bb6..52243bce89b28572efae9af54348502f599fb896 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java +++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityBeehive.java @@ -23,6 +23,9 @@ import net.minecraft.world.level.block.BlockBeehive; diff --git a/patches/server/0067-C2ME-Port.patch b/patches/server/0067-C2ME-Port.patch index 343a8ed1..c91cb852 100644 --- a/patches/server/0067-C2ME-Port.patch +++ b/patches/server/0067-C2ME-Port.patch @@ -37,7 +37,7 @@ index 06157bb07cce3ba24087ceaca7138b5609b37b5b..47f0604a891d46f688abd5daa6fb4de8 public IChunkAccess f() { for (int i = PlayerChunk.CHUNK_STATUSES.size() - 1; i >= 0; --i) { diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 3c5e4abd104aa016e5cb8e248c4d6a5eff08a42e..9e0c082d276d1a13577bbf7183065cce3b837c66 100644 +index e94d9c784bde37f65c2fd081eacbd41b061cd1aa..e24f323561875c1ef313dd5ceb222f9a2a1251d3 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -154,8 +154,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { diff --git a/patches/server/0072-C2ME-update.patch b/patches/server/0072-C2ME-update.patch index 63ec9a52..3b06c211 100644 --- a/patches/server/0072-C2ME-update.patch +++ b/patches/server/0072-C2ME-update.patch @@ -21,7 +21,7 @@ index 620bd31a4356cb170720b4be3512791c93069131..a57144d43adbf4a9b97d168fea3bc09f diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java -index 9e0c082d276d1a13577bbf7183065cce3b837c66..7c275b81fb66a56e18385d9a0585d3d5fe703736 100644 +index e24f323561875c1ef313dd5ceb222f9a2a1251d3..da28d5fc737eb36fe24cd48e762eb9fab6e32110 100644 --- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java @@ -110,6 +110,9 @@ import org.apache.logging.log4j.Logger; diff --git a/upstream/Empirecraft b/upstream/Empirecraft index 9e2881e6..12009c31 160000 --- a/upstream/Empirecraft +++ b/upstream/Empirecraft @@ -1 +1 @@ -Subproject commit 9e2881e606eacda8ec2b8527abd7d72d92f3e008 +Subproject commit 12009c3181bca30b97aabf4efbc78e64db2a46ae diff --git a/upstream/Origami b/upstream/Origami index 4c0616dd..64fba4f7 160000 --- a/upstream/Origami +++ b/upstream/Origami @@ -1 +1 @@ -Subproject commit 4c0616dd1392083034f6dbd0213f53bc8e732897 +Subproject commit 64fba4f73c65c2974f39d4ea3fdbc20bc00e2779 diff --git a/upstream/Purpur b/upstream/Purpur index adb0cafe..687936be 160000 --- a/upstream/Purpur +++ b/upstream/Purpur @@ -1 +1 @@ -Subproject commit adb0cafe6448d82b79db8b7dc478df71e34c7bd8 +Subproject commit 687936be57894f5fa37980c9af270dc3c4eff9ba diff --git a/upstream/Tuinity b/upstream/Tuinity index f0e91a4a..e9c83482 160000 --- a/upstream/Tuinity +++ b/upstream/Tuinity @@ -1 +1 @@ -Subproject commit f0e91a4ae9c511c116c859105d10b02dddbe4f71 +Subproject commit e9c834821c6dee750fd0b9e87bc67456ba45555f diff --git a/upstreamCommits/Empirecraft b/upstreamCommits/Empirecraft index 52da607f..26a297e7 100644 --- a/upstreamCommits/Empirecraft +++ b/upstreamCommits/Empirecraft @@ -1 +1 @@ -9e2881e606eacda8ec2b8527abd7d72d92f3e008 \ No newline at end of file +12009c3181bca30b97aabf4efbc78e64db2a46ae \ No newline at end of file diff --git a/upstreamCommits/Origami b/upstreamCommits/Origami index 44267539..5e9fc01e 100644 --- a/upstreamCommits/Origami +++ b/upstreamCommits/Origami @@ -1 +1 @@ -4c0616dd1392083034f6dbd0213f53bc8e732897 \ No newline at end of file +64fba4f73c65c2974f39d4ea3fdbc20bc00e2779 \ No newline at end of file diff --git a/upstreamCommits/Purpur b/upstreamCommits/Purpur index c78948fa..637b0000 100644 --- a/upstreamCommits/Purpur +++ b/upstreamCommits/Purpur @@ -1 +1 @@ -adb0cafe6448d82b79db8b7dc478df71e34c7bd8 \ No newline at end of file +687936be57894f5fa37980c9af270dc3c4eff9ba \ No newline at end of file diff --git a/upstreamCommits/Tuinity b/upstreamCommits/Tuinity index 4ffd94ae..b9530802 100644 --- a/upstreamCommits/Tuinity +++ b/upstreamCommits/Tuinity @@ -1 +1 @@ -f0e91a4ae9c511c116c859105d10b02dddbe4f71 \ No newline at end of file +e9c834821c6dee750fd0b9e87bc67456ba45555f \ No newline at end of file diff --git a/upstreamConfig/0003-Purpur.properties b/upstreamConfig/0003-Purpur.properties index b8d4dee5..1a65e935 100755 --- a/upstreamConfig/0003-Purpur.properties +++ b/upstreamConfig/0003-Purpur.properties @@ -1,4 +1,4 @@ name=Purpur useBlackList=True -list=api/Tuinity-API-Changes.patch,api/Airplane-API-Changes.patch,server/Tuinity-Server-Changes.patch,server/Airplane-Server-Changes.patch,server/Re-enable-timings-by-default.patch,server/Extend-Halloween-Optimization.patch +list=api/Tuinity-API-Changes.patch,api/Airplane-API-Changes.patch,server/Tuinity-Server-Changes.patch,server/Airplane-Server-Changes.patch,server/Re-enable-timings-by-default.patch,server/Extend-Halloween-Optimization.patch,server/PlayerBookTooLargeEvent.patch,api/PlayerBookTooLargeEvent.patch branch=origin/ver/1.16.5 diff --git a/upstreamConfig/0005-Empirecraft.properties b/upstreamConfig/0005-Empirecraft.properties index 8e4c697b..55ead4cd 100644 --- a/upstreamConfig/0005-Empirecraft.properties +++ b/upstreamConfig/0005-Empirecraft.properties @@ -1,4 +1,4 @@ name=Empirecraft useBlackList=false -list=server/Don-t-trigger-Lootable-Refresh-for-non-player-intera.patch,server/Fix-Bukkit.createInventory-with-type-LECTERN.patch,server/dont-load-chunks-for-physics.patch +list=server/Don-t-trigger-Lootable-Refresh-for-non-player-intera.patch,server/dont-load-chunks-for-physics.patch branch=origin/master