From eda086ea501bdee451022b3d102205d08eb61953 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Wed, 5 Jan 2022 14:22:32 -0500 Subject: [PATCH] Updated Upstream (Pufferfish) Upstream has released updates that appear to apply and compile correctly Pufferfish Changes: pufferfish-gg/Pufferfish@e535b1b Change goal selector from a disable to a throttle to improve vanilla parity --- .../0001-Pufferfish-Server-Changes.patch | 24 ++++++++++++------- patches/server/0006-Ridables.patch | 6 ++--- .../0056-Allow-leashing-villagers.patch | 4 ++-- ...ispenser-curse-of-binding-protection.patch | 4 ++-- patches/server/0079-Entity-lifespan.patch | 12 +++++----- ...16-Changeable-Mob-Left-Handed-Chance.patch | 4 ++-- ...iefing-bypass-to-everything-affected.patch | 4 ++-- ...187-API-for-any-mob-to-burn-daylight.patch | 4 ++-- 8 files changed, 34 insertions(+), 28 deletions(-) diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 63bdb93b2..cec826c3b 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -617,7 +617,7 @@ index 0000000000000000000000000000000000000000..020368da69b9a492155f6de6297f7473 +} diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..c32f284b5ce200c0f4dc7e22b986c10edee5a66f +index 0000000000000000000000000000000000000000..284f9eb542b686833ec54d4de6493d7dac5aa6b8 --- /dev/null +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java @@ -0,0 +1,266 @@ @@ -848,10 +848,10 @@ index 0000000000000000000000000000000000000000..c32f284b5ce200c0f4dc7e22b986c10e + setComment("dab", "Optimizes entity brains when", "they're far away from the player"); + } + -+ public static boolean disableInactiveGoalSelectorTick; -+ private static void inactiveGoalSelectorDisable() { -+ getBoolean("inactive-goal-selector-disable", true, -+ "Disables the AI goal selector in entity inactive ticks.", ++ public static boolean throttleInactiveGoalSelectorTick; ++ private static void inactiveGoalSelectorThrottle() { ++ getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", true, ++ "Throttles the AI goal selector in entity inactive ticks.", + "This can improve performance by a few percent, but has minor gameplay implications."); + } + @@ -2799,15 +2799,21 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..2c988e05299d530d483e21ab452de0a0 } diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..607e78c24edabb26fd7494855087f7f19cfdc576 100644 +index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..06e87f3564bfba17393f36d2188abfd2ee9ac650 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -210,10 +210,10 @@ public abstract class Mob extends LivingEntity { +@@ -206,14 +206,16 @@ public abstract class Mob extends LivingEntity { + return this.lookControl; + } + ++ int tickCount = 0; // Pufferfish - throttle inactive goal selector ticking + // Paper start @Override public void inactiveTick() { super.inactiveTick(); - if (this.goalSelector.inactiveTick()) { -+ if (this.goalSelector.inactiveTick(this.activatedPriority, true) && !gg.pufferfish.pufferfish.PufferfishConfig.disableInactiveGoalSelectorTick) { // Pufferfish - pass activated priroity // Pufferfish - disable inactive goal selector ticking ++ boolean isThrottled = gg.pufferfish.pufferfish.PufferfishConfig.throttleInactiveGoalSelectorTick && tickCount++ % 20 != 0; // Pufferfish - throttle inactive goal selector ticking ++ if (this.goalSelector.inactiveTick(this.activatedPriority, true) && !isThrottled) { // Pufferfish - pass activated priroity // Pufferfish - throttle inactive goal selector ticking this.goalSelector.tick(); } - if (this.targetSelector.inactiveTick()) { @@ -2815,7 +2821,7 @@ index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..607e78c24edabb26fd7494855087f7f1 this.targetSelector.tick(); } } -@@ -844,16 +844,20 @@ public abstract class Mob extends LivingEntity { +@@ -844,16 +846,20 @@ public abstract class Mob extends LivingEntity { if (i % 2 != 0 && this.tickCount > 1) { this.level.getProfiler().push("targetSelector"); diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index d69d5a494..7f3d87249 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -270,7 +270,7 @@ index 2c988e05299d530d483e21ab452de0a03e5bdcbd..46134547b26de59bb69c584df676bf09 // Paper end if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b14053c62c42 100644 +index 06e87f3564bfba17393f36d2188abfd2ee9ac650..ed1d5508d894f5d2f6e61899a2013cbe47fbbc73 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -143,6 +143,8 @@ public abstract class Mob extends LivingEntity { @@ -282,7 +282,7 @@ index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b140 this.jumpControl = new JumpControl(this); this.bodyRotationControl = this.createBodyControl(); this.navigation = this.createNavigation(world); -@@ -1304,7 +1306,7 @@ public abstract class Mob extends LivingEntity { +@@ -1306,7 +1308,7 @@ public abstract class Mob extends LivingEntity { protected void onOffspringSpawnedFromEgg(Player player, Mob child) {} protected InteractionResult mobInteract(Player player, InteractionHand hand) { @@ -291,7 +291,7 @@ index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b140 } public boolean isWithinRestriction() { -@@ -1665,4 +1667,52 @@ public abstract class Mob extends LivingEntity { +@@ -1667,4 +1669,52 @@ public abstract class Mob extends LivingEntity { return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg); } diff --git a/patches/server/0056-Allow-leashing-villagers.patch b/patches/server/0056-Allow-leashing-villagers.patch index 8ef527b32..331f5c298 100644 --- a/patches/server/0056-Allow-leashing-villagers.patch +++ b/patches/server/0056-Allow-leashing-villagers.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 65e7ce5cb473733b6a4ec89998f4b14053c62c42..a9f4f86fc2a3c6017acda35c90ae1b53937256c6 100644 +index ed1d5508d894f5d2f6e61899a2013cbe47fbbc73..fe58b02540b56b99a02067bdde1bcfa00c758f39 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1240,6 +1240,7 @@ public abstract class Mob extends LivingEntity { +@@ -1242,6 +1242,7 @@ public abstract class Mob extends LivingEntity { if (!this.isAlive()) { return InteractionResult.PASS; } else if (this.getLeashHolder() == player) { diff --git a/patches/server/0063-Dispenser-curse-of-binding-protection.patch b/patches/server/0063-Dispenser-curse-of-binding-protection.patch index de918516a..7ca8452d1 100644 --- a/patches/server/0063-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0063-Dispenser-curse-of-binding-protection.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index a9f4f86fc2a3c6017acda35c90ae1b53937256c6..033bf60ff92d26981ace3e3ccab91a52c7b4e241 100644 +index fe58b02540b56b99a02067bdde1bcfa00c758f39..9d43556ecdafed0605bfd6f65c4f5795a41261a9 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem; @@ -16,7 +16,7 @@ index a9f4f86fc2a3c6017acda35c90ae1b53937256c6..033bf60ff92d26981ace3e3ccab91a52 import net.minecraft.world.level.GameRules; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.Level; -@@ -1096,6 +1097,12 @@ public abstract class Mob extends LivingEntity { +@@ -1098,6 +1099,12 @@ public abstract class Mob extends LivingEntity { } diff --git a/patches/server/0079-Entity-lifespan.patch b/patches/server/0079-Entity-lifespan.patch index f0912c041..6b4b502b0 100644 --- a/patches/server/0079-Entity-lifespan.patch +++ b/patches/server/0079-Entity-lifespan.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf609184878 100644 +index 9d43556ecdafed0605bfd6f65c4f5795a41261a9..6f4396ab99bf87560544e3eb7f4e8711595af2ae 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity { @@ -16,7 +16,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6 public boolean aware = true; // CraftBukkit protected Mob(EntityType type, Level world) { -@@ -286,6 +287,7 @@ public abstract class Mob extends LivingEntity { +@@ -288,6 +289,7 @@ public abstract class Mob extends LivingEntity { entityliving = null; } } @@ -24,7 +24,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6 this.target = entityliving; return true; // CraftBukkit end -@@ -330,9 +332,35 @@ public abstract class Mob extends LivingEntity { +@@ -332,9 +334,35 @@ public abstract class Mob extends LivingEntity { this.playAmbientSound(); } @@ -60,7 +60,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6 @Override protected void playHurtSound(DamageSource source) { this.resetAmbientSoundTime(); -@@ -516,6 +544,7 @@ public abstract class Mob extends LivingEntity { +@@ -518,6 +546,7 @@ public abstract class Mob extends LivingEntity { } nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit @@ -68,7 +68,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6 } @Override -@@ -586,6 +615,11 @@ public abstract class Mob extends LivingEntity { +@@ -588,6 +617,11 @@ public abstract class Mob extends LivingEntity { this.aware = nbt.getBoolean("Bukkit.Aware"); } // CraftBukkit end @@ -80,7 +80,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6 } @Override -@@ -1611,6 +1645,7 @@ public abstract class Mob extends LivingEntity { +@@ -1613,6 +1647,7 @@ public abstract class Mob extends LivingEntity { this.setLastHurtMob(target); } diff --git a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch index db44d9b89..4a9dab605 100644 --- a/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0116-Changeable-Mob-Left-Handed-Chance.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 359b47daf27712bbd5f2b8fee5a2edf609184878..163ca04792388a9f27e5dc22def40ce5b9efbf11 100644 +index 6f4396ab99bf87560544e3eb7f4e8711595af2ae..a3b2d756df150e7be20983fa865b0743de4c91e7 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1229,7 +1229,7 @@ public abstract class Mob extends LivingEntity { +@@ -1231,7 +1231,7 @@ public abstract class Mob extends LivingEntity { @Nullable public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) { this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE)); diff --git a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch index ab2fcec60..ff6e122dc 100644 --- a/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0132-Add-mobGriefing-bypass-to-everything-affected.patch @@ -18,10 +18,10 @@ index 1bc7b7f016b0f58bad34dfd58e506967d61099e5..f86e65530182685517e12ea609a4bdcd BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState(); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 163ca04792388a9f27e5dc22def40ce5b9efbf11..4d2ed6947d661d0f40c9a40824cbd957806c5a3a 100644 +index a3b2d756df150e7be20983fa865b0743de4c91e7..c83107cf47eb1aad1bc445661a2703d468155642 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -664,7 +664,7 @@ public abstract class Mob extends LivingEntity { +@@ -666,7 +666,7 @@ public abstract class Mob extends LivingEntity { public void aiStep() { super.aiStep(); this.level.getProfiler().push("looting"); diff --git a/patches/server/0187-API-for-any-mob-to-burn-daylight.patch b/patches/server/0187-API-for-any-mob-to-burn-daylight.patch index 107c9f1e4..cfd8b01e4 100644 --- a/patches/server/0187-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0187-API-for-any-mob-to-burn-daylight.patch @@ -89,10 +89,10 @@ index b7d580fc174b69c23dbbc18e114f3d3119a8e9ea..bf01f496e2b89f6fbd44d845a12cdfae public boolean isSensitiveToWater() { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 4d2ed6947d661d0f40c9a40824cbd957806c5a3a..fd8c372169ebbca95ffdf23dc1a7d61bee420ed2 100644 +index c83107cf47eb1aad1bc445661a2703d468155642..6e57000706fa51cbde64a6c63d0da39e04b51826 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -1662,17 +1662,7 @@ public abstract class Mob extends LivingEntity { +@@ -1664,17 +1664,7 @@ public abstract class Mob extends LivingEntity { } public boolean isSunBurnTick() {