9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-19 14:59:32 +00:00

Fix endermite spawn (#632)

* Fix

* Remove location instance
This commit is contained in:
Lumine1909
2025-07-30 21:18:05 -07:00
committed by GitHub
parent e68eb3fe98
commit 4c4712d330
2 changed files with 37 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Lumine1909 <133463833Lumine1909@users.noreply.github.com>
Date: Thu, 31 Jul 2025 11:44:14 +0800
Subject: [PATCH] Fix endermite spawn position
diff --git a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
index 4b04ca7d50d7a85827bd89fff24434e603e99579..8030bd1935cdcf5a2673142bc3a19f7cc7be405b 100644
--- a/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
+++ b/net/minecraft/world/entity/projectile/ThrownEnderpearl.java
@@ -119,6 +119,9 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {
Vec3 vec3 = this.oldPosition();
if (owner instanceof ServerPlayer serverPlayer) {
if (serverPlayer.connection.isAcceptingMessages()) {
+ // Leaves start - vanilla endermite spawn
+ double x = serverPlayer.getX(), y = serverPlayer.getY(), z = serverPlayer.getZ();
+ float yaw = serverPlayer.getYRot(), pitch = serverPlayer.getXRot();
// CraftBukkit start
ServerPlayer serverPlayer1 = serverPlayer.teleport(new TeleportTransition(serverLevel, vec3, Vec3.ZERO, 0.0F, 0.0F, Relative.union(Relative.ROTATION, Relative.DELTA), TeleportTransition.DO_NOTHING, org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.ENDER_PEARL));
if (serverPlayer1 == null) {
@@ -129,7 +132,12 @@ public class ThrownEnderpearl extends ThrowableItemProjectile {
if (this.random.nextFloat() < 0.05F && serverLevel.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING)) {
Endermite endermite = EntityType.ENDERMITE.create(serverLevel, EntitySpawnReason.TRIGGERED);
if (endermite != null) {
- endermite.snapTo(owner.getX(), owner.getY(), owner.getZ(), owner.getYRot(), owner.getXRot());
+ if (org.leavesmc.leaves.LeavesConfig.fix.vanillaEndermiteSpawn) {
+ endermite.snapTo(x, y, z, yaw, pitch);
+ } else {
+ endermite.snapTo(owner.getX(), owner.getY(), owner.getZ(), owner.getYRot(), owner.getXRot());
+ }
+ // Leaves end - vanilla endermite spawn
serverLevel.addFreshEntity(endermite, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.ENDER_PEARL);
}
}

View File

@@ -1212,6 +1212,9 @@ public final class LeavesConfig {
@GlobalConfig("vanilla-fluid-pushing") @GlobalConfig("vanilla-fluid-pushing")
public boolean vanillaFluidPushing = true; public boolean vanillaFluidPushing = true;
@GlobalConfig("vanilla-endermite-spawn")
public boolean vanillaEndermiteSpawn = true;
@GlobalConfig(value = "collision-behavior") @GlobalConfig(value = "collision-behavior")
public CollisionBehavior collisionBehavior = CollisionBehavior.BLOCK_SHAPE_VANILLA; public CollisionBehavior collisionBehavior = CollisionBehavior.BLOCK_SHAPE_VANILLA;