From 5ee0c1b95ce2f8828622bc7b1224de0e672c2bd2 Mon Sep 17 00:00:00 2001 From: granny Date: Sat, 8 Jul 2023 22:18:51 -0700 Subject: [PATCH] Updated Upstream (Paper) Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@dadd8b5 Don't allow for supporting block checks to load chunks PaperMC/Paper@48ea66e Optimize player lookups for beacons PaperMC/Paper@d7d3f63 [ci skip] Use Nullable annotation for Entity source (#9435) PaperMC/Paper@e105354 Fix incorrect new blockdata in EntityChangeBlockEvent (#9445) PaperMC/Paper@5de0f8a Add Sign#getInteractableSideFor (#9388) --- gradle.properties | 2 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 4 +-- ...iefing-bypass-to-everything-affected.patch | 32 +++++++++---------- ...urable-ravager-griefable-blocks-list.patch | 4 +-- .../server/0227-Signs-allow-color-codes.patch | 6 ++-- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1a93d5cae..c1b249278 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ group = org.purpurmc.purpur version = 1.20.1-R0.1-SNAPSHOT mcVersion = 1.20.1 -paperCommit = 12c970097d5044bf4124169745ad63efffc4a4ad +paperCommit = 5de0f8ac48944c6fe4dd127390a0ea08705cc2d9 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 529fe9428..7ca7dca56 100644 --- a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -8,7 +8,7 @@ farm Nether Wart. Reimplemented based on a feature of the carpet-extra mod. diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java -index b7abd8309a7d9744d3b3df9be8cad54f8909cc15..46a7cd845682d54e178e7e6573bfe855a54b78a9 100644 +index d3a2a6dee2d83b3df0ddc521c080f7d72b709461..66a568e6803b91040f3933d4598c52fa518badab 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java @@ -40,6 +40,7 @@ public class HarvestFarmland extends Behavior { @@ -45,7 +45,7 @@ index b7abd8309a7d9744d3b3df9be8cad54f8909cc15..46a7cd845682d54e178e7e6573bfe855 - if (block instanceof CropBlock && ((CropBlock) block).isMaxAge(iblockdata)) { + if (block instanceof CropBlock && ((CropBlock) block).isMaxAge(iblockdata) && !this.clericWartFarmer || this.clericWartFarmer && block == Blocks.NETHER_WART && iblockdata.getValue(net.minecraft.world.level.block.NetherWartBlock.AGE) == 3) { // Purpur - if (CraftEventFactory.callEntityChangeBlockEvent(entity, this.aboveFarmlandPos, Blocks.AIR.defaultBlockState())) { // CraftBukkit + if (CraftEventFactory.callEntityChangeBlockEvent(entity, this.aboveFarmlandPos, iblockdata.getFluidState().createLegacyBlock())) { // CraftBukkit // Paper - fix wrong block state world.destroyBlock(this.aboveFarmlandPos, true, entity); } // CraftBukkit } diff --git a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch index 226042f49..11652d07b 100644 --- a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch @@ -31,7 +31,7 @@ index 4e5a261ccb7fb63b82ac7194598729fd60a20840..d24f94f2c27523af10184cae27157169 List list = this.level().getEntitiesOfClass(ItemEntity.class, this.getBoundingBox().inflate((double) baseblockposition.getX(), (double) baseblockposition.getY(), (double) baseblockposition.getZ())); Iterator iterator = list.iterator(); diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java -index 46a7cd845682d54e178e7e6573bfe855a54b78a9..9434d63cd80fec0aa4b6448c1ce462e2d9d56f0a 100644 +index 66a568e6803b91040f3933d4598c52fa518badab..a1acc479c9d6a838e3180da3ac8a3a02d22db5c1 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java @@ -47,7 +47,7 @@ public class HarvestFarmland extends Behavior { @@ -44,7 +44,7 @@ index 46a7cd845682d54e178e7e6573bfe855a54b78a9..9434d63cd80fec0aa4b6448c1ce462e2 } else if (entity.getVillagerData().getProfession() != VillagerProfession.FARMER && !(world.purpurConfig.villagerClericsFarmWarts && entity.getVillagerData().getProfession() == VillagerProfession.CLERIC)) { // Purpur return false; diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java -index 4253b3b1263a7ae5a2f5f3a34674dfea615a81ea..a987c94fd321f51241c405659d6a0b2327a612ae 100644 +index 784a894688f98f9d0368a36d456c5c94e1ee3695..c6980e40b5e6093906f88509d5ed05691e478c46 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java @@ -32,7 +32,7 @@ public class BreakDoorGoal extends DoorInteractGoal { @@ -57,19 +57,19 @@ index 4253b3b1263a7ae5a2f5f3a34674dfea615a81ea..a987c94fd321f51241c405659d6a0b23 @Override diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java -index 77542bbdfdc2bf0ec1527ad8551493e1d89da40c..865c6d91b854e3afc2482dab3b041856bafbb1e6 100644 +index b0caf52d00d8cd76550ab116291f8e11144a5e59..81d89f0a6fa9779eff5bc7059eae9b0d44db8e61 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java -@@ -68,7 +68,7 @@ public class EatBlockGoal extends Goal { - BlockPos blockposition = this.mob.blockPosition(); +@@ -69,7 +69,7 @@ public class EatBlockGoal extends Goal { - if (EatBlockGoal.IS_TALL_GRASS.test(this.level.getBlockState(blockposition))) { -- if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, Blocks.AIR.defaultBlockState(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit -+ if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, Blocks.AIR.defaultBlockState(), !this.level.purpurConfig.sheepBypassMobGriefing && !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Purpur + final BlockState blockState = this.level.getBlockState(blockposition); // Paper - fix wrong block state + if (EatBlockGoal.IS_TALL_GRASS.test(blockState)) { // Paper - fix wrong block state +- if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, blockState.getFluidState().createLegacyBlock(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Paper - fix wrong block state ++ if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, blockState.getFluidState().createLegacyBlock(), !this.level.purpurConfig.sheepBypassMobGriefing && !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Paper - fix wrong block state // Purpur this.level.destroyBlock(blockposition, false); } -@@ -77,7 +77,7 @@ public class EatBlockGoal extends Goal { +@@ -78,7 +78,7 @@ public class EatBlockGoal extends Goal { BlockPos blockposition1 = blockposition.below(); if (this.level.getBlockState(blockposition1).is(Blocks.GRASS_BLOCK)) { @@ -105,7 +105,7 @@ index 2cf00af66b73e1891fadcabcf83307873cbed710..2a6f6753ce9b7ab899256edc181a92c1 if (iblockdata.is(Blocks.SWEET_BERRY_BUSH)) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 6b07750c2bd2aa828f3a0a1ccf30520723f5d62b..c08b854da55a7b06147b627955cd1f94ccc65325 100644 +index 787391763cac2ae6ed9c178c44616b992849e819..0187af6c3380c1880ae1e3b8982b1543ae9da4a5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -633,7 +633,7 @@ public class Rabbit extends Animal implements VariantHolder { @@ -144,7 +144,7 @@ index 81cf89bc57af0f43d05ba93256255155bf0c4d53..2b0aac1e4291549efa6391cb3b414921 // flag1 = this.level().removeBlock(blockposition, false) || flag1; flag1 = true; diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 0b33ddf80381c312d02d93e31c9513e3c5214aed..9fb3fffd53f37b06811de6907a71e9fd9f4eb2b8 100644 +index b395d5c85f26ca4252d3f8f886b2ee5a7892af5f..17432b434c899a4d075e4619b4a2bfe3d5761b49 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -485,7 +485,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -157,7 +157,7 @@ index 0b33ddf80381c312d02d93e31c9513e3c5214aed..9fb3fffd53f37b06811de6907a71e9fd j = Mth.floor(this.getX()); int i1 = Mth.floor(this.getZ()); diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 306ea8ef2c51f6815691865739696b3e78f7a987..488296bee4ae01ef139e02ab0d3580147e001715 100644 +index f49cbb9fcd13afc10aa76ac80128162a902ae345..65a6073a976ce0924ce3a9c7a34253b7e5a9fcec 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -542,7 +542,15 @@ public class EnderMan extends Monster implements NeutralMob { @@ -208,7 +208,7 @@ index f71a70a72ba0bb01c26291ad9dbdd3b01bbf6ee7..ea2a2c56f94d03b73a5e3a06f91aee7f } else { List list = Evoker.this.level().getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 1a919c29d0c601296e5c6c0bf0ebd95de55eda0a..34d259ae3dbaefdb4a7e2fffd63d72b8b247f053 100644 +index 92b14a6056dfbf07852fc0ee0e3eaf7b4c1657a4..ab13d20dda5a8af471fd459950e7c3e2215e59db 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -193,7 +193,7 @@ public class Ravager extends Raider { @@ -221,10 +221,10 @@ index 1a919c29d0c601296e5c6c0bf0ebd95de55eda0a..34d259ae3dbaefdb4a7e2fffd63d72b8 AABB axisalignedbb = this.getBoundingBox().inflate(0.2D); Iterator iterator = BlockPos.betweenClosed(Mth.floor(axisalignedbb.minX), Mth.floor(axisalignedbb.minY), Mth.floor(axisalignedbb.minZ), Mth.floor(axisalignedbb.maxX), Mth.floor(axisalignedbb.maxY), Mth.floor(axisalignedbb.maxZ)).iterator(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 5539cc692ea3ca89d7c1661a139ddf02c9076818..31a48501d59297c51eee9c7bd836ab2d119fe3b7 100644 +index 43b330e263ebe20b76629c350bf7773220f6583e..8f813469ece9f57b19335a155e97d73ed8ce1478 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -210,7 +210,7 @@ public class Silverfish extends Monster { +@@ -208,7 +208,7 @@ public class Silverfish extends Monster { continue; } // CraftBukkit end @@ -233,7 +233,7 @@ index 5539cc692ea3ca89d7c1661a139ddf02c9076818..31a48501d59297c51eee9c7bd836ab2d world.destroyBlock(blockposition1, true, this.silverfish); } else { world.setBlock(blockposition1, ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)), 3); -@@ -248,7 +248,7 @@ public class Silverfish extends Monster { +@@ -246,7 +246,7 @@ public class Silverfish extends Monster { } else { RandomSource randomsource = this.mob.getRandom(); diff --git a/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch index 7c172d774..1335eca18 100644 --- a/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable ravager griefable blocks list diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 756bcc3b5489a8af1a9b9ef403fdcd7b39b07693..ba0fdfb017db4c9e5250e7b8e22c61045250b0f3 100644 +index d56e80014621dbd7e445f2f753807bd2b751310d..1de85b0a3aafb725452197de245e884cacdb4e3b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -208,7 +208,7 @@ public class Ravager extends Raider { @@ -15,7 +15,7 @@ index 756bcc3b5489a8af1a9b9ef403fdcd7b39b07693..ba0fdfb017db4c9e5250e7b8e22c6104 - if (block instanceof LeavesBlock) { + if (this.level().purpurConfig.ravagerGriefableBlocks.contains(block)) { // Purpur // CraftBukkit start - if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - use correct block state + if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state continue; diff --git a/src/main/java/net/minecraft/world/level/block/CropBlock.java b/src/main/java/net/minecraft/world/level/block/CropBlock.java index 5ba5a510b30917235e135ccda1b7c98cb7dd93ec..373fda589014c71c07170ec6707d5ff66d46ddd5 100644 diff --git a/patches/server/0227-Signs-allow-color-codes.patch b/patches/server/0227-Signs-allow-color-codes.patch index ba29efc45..907ea20ff 100644 --- a/patches/server/0227-Signs-allow-color-codes.patch +++ b/patches/server/0227-Signs-allow-color-codes.patch @@ -17,10 +17,10 @@ index 5b54ca77202ae90fd439ea29572e15858c0a0bab..c8c43454a936dd04d71fd82c955191f7 this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos(), front)); } diff --git a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -index 0521240dddde12d78cc05deda7fac11690f5d155..e326c289fd33b5a9fe49eebaedb29abbdd9a0e4b 100644 +index f356196aaeb498a6d2c9ad2112329cef5a3103d6..fe25ef1d32e369409ac094aa0fb013f9506a1c9d 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/SignBlockEntity.java -@@ -203,11 +203,18 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C +@@ -208,11 +208,18 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C FilteredText filteredtext = (FilteredText) list.get(i); Style chatmodifier = signtext.getMessage(i, entityhuman.isTextFilteringEnabled()).getStyle(); @@ -42,7 +42,7 @@ index 0521240dddde12d78cc05deda7fac11690f5d155..e326c289fd33b5a9fe49eebaedb29abb } // CraftBukkit start -@@ -346,6 +353,23 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C +@@ -351,6 +358,23 @@ public class SignBlockEntity extends BlockEntity implements CommandSource { // C return ClientboundBlockEntityDataPacket.create(this); }