diff --git a/build-data/paper.at b/build-data/paper.at index e1f52762aa..84637b2535 100644 --- a/build-data/paper.at +++ b/build-data/paper.at @@ -4,6 +4,7 @@ # This line would make the field public and remove the final modifier #public-f net.minecraft.network.protocol.game.ClientboundChatPacket sender # Leave out the member and it will apply to the class itself +# More info, see here https://mcforge.readthedocs.io/en/latest/advanced/accesstransformers/#access-modifiers # Item Rarity API public net.minecraft.world.item.Item rarity @@ -16,3 +17,15 @@ public net.minecraft.util.worldupdate.WorldUpgrader REGEX # More Lidded Block API public net.minecraft.world.level.block.entity.EnderChestBlockEntity openersCounter + +# Improve EntityShootBowEvent +public net.minecraft.world.entity.projectile.AbstractArrow getPickupItem()Lnet.minecraft.world.item.ItemStack; + +# Implement Expanded ArmorStand API +public net.minecraft.world.entity.decoration.ArmorStand isDisabled(Lnet/minecraft/world/entity/EquipmentSlot;)Z + +# Asynchronous chunk IO and loading +public net.minecraft.util.thread.BlockableEventLoop runAllTasks()V + +# Chunk debug command +public net.minecraft.server.level.ChunkMap entitiesInLevel diff --git a/patches/server/0211-Improve-EntityShootBowEvent.patch b/patches/server/0211-Improve-EntityShootBowEvent.patch index fa63c641cd..96f7dc144f 100644 --- a/patches/server/0211-Improve-EntityShootBowEvent.patch +++ b/patches/server/0211-Improve-EntityShootBowEvent.patch @@ -42,55 +42,3 @@ index ff38ad2ac16ff49a290976e392175e96fa986925..c9fa01b910de7ecb494d3000afebea9a } @Override -diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -index 71f0de893fe0243cc226fd36685f2a3fba02575f..988986d549dae93cfcb8147126c84f263efe3452 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java -@@ -586,7 +586,7 @@ public abstract class AbstractArrow extends Projectile { - } - } - -- protected abstract ItemStack getPickupItem(); -+ public abstract ItemStack getPickupItem(); // Paper - protected -> public - - @Override - protected Entity.MovementEmission getMovementEmission() { -diff --git a/src/main/java/net/minecraft/world/entity/projectile/Arrow.java b/src/main/java/net/minecraft/world/entity/projectile/Arrow.java -index 1b71df52df1e1d408d2cdf5bef5fbea95fdced80..c0a3bfde24ef5e4b9c1bb1c0b8fbffdde3604513 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/Arrow.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/Arrow.java -@@ -244,7 +244,7 @@ public class Arrow extends AbstractArrow { - } - - @Override -- protected ItemStack getPickupItem() { -+ public ItemStack getPickupItem() { // Paper - protected -> public - if (this.effects.isEmpty() && this.potion == Potions.EMPTY) { - return new ItemStack(Items.ARROW); - } else { -diff --git a/src/main/java/net/minecraft/world/entity/projectile/SpectralArrow.java b/src/main/java/net/minecraft/world/entity/projectile/SpectralArrow.java -index 4f62f72d125504602d4b0278119247d36d58b3c9..f6081e0fdf71d6b2b80c94f2ffd3395c08fb84a7 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/SpectralArrow.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/SpectralArrow.java -@@ -36,7 +36,7 @@ public class SpectralArrow extends AbstractArrow { - } - - @Override -- protected ItemStack getPickupItem() { -+ public ItemStack getPickupItem() { // Paper - protected -> public - return new ItemStack(Items.SPECTRAL_ARROW); - } - -diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -index 04c6c3bf372186182b91a03e11dba0495357393d..227cb0834a075cbe2db136bf6dc9820d2a04c458 100644 ---- a/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownTrident.java -@@ -98,7 +98,7 @@ public class ThrownTrident extends AbstractArrow { - } - - @Override -- protected ItemStack getPickupItem() { -+ public ItemStack getPickupItem() { // Paper - protected -> public - return this.tridentItem.copy(); - } - diff --git a/patches/server/0236-Implement-Expanded-ArmorStand-API.patch b/patches/server/0236-Implement-Expanded-ArmorStand-API.patch index 9db2b90a04..ace889510d 100644 --- a/patches/server/0236-Implement-Expanded-ArmorStand-API.patch +++ b/patches/server/0236-Implement-Expanded-ArmorStand-API.patch @@ -7,19 +7,6 @@ Add the following: - Add proper methods for getting and setting items in both hands. Deprecates old methods - Enable/Disable slot interactions -diff --git a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -index 33f1e486f3732c156289b16d973297e771da82b9..4adde11daa5ca97a2bf9c164c43c5c011a89b33d 100644 ---- a/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -+++ b/src/main/java/net/minecraft/world/entity/decoration/ArmorStand.java -@@ -428,7 +428,7 @@ public class ArmorStand extends LivingEntity { - return enumitemslot; - } - -- private boolean isDisabled(net.minecraft.world.entity.EquipmentSlot slot) { -+ public boolean isDisabled(net.minecraft.world.entity.EquipmentSlot slot) { // Paper - private -> public - return (this.disabledSlots & 1 << slot.getFilterFlag()) != 0 || slot.getType() == net.minecraft.world.entity.EquipmentSlot.Type.HAND && !this.isShowArms(); - } - diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java index 82b9ee993b0d2e7e0685231f7bad2b85756ec959..f4065938bbfd04519d1363ee8781c316aca468ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArmorStand.java diff --git a/patches/server/0259-Asynchronous-chunk-IO-and-loading.patch b/patches/server/0259-Asynchronous-chunk-IO-and-loading.patch index f362446c4e..8498e4d2a8 100644 --- a/patches/server/0259-Asynchronous-chunk-IO-and-loading.patch +++ b/patches/server/0259-Asynchronous-chunk-IO-and-loading.patch @@ -2357,7 +2357,7 @@ index ce4296ab7e6f1ccc735d619eacabdf2ef2f4e361..00f5cd29170e3594fe2ac194e04e403c completablefuture = (CompletableFuture) this.futures.get(i); if (completablefuture == null) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a0f8f341e0cd6a2ac28e12d0824b694ac4fbc7ae..95ac30f56a9268f14d2518974c5a52e08f40ea18 100644 +index 64304bf9fc60332d9a17194660d3a34c853a36c6..c096c2fecc6ab74255b305a7eee045bedaab44ae 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -115,7 +115,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -2970,7 +2970,7 @@ index 0d536d72ac918fbd403397ff369d10143ee9c204..be677d437d17b74c6188ce1bd5fc6fdc private final String name; private final Comparator comparator; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b65fcc7519589c3bc5c5f5b5ec1db53a520ec39f..a29b8c83be940e4b3db06d881b59b03120e931ab 100644 +index 1c76d6a616d6967402fb55feffafffa0aa2fd468..2917632c5e974dbfb7d78c497ebd49e742b8ef3c 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -712,6 +712,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -2987,19 +2987,6 @@ index b65fcc7519589c3bc5c5f5b5ec1db53a520ec39f..a29b8c83be940e4b3db06d881b59b031 // CraftBukkit end StringReader stringreader = new StringReader(packet.getCommand()); -diff --git a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -index 5b38966093fe60b298844961d015d5a9f03412a2..0ef3c4982df88a7991a56d983ac733daa8adc507 100644 ---- a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -+++ b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java -@@ -106,7 +106,7 @@ public abstract class BlockableEventLoop implements Profiler - this.pendingRunnables.clear(); - } - -- protected void runAllTasks() { -+ public void runAllTasks() { // Paper - protected -> public - while(this.pollTask()) { - } - diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java index 3ca8b13744b406c3e563747f0cb69647c94103df..6c3455823f996e0421975b7f4a00f4e333e9f514 100644 --- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java diff --git a/patches/server/0332-Chunk-debug-command.patch b/patches/server/0332-Chunk-debug-command.patch index fc2006bbbd..e5149d9026 100644 --- a/patches/server/0332-Chunk-debug-command.patch +++ b/patches/server/0332-Chunk-debug-command.patch @@ -441,19 +441,6 @@ index 84831fc611589c19320b5e3af107080596b1fbdc..fa6d91886d433c0b7d77c1d059a23ee1 private boolean hasChangedSections; private final ShortSet[] changedBlocksPerSection; private final BitSet blockChangedLightSectionFilter; -diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 95ac30f56a9268f14d2518974c5a52e08f40ea18..25826b41812f2d9ac29806ad7a9242e5674376fc 100644 ---- a/src/main/java/net/minecraft/server/level/ChunkMap.java -+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -110,7 +110,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - public final Long2ObjectLinkedOpenHashMap updatingChunkMap = new Long2ObjectLinkedOpenHashMap(); - public volatile Long2ObjectLinkedOpenHashMap visibleChunkMap; - private final Long2ObjectLinkedOpenHashMap pendingUnloads; -- private final LongSet entitiesInLevel; -+ public final LongSet entitiesInLevel; // Paper - private -> public - public final ServerLevel level; - private final ThreadedLevelLightEngine lightEngine; - private final BlockableEventLoop mainThreadExecutor; diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java index 71ac5cf0fdedcfe422bf6f5e6ffb15ce4138aa04..77bb2fb280293da4a38f9acc6503e84997ecb399 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java @@ -468,7 +455,7 @@ index 71ac5cf0fdedcfe422bf6f5e6ffb15ce4138aa04..77bb2fb280293da4a38f9acc6503e849 public final ChunkGenerator generator; final ServerLevel level; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c778ce951c1ca648faa5d6c02b331d34ffc71156..1e09fdfbc1a8f1014ad0f7c5db7c709fc454270e 100644 +index 6631a2b8cf99993d727d65a67af2bc7febb685b4..08b4e46109eb97746d0204e3797ebafce959b212 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -174,7 +174,7 @@ public class ServerLevel extends net.minecraft.world.level.Level implements Worl diff --git a/patches/server/0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch b/patches/server/0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch index 2eaf2e2ef7..c1310193c4 100644 --- a/patches/server/0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch +++ b/patches/server/0393-Optimize-PlayerChunkMap-memory-use-for-visibleChunks.patch @@ -70,7 +70,7 @@ index 9c88426ab1275ee5fb6e28be8b213533dc4ab859..87c9a5c1b43f6010898d72136b5eb997 List allChunks = new ArrayList<>(visibleChunks.values()); List players = world.players; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 002561c87ddd03e8bc31864ddd9dee7bc2ff0931..a80c4517cd0d2c5e7b71b4f86b6a8d441a9eb64e 100644 +index acc30f1ff6a3a9c067e312dc7b6b6fc6bc6904fe..0882552526d4de189f3af8b72653d776cb596859 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -107,9 +107,36 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider @@ -110,7 +110,7 @@ index 002561c87ddd03e8bc31864ddd9dee7bc2ff0931..a80c4517cd0d2c5e7b71b4f86b6a8d44 + // public final Long2ObjectLinkedOpenHashMap updatingChunkMap = new Long2ObjectLinkedOpenHashMap(); // Paper - moved up + // public volatile Long2ObjectLinkedOpenHashMap visibleChunkMap; // Paper - moved up private final Long2ObjectLinkedOpenHashMap pendingUnloads; - public final LongSet entitiesInLevel; // Paper - private -> public + public final LongSet entitiesInLevel; public final ServerLevel level; @@ -232,7 +259,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider