Fix EntityTeleportEvent.ChorusFruit is not fired Closes #10906

This commit is contained in:
LexManos committed 2026-10-29 12:17:44 -07:00
1 parent cd8eccc29c
commit da7e5f8bfa
2 files changed
+16 -2

No files matched your search

@@ -0,0 +1,13 @@
--- a/net/minecraft/world/item/consume_effects/TeleportRandomlyConsumeEffect.java
+++ b/net/minecraft/world/item/consume_effects/TeleportRandomlyConsumeEffect.java
@@ -63,7 +_,9 @@
}
Vec3 oldPos = user.position();
- if (user.randomTeleport(xx, yy, zz, true, BlockTags.CONSUMABLE_DOES_NOT_TELEPORT_TO)) {
+ var event = net.minecraftforge.event.ForgeEventFactory.onChorusFruitTeleport(user, xx, yy, zz);
+ if (event == null) return false;
+ if (user.randomTeleport(event.getTargetX(), event.getTargetY(), event.getTargetZ(), true, BlockTags.CONSUMABLE_DOES_NOT_TELEPORT_TO)) {
level.gameEvent(GameEvent.TELEPORT, oldPos, GameEvent.Context.of(user));
SoundSource soundSource;
SoundEvent soundEvent;
@@ -705,8 +705,9 @@ public final class ForgeEventFactory {
return EntityTeleportEvent.EnderPearl.BUS.post(event) ? null : event;
}
public static EntityTeleportEvent.ChorusFruit onChorusFruitTeleport(LivingEntity entity, double targetX, double targetY, double targetZ) {
return EntityTeleportEvent.ChorusFruit.BUS.fire(new EntityTeleportEvent.ChorusFruit(entity, targetX, targetY, targetZ));
public static EntityTeleportEvent.@Nullable ChorusFruit onChorusFruitTeleport(LivingEntity entity, double targetX, double targetY, double targetZ) {
var event = new EntityTeleportEvent.ChorusFruit(entity, targetX, targetY, targetZ);
return EntityTeleportEvent.ChorusFruit.BUS.post(event) ? null : event;
}
public static boolean onPermissionChanged(NameAndId gameProfile, @Nullable LevelBasedPermissionSet newLevel, PlayerList playerList) {