From 6e6456288a391c7e212134135cd6a232885a7de9 Mon Sep 17 00:00:00 2001 From: booky10 Date: Mon, 27 May 2024 00:42:06 +0200 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@d8d59e0 Fix NPE sending resource pack without prompt PaperMC/Paper@5a9afbe Fixes issues in the suppress dismount cancellation patch (#10735) PaperMC/Paper@0ad09de Make PaperSimplePluginClassLoader show class which is not found PaperMC/Paper@b3b3406 fix CompassMeta not being correct (#10737) PaperMC/Paper@591521e Check for more correct profile validation (#10730) PaperMC/Paper@7d2e5c3 Add an 'empty' RecipeChoice for certain ingredient slots (#10710) PaperMC/Paper@9bf4855 Add a better warning message than "Server performance will be affected" for CommandRegisteredEvent use (#10754) PaperMC/Paper@66cb880 Remove ThreadedWorldUpgrader patch PaperMC/Paper@980cff9 Fix compile PaperMC/Paper@d3ffa62 fix default item attributes PaperMC/Paper@b149584 Always show command exception stack traces in logs (#10766) PaperMC/Paper@a9201d4 Move logic in our patches to ItemType/BlockType (#10772) PaperMC/Paper@3de408e Fix equipment slot and group API (#10767) PaperMC/Paper@d408381 Print CommandRegisteredEvent deprecation warnings again (#10756) PaperMC/Paper@6de7a1f Improve default item attributes API (#10765) PaperMC/Paper@2a90732 Remove incorrect logic for Fireball#setVelocity (#10764) PaperMC/Paper@5e7b65a Allow using PluginLoader classpath API from Bukkit plugins (#10758) PaperMC/Paper@3004717 Do not re-wrap vanilla goals (#10751) PaperMC/Paper@377733d Use getter/setter on Mob for equipment drop chances (#10780) PaperMC/Paper@dff591d Allow to define new map cursor types (#10782) PaperMC/Paper@4fd3ac0 Update Player#getListeningPluginChannels Jdoc (#10778) PaperMC/Paper@535dca5 Fix a few issues with ItemMeta (#10740) PaperMC/Paper@26e90b9 Fix CraftMetaBlockState for data components (#10731) PaperMC/Paper@f0bd0cc Expose anvil cost in the API (#10682) PaperMC/Paper@41bee55 Fix NPE for color-related metas PaperMC/Paper@4e10fad reset meta block state on BlockStateMeta#setBlockState PaperMC/Paper@a7ae966 readd itemstack data sanitization (#10454) PaperMC/Paper@ca50b87 Clear firework item properly (#10793) PaperMC/Paper@9774a52 fix and cleanup loot table patches (#10100) PaperMC/Paper@ac4ee06 Fix integer overflow for lag compensating eating check (#10797) PaperMC/Paper@6649a17 Fix BlockStateMeta equals (#10795) PaperMC/Paper@1b8cdc6 Extend Player Interact cancellation to cover Jigsaw blocks (#10719) PaperMC/Paper@841ab41 Fix more item desync when an event is cancelled (#10654) PaperMC/Paper@b0e3ca4 Prevent NPE if hooked entity was cleared (#10712) PaperMC/Paper@347bbe3 Fix Cancelling BlockPlaceEvent calling onRemove (#10773) --- gradle.properties | 2 +- .../0002-Pufferfish-Server-Patches.patch | 97 +++++++++---------- patches/server/0003-Change-branding.patch | 8 +- .../0004-Add-CloudPlane-configuration.patch | 10 +- ...12-Resend-more-data-on-locale-change.patch | 8 +- settings.gradle.kts | 3 +- 6 files changed, 60 insertions(+), 68 deletions(-) diff --git a/gradle.properties b/gradle.properties index a25109d..7ce2c0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ version = 1.20.6-R0.1-SNAPSHOT mcVersion = 1.20.6 packageVersion = 1_20_R4 -paperRef = f17519338bc589c045e0b32bfc37e048b23544d5 +paperRef = 347bbe389786d5cdae7cd1c6ec32cacba2a9aac7 org.gradle.jvmargs = -Xmx2G diff --git a/patches/server/0002-Pufferfish-Server-Patches.patch b/patches/server/0002-Pufferfish-Server-Patches.patch index 4290b2d..67f7ade 100644 --- a/patches/server/0002-Pufferfish-Server-Patches.patch +++ b/patches/server/0002-Pufferfish-Server-Patches.patch @@ -2008,7 +2008,7 @@ index 300929a406905f5ff1ede664d5b99fb0938d4d2e..01a6b1135420ea659d092ddca499f281 throw new SignedMessageChain.DecodeException(SignedMessageChain.DecodeException.OUT_OF_ORDER_CHAT, org.bukkit.event.player.PlayerKickEvent.Cause.OUT_OF_ORDER_CHAT); // Paper - kick event causes } else { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index dbc86b8d4d2af6e5f7e678f2bb77fd39b85c04c5..a1e18fa1eb40199bc4414ace8f87f31a08012848 100644 +index 0ed42fa899721f83b598db05be1b5f321af3614a..64f35b254f322d573fd00232ffe27f3b80297277 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -317,6 +317,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop S spin(Function serverFactory) { AtomicReference atomicreference = new AtomicReference(); Thread thread = new io.papermc.paper.util.TickThread(() -> { // Paper - rewrite chunk system -@@ -2558,6 +2560,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop chunkConsumer) { diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index f16a69775332a08ed0e87d27acd0fc959359694c..05d7b66bb1087613e528b25b4e9e1e5d00e5a916 100644 +index a2279262c93408c11f5d2290b48fd794975e8cfe..ba1e0a61d3ecf73bfe962b5dfe892b4509278ae8 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -191,6 +191,7 @@ public class ServerEntity { @@ -2304,10 +2304,10 @@ index ca56a0b596976448da6bb2a0e82b3d5cd4133e12..7ca499376cb2b2de2676601d2b9008d0 this.getRandomBlockPosition(j, 0, k, 15, blockposition); this.tickPrecipitation(blockposition, chunk); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index c10401e587a710d49c4af481c1e531b4bf51f755..5ca3726e411ce9c7facac63d35b974617def0272 100644 +index 6a4637eef14cbd84bbe26ef16f004b8f93367a3d..2ca184235af8a3934f9797231a6191aa7755a527 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1330,6 +1330,7 @@ public class ServerPlayer extends Player { +@@ -1331,6 +1331,7 @@ public class ServerPlayer extends Player { this.setServerLevel(worldserver); this.connection.teleport(exit); // CraftBukkit - use internal teleport without event this.connection.resetPosition(); @@ -2315,7 +2315,7 @@ index c10401e587a710d49c4af481c1e531b4bf51f755..5ca3726e411ce9c7facac63d35b97461 worldserver.addDuringPortalTeleport(this); worldserver1.getProfiler().pop(); this.triggerDimensionChangeTriggers(worldserver1); -@@ -2111,6 +2112,7 @@ public class ServerPlayer extends Player { +@@ -2112,6 +2113,7 @@ public class ServerPlayer extends Player { public void moveTo(double x, double y, double z) { super.moveTo(x, y, z); this.connection.resetPosition(); @@ -2323,7 +2323,7 @@ index c10401e587a710d49c4af481c1e531b4bf51f755..5ca3726e411ce9c7facac63d35b97461 } @Override -@@ -2355,6 +2357,7 @@ public class ServerPlayer extends Player { +@@ -2356,6 +2358,7 @@ public class ServerPlayer extends Player { this.connection.send(new ClientboundSetCameraPacket(this.camera)); this.connection.resetPosition(); @@ -2331,7 +2331,7 @@ index c10401e587a710d49c4af481c1e531b4bf51f755..5ca3726e411ce9c7facac63d35b97461 } } -@@ -2810,6 +2813,7 @@ public class ServerPlayer extends Player { +@@ -2817,6 +2820,7 @@ public class ServerPlayer extends Player { public void forceSetPositionRotation(double x, double y, double z, float yaw, float pitch) { this.moveTo(x, y, z, yaw, pitch); this.connection.resetPosition(); @@ -2340,7 +2340,7 @@ index c10401e587a710d49c4af481c1e531b4bf51f755..5ca3726e411ce9c7facac63d35b97461 @Override diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b9b3277c8ed94e0cd30b20b9c00a33eaad48e5ac..c0e3f69b8c2b478c9879c19ed41664cfedd7c1a2 100644 +index c450447585af4c8cdc87abe871c229ff895c3e53..7f1957d84bc22940fae4928ef787d1f29c7c3a66 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -1154,6 +1154,13 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @@ -2455,10 +2455,10 @@ index f402dbbfe3a443e6bc51f88b85abe937852b52f0..3bf8b021e84df0ce277d48ac370f6224 int getContainerSize(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2bc85351e6e52f90da5fdb29d8d042a06132d742..2abb9194ea04918961774bc1d9f0ee291586e253 100644 +index 4ee843dfd826772c9157ca421d8fe1f36f814b51..3509f92ce7007cb57d57274f89d5957b488b8559 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -312,7 +312,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -311,7 +311,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess public double yo; public double zo; private Vec3 position; @@ -2467,7 +2467,7 @@ index 2bc85351e6e52f90da5fdb29d8d042a06132d742..2abb9194ea04918961774bc1d9f0ee29 private ChunkPos chunkPosition; private Vec3 deltaMovement; private float yRot; -@@ -481,29 +481,42 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -480,29 +480,42 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess this.isLegacyTrackingEntity = isLegacyTrackingEntity; } @@ -2520,7 +2520,7 @@ index 2bc85351e6e52f90da5fdb29d8d042a06132d742..2abb9194ea04918961774bc1d9f0ee29 public float getBukkitYaw() { return this.yRot; } -@@ -864,6 +877,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -863,6 +876,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public void tick() { @@ -2534,7 +2534,7 @@ index 2bc85351e6e52f90da5fdb29d8d042a06132d742..2abb9194ea04918961774bc1d9f0ee29 this.baseTick(); } -@@ -4478,16 +4498,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4483,16 +4503,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double speed) { @@ -2560,7 +2560,7 @@ index 2bc85351e6e52f90da5fdb29d8d042a06132d742..2abb9194ea04918961774bc1d9f0ee29 double d1 = 0.0D; boolean flag = this.isPushedByFluid(); boolean flag1 = false; -@@ -4495,14 +4517,61 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4500,14 +4522,61 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess int k1 = 0; BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(); @@ -2628,7 +2628,7 @@ index 2bc85351e6e52f90da5fdb29d8d042a06132d742..2abb9194ea04918961774bc1d9f0ee29 if (d2 >= axisalignedbb.minY) { flag1 = true; -@@ -4524,9 +4593,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4529,9 +4598,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess // CraftBukkit end } } @@ -2656,7 +2656,7 @@ index a46bf73c608641bf1f00fd55242de71a0f2ee06e..ba4b288e8db199ac31a1dbabd4cad522 return (EntityType) Registry.register(BuiltInRegistries.ENTITY_TYPE, id, (EntityType) type.build(id)); // CraftBukkit - decompile error } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 517e10c3d8b1549cd30fd0e7cf2bcb35e88eb8ed..9bba1b16ec3a1d64ef5f41365fc7eab23050bb35 100644 +index 0ddf2e1a6d2ea836f8a140a435721e0ce96bd8d2..f0f8eaab8f4a0ce0e27a687f5e021f3db8dba76d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -427,7 +427,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -2707,7 +2707,7 @@ index 517e10c3d8b1549cd30fd0e7cf2bcb35e88eb8ed..9bba1b16ec3a1d64ef5f41365fc7eab2 if (this.isSpectator()) { return false; diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index e89f9c3e887601d8461eb967ae0bf582b672f631..564bcd607aabd0b722486bf78929ff9f5c683996 100644 +index 9f42563699508fcb3d8a96cfdfc25a7bffd99759..d656c299b37c2f768d252dc11fbeff686253a6fc 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -237,14 +237,17 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti @@ -2971,7 +2971,7 @@ index 290d41136f5ec7671bc4990dfe50da0a770c124d..3e8ec8e74f3be96f9ad779a3867ff7ef this.level().getProfiler().pop(); this.level().getProfiler().push("tadpoleActivityUpdate"); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index 02e49c7ae5e120302b6479cf3e3934b9217eebf0..c9812753af0d6334e0c963980152a6905d922203 100644 +index 376bcbc189008464f4d518c1e07643431ba96306..63d44d2efbd2a4b1915ff41965db639a11e42fec 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -190,9 +190,12 @@ public class Goat extends Animal { @@ -3254,57 +3254,48 @@ index 74c596264d4da551437bd2a23e1c70022cfc73fc..260f39c35394f4f608a8f60cdbf2b615 if (entity != null) { this.ownerUUID = entity.getUUID(); diff --git a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java -index 2704389bc3ec6dbbf1b568a4380972f8c0d62d15..c53cdaa59da87d96e34f06185b1f73e56a5bfc6c 100644 +index 9549eee0d92f322bd5232abd7e695213660c2e22..a50e665526428c4b4919fe2af954a826eaf4bbcc 100644 --- a/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java +++ b/src/main/java/net/minecraft/world/entity/vehicle/AbstractMinecartContainer.java -@@ -30,7 +30,10 @@ import org.bukkit.inventory.InventoryHolder; +@@ -30,6 +30,7 @@ import org.bukkit.inventory.InventoryHolder; public abstract class AbstractMinecartContainer extends AbstractMinecart implements ContainerEntity { -+ // Pufferfish start ++ private gg.airplane.structs.ItemListWithBitset itemStacksOptimized; // Pufferfish private NonNullList itemStacks; -+ private gg.airplane.structs.ItemListWithBitset itemStacksOptimized; -+ // Pufferfish end @Nullable public ResourceKey lootTable; - public long lootTableSeed; -@@ -92,12 +95,18 @@ public abstract class AbstractMinecartContainer extends AbstractMinecart impleme +@@ -86,12 +87,12 @@ public abstract class AbstractMinecartContainer extends AbstractMinecart impleme protected AbstractMinecartContainer(EntityType type, Level world) { super(type, world); - this.itemStacks = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); // CraftBukkit - SPIGOT-3513 -+ // Pufferfish start -+ this.itemStacksOptimized = new gg.airplane.structs.ItemListWithBitset(this.getContainerSize()); // CraftBukkit - SPIGOT-3513 -+ this.itemStacks = this.itemStacksOptimized.nonNullList; -+ // Pufferfish end ++ this.clearItemStacks(); // Pufferfish } protected AbstractMinecartContainer(EntityType type, double x, double y, double z, Level world) { super(type, world, x, y, z); - this.itemStacks = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); // CraftBukkit - SPIGOT-3513 -+ // Pufferfish start -+ this.itemStacksOptimized = new gg.airplane.structs.ItemListWithBitset(this.getContainerSize()); // CraftBukkit - SPIGOT-3513 -+ this.itemStacks = this.itemStacksOptimized.nonNullList; -+ // Pufferfish end ++ this.clearItemStacks(); // Pufferfish } @Override -@@ -166,6 +175,10 @@ public abstract class AbstractMinecartContainer extends AbstractMinecart impleme - protected void readAdditionalSaveData(CompoundTag nbt) { - super.readAdditionalSaveData(nbt); - this.lootableData.loadNbt(nbt); // Paper +@@ -234,6 +235,9 @@ public abstract class AbstractMinecartContainer extends AbstractMinecart impleme + + @Override + public void clearItemStacks() { +- this.itemStacks = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); + // Pufferfish start + this.itemStacksOptimized = new gg.airplane.structs.ItemListWithBitset(this.getContainerSize()); + this.itemStacks = this.itemStacksOptimized.nonNullList; + // Pufferfish end - this.readChestVehicleSaveData(nbt, this.registryAccess()); } - + } diff --git a/src/main/java/net/minecraft/world/item/EndCrystalItem.java b/src/main/java/net/minecraft/world/item/EndCrystalItem.java -index dd1bdb4bb87a3a59c229ba76b36841d199717624..42d13b03119af88838ca9cd36000162c04787493 100644 +index 5f51e64cb0611a4ba6bdcdcacbcba1063a7f3a5c..cc1e5882bee94864ad189d7f01ce78223411e51d 100644 --- a/src/main/java/net/minecraft/world/item/EndCrystalItem.java +++ b/src/main/java/net/minecraft/world/item/EndCrystalItem.java -@@ -56,7 +56,7 @@ public class EndCrystalItem extends Item { +@@ -57,7 +57,7 @@ public class EndCrystalItem extends Item { world.gameEvent((Entity) context.getPlayer(), (Holder) GameEvent.ENTITY_PLACE, blockposition1); EndDragonFight enderdragonbattle = ((ServerLevel) world).getDragonFight(); @@ -3369,10 +3360,10 @@ index 3554109bcc4651ca93b6275c914e57e007e2204e..1907b9481e4dbdefe0d93e53b1b72e92 autorecipestackmanager.initialize(this); // Paper - better exact choice recipes int i = 0; diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b4ef3ad2c17168085372f1fe46809f02d9dfe74a..cd00bac90d289a770e5c2723b36462a3d7bda88f 100644 +index 14281a4e72f49dc4eb2ca3da8479c1f81a3a175d..fdd51dd4a244775a1a172ae435be087a90a03e68 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -213,6 +213,20 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -205,6 +205,20 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public abstract ResourceKey getTypeKey(); @@ -3393,7 +3384,7 @@ index b4ef3ad2c17168085372f1fe46809f02d9dfe74a..cd00bac90d289a770e5c2723b36462a3 protected Level(WritableLevelData worlddatamutable, ResourceKey resourcekey, RegistryAccess iregistrycustom, Holder holder, Supplier supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function paperWorldConfigCreator, java.util.concurrent.Executor executor) { // Paper - create paper world config; Async-Anti-Xray: Pass executor this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config -@@ -232,6 +246,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -224,6 +238,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.dimensionTypeRegistration = holder; final DimensionType dimensionmanager = (DimensionType) holder.value(); @@ -3408,7 +3399,7 @@ index b4ef3ad2c17168085372f1fe46809f02d9dfe74a..cd00bac90d289a770e5c2723b36462a3 this.dimension = resourcekey; this.isClientSide = flag; if (dimensionmanager.coordinateScale() != 1.0D) { -@@ -297,8 +319,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -289,8 +311,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime); this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray // Paper start - optimise collisions @@ -3419,7 +3410,7 @@ index b4ef3ad2c17168085372f1fe46809f02d9dfe74a..cd00bac90d289a770e5c2723b36462a3 // Paper end - optimise collisions } -@@ -712,6 +734,33 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -704,6 +726,33 @@ public abstract class Level implements LevelAccessor, AutoCloseable { return null; } @@ -3453,7 +3444,7 @@ index b4ef3ad2c17168085372f1fe46809f02d9dfe74a..cd00bac90d289a770e5c2723b36462a3 // Paper start - Broken down method of raytracing for EntityLiving#hasLineOfSight, replaces BlockGetter#clip(CollisionContext) public net.minecraft.world.phys.BlockHitResult.Type clipDirect(Vec3 start, Vec3 end, net.minecraft.world.phys.shapes.CollisionContext context) { // most of this code comes from BlockGetter#clip(CollisionContext, BiFunction, Function), but removes the needless functions -@@ -1308,13 +1357,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1300,13 +1349,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable { try { tickConsumer.accept(entity); MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick @@ -3469,7 +3460,7 @@ index b4ef3ad2c17168085372f1fe46809f02d9dfe74a..cd00bac90d289a770e5c2723b36462a3 // Paper end - Prevent block entity and entity crashes } } -@@ -1789,6 +1838,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -1781,6 +1830,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable { } public ProfilerFiller getProfiler() { @@ -3698,10 +3689,10 @@ index 8310d132006043e93c612890514c4c7f3eb1c74d..74e80ac798bf0535659a2d2f0d003534 public static void entityInside(Level world, BlockPos pos, BlockState state, Entity entity, HopperBlockEntity blockEntity) { diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index 17da915ffa638500a83b67db0940a7b9a9b333a1..5682039a18de20bacdac804db8da47953b22d653 100644 +index e2752752417c50b06f7c15b7d00bda0eaad3b0ae..23cb5d00e9f171f445f3dc8cd3947450da979da3 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -@@ -99,7 +99,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc +@@ -48,7 +48,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @Override public boolean isEmpty() { this.unpackLootTable(null); @@ -3711,7 +3702,7 @@ index 17da915ffa638500a83b67db0940a7b9a9b333a1..5682039a18de20bacdac804db8da4795 @Override diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 2a8609e33716949ff1877b6d10f64a9d7a7c81e9..8d6b95bc46e17fcbda6dbec0f77a451df884cbaa 100644 +index 14ee7b5b9b804bebd4e2a846b238547a28a36035..e5b7a14c0325cf0c35a03890d2526a90a1b17fad 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -88,6 +88,18 @@ public class LevelChunk extends ChunkAccess { @@ -3954,7 +3945,7 @@ index 88a4a72bb390947dc17e5da09a99b2d1b3ac4621..d52b48181feca2ab9723a7342240bd51 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2fa5507aa2153a05208077f9547c165a1099b5bb..978f29a76af86e3e1397551d79cdec4fecec071a 100644 +index af015237214cebc4d1c4bb9e9c5f939d433e365c..eca42acc4dd92d0466e2625191b814038f748f30 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1124,6 +1124,11 @@ public final class CraftServer implements Server { diff --git a/patches/server/0003-Change-branding.patch b/patches/server/0003-Change-branding.patch index 4dc819e..2987715 100644 --- a/patches/server/0003-Change-branding.patch +++ b/patches/server/0003-Change-branding.patch @@ -70,7 +70,7 @@ index 4b002e8b75d117b726b0de274a76d3596fce015b..111dcc7284166e7d5e7014ecf00df48a 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 532306cacd52579cdf37e4aca25887b1ed3ba6a1..8735c0b8e599d226d4a2d9ae15e18a903b73e422 100644 +index 532306cacd52579cdf37e4aca25887b1ed3ba6a1..443b4702dda601962e7e59cdf2f22002837d6542 100644 --- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java +++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java @@ -35,7 +35,7 @@ public class PaperVersionFetcher implements VersionFetcher { @@ -78,7 +78,7 @@ index 532306cacd52579cdf37e4aca25887b1ed3ba6a1..8735c0b8e599d226d4a2d9ae15e18a90 private static final int DISTANCE_ERROR = -1; private static final int DISTANCE_UNKNOWN = -2; - private static final String DOWNLOAD_PAGE = "https://papermc.io/downloads/paper"; -+ private static final String DOWNLOAD_PAGE = "https://dl.cloudcraftmc.de/r/cloudplane"; // CloudPlane ++ private static final String DOWNLOAD_PAGE = "https://dl.cloudcraftmc.de/CloudPlane"; // CloudPlane @Override public long getCacheTime() { @@ -92,7 +92,7 @@ index 532306cacd52579cdf37e4aca25887b1ed3ba6a1..8735c0b8e599d226d4a2d9ae15e18a90 final @Nullable Component history = this.getHistory(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index e02102280ed1dc300191d19bbca8f00e17701753..00309c8e383d77a1263cb247b1c896f99ff32722 100644 +index e02102280ed1dc300191d19bbca8f00e17701753..fa1c94da6894d37a9d986c1d32aac73ce4bf312d 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -303,7 +303,7 @@ public class Main { @@ -100,7 +100,7 @@ index e02102280ed1dc300191d19bbca8f00e17701753..00309c8e383d77a1263cb247b1c896f9 // Paper start - This is some stupid bullshit System.err.println("*** Warning, you've not updated in a while! ***"); - System.err.println("*** Please download a new build as per instructions from https://papermc.io/downloads/paper ***"); // Paper -+ System.err.println("*** Please download a new build as per instructions from https://dl.cloudcraftmc.de/r/cloudplane ***"); // Paper // CloudPlane ++ System.err.println("*** Please download a new build as per instructions from https://dl.cloudcraftmc.de/CloudPlane ***"); // Paper // CloudPlane //System.err.println("*** Server will start in 20 seconds ***"); //Thread.sleep(TimeUnit.SECONDS.toMillis(20)); // Paper end diff --git a/patches/server/0004-Add-CloudPlane-configuration.patch b/patches/server/0004-Add-CloudPlane-configuration.patch index 97279b0..cf15c0e 100644 --- a/patches/server/0004-Add-CloudPlane-configuration.patch +++ b/patches/server/0004-Add-CloudPlane-configuration.patch @@ -225,10 +225,10 @@ index 6fb2a857d65d7b5de5fd8da224aa8dda79fe3505..b69eeb58eb93869ed1637b7e98eededf this.setPvpAllowed(dedicatedserverproperties.pvp); this.setFlightAllowed(dedicatedserverproperties.allowFlight); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index cd00bac90d289a770e5c2723b36462a3d7bda88f..535f000000a9670e07713deda82c2f47f9730859 100644 +index fdd51dd4a244775a1a172ae435be087a90a03e68..59c135fb5fe94bb0266be319885f0104525c8098 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java -@@ -226,10 +226,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { +@@ -218,10 +218,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { private final int height; private final int maxBuildHeight; // Pufferfish end @@ -242,7 +242,7 @@ index cd00bac90d289a770e5c2723b36462a3d7bda88f..535f000000a9670e07713deda82c2f47 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 978f29a76af86e3e1397551d79cdec4fecec071a..09144d69edf6e2f90378d37a3d3434f61af9c015 100644 +index eca42acc4dd92d0466e2625191b814038f748f30..98cdffe03b6dcb3c733040ed815f5deca47ac234 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -1033,6 +1033,7 @@ public final class CraftServer implements Server { @@ -253,7 +253,7 @@ index 978f29a76af86e3e1397551d79cdec4fecec071a..09144d69edf6e2f90378d37a3d3434f6 for (ServerLevel world : this.console.getAllLevels()) { // world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean)) -@@ -3039,6 +3040,13 @@ public final class CraftServer implements Server { +@@ -3034,6 +3035,13 @@ public final class CraftServer implements Server { return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console); } @@ -268,7 +268,7 @@ index 978f29a76af86e3e1397551d79cdec4fecec071a..09144d69edf6e2f90378d37a3d3434f6 public void restart() { org.spigotmc.RestartCommand.restart(); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 00309c8e383d77a1263cb247b1c896f99ff32722..f5439b615b7a9d5317647b723120c86e3616007e 100644 +index fa1c94da6894d37a9d986c1d32aac73ce4bf312d..d853454c04dd1abf6e535bedd29b468d3669f198 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -176,6 +176,14 @@ public class Main { diff --git a/patches/server/0012-Resend-more-data-on-locale-change.patch b/patches/server/0012-Resend-more-data-on-locale-change.patch index 30b63a3..4590dbf 100644 --- a/patches/server/0012-Resend-more-data-on-locale-change.patch +++ b/patches/server/0012-Resend-more-data-on-locale-change.patch @@ -27,7 +27,7 @@ index c7e1f2bac3eca9bb72bf1f8c26cccb2905e1ddfc..4ce4479619cc189e1d6999537deaceff this.player = owner; } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 856fc37dddaf0bf76f9f8396524488ac077f5bf8..a2fe2f667046220ae802326e9c765f0e05ffe284 100644 +index 2ca184235af8a3934f9797231a6191aa7755a527..5d1dcc1328df8e2ec7380db6afbab37a94d8cfaa 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -346,6 +346,10 @@ public class ServerPlayer extends Player { @@ -41,7 +41,7 @@ index 856fc37dddaf0bf76f9f8396524488ac077f5bf8..a2fe2f667046220ae802326e9c765f0e public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); this.chatVisibility = ChatVisiblity.FULL; -@@ -2242,6 +2246,34 @@ public class ServerPlayer extends Player { +@@ -2243,6 +2247,34 @@ public class ServerPlayer extends Player { PlayerLocaleChangeEvent event = new PlayerLocaleChangeEvent(this.getBukkitEntity(), clientOptions.language()); this.server.server.getPluginManager().callEvent(event); this.server.server.getPluginManager().callEvent(new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), this.language, clientOptions.language())); // Paper @@ -90,10 +90,10 @@ index a658943669cdfd49f66ba713505d11b33306ed86..f3a3fd37de7660738ef843f226a30fed public static final EntityDataAccessor DATA_BACKGROUND_COLOR_ID = SynchedEntityData.defineId( Display.TextDisplay.class, EntityDataSerializers.INT diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 2abb9194ea04918961774bc1d9f0ee291586e253..5eab41f6e3a4379d5efd0eeff9522b23cf9ee1ef 100644 +index 3509f92ce7007cb57d57274f89d5957b488b8559..49586b18d8500aeef17529e73557d60aa74f41c2 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -360,7 +360,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -359,7 +359,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess protected static final int FLAG_GLOWING = 6; protected static final int FLAG_FALL_FLYING = 7; private static final EntityDataAccessor DATA_AIR_SUPPLY_ID = SynchedEntityData.defineId(Entity.class, EntityDataSerializers.INT); diff --git a/settings.gradle.kts b/settings.gradle.kts index d929b2f..c554f41 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,6 +1,7 @@ +rootProject.name = "CloudPlane" + plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } -rootProject.name = "CloudPlane" include("CloudPlane-API", "CloudPlane-Server", "test-plugin")