diff options
author | Shane Freeder <[email protected]> | 2024-05-24 15:22:41 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2024-05-24 16:22:41 +0200 |
commit | 3004717b0e993ec4ec8a15e8e59f3f7677211769 (patch) | |
tree | 270a3af87bd019f7894c971b6469b4ddb6ad7926 | |
parent | 5e7b65a9a9c0c9f51679933447bfad543fc1e11d (diff) | |
download | Paper-3004717b0e993ec4ec8a15e8e59f3f7677211769.tar.gz Paper-3004717b0e993ec4ec8a15e8e59f3f7677211769.zip |
Do not re-wrap vanilla goals (#10751)
There is no need to rewrap vanilla goals when they're being reregistered,
this breaks some expectations around behavior outside of general
wasting of resources.
Resolves: #10743
-rw-r--r-- | patches/server/0359-Implement-Mob-Goal-API.patch | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/patches/server/0359-Implement-Mob-Goal-API.patch b/patches/server/0359-Implement-Mob-Goal-API.patch index 839c90905c..9d5657f814 100644 --- a/patches/server/0359-Implement-Mob-Goal-API.patch +++ b/patches/server/0359-Implement-Mob-Goal-API.patch @@ -461,10 +461,10 @@ index 0000000000000000000000000000000000000000..b5f75ad725f5933db8f0688b2c0b27d6 +} diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java b/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java new file mode 100644 -index 0000000000000000000000000000000000000000..02b3670cfc04209baa56d89f82b65ee30d656923 +index 0000000000000000000000000000000000000000..30ed9ffd6a65914d7545636150a09327aba047c3 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/entity/ai/PaperMobGoals.java -@@ -0,0 +1,216 @@ +@@ -0,0 +1,224 @@ +package com.destroystokyo.paper.entity.ai; + +import java.util.Collection; @@ -483,7 +483,15 @@ index 0000000000000000000000000000000000000000..02b3670cfc04209baa56d89f82b65ee3 + @Override + public <T extends Mob> void addGoal(T mob, int priority, Goal<T> goal) { + CraftMob craftMob = (CraftMob) mob; -+ getHandle(craftMob, goal.getTypes()).addGoal(priority, new PaperCustomGoal<>(goal)); ++ net.minecraft.world.entity.ai.goal.Goal mojangGoal; ++ ++ if (goal instanceof PaperVanillaGoal vanillaGoal) { ++ mojangGoal = vanillaGoal.getHandle(); ++ } else { ++ mojangGoal = new PaperCustomGoal<>(goal); ++ } ++ ++ getHandle(craftMob, goal.getTypes()).addGoal(priority, mojangGoal); + } + + @Override |