1
0
mirror of https://github.com/GeyserMC/Geyser.git synced 2025-12-19 14:59:27 +00:00

Fixed nautilus entity crash, correct entity definition. (#6036)

This commit is contained in:
oryxel
2025-12-11 21:15:37 +07:00
committed by GitHub
parent 88c93d93e1
commit 238573536b
3 changed files with 12 additions and 8 deletions

View File

@@ -1225,10 +1225,17 @@ public final class EntityDefinitions {
.build();
}
EntityDefinition<TameableEntity> tameableEntityBase = EntityDefinition.<TameableEntity>inherited(null, ageableEntityBase) // No factory, is abstract
.addTranslator(MetadataTypes.BYTE, TameableEntity::setTameableFlags)
.addTranslator(MetadataTypes.OPTIONAL_LIVING_ENTITY_REFERENCE, TameableEntity::setOwner)
.build();
// Nautilus
{
EntityDefinition<AbstractNautilusEntity> abstractNautilusBase = EntityDefinition.<AbstractNautilusEntity>inherited(null, ageableEntityBase) // No factory, is abstract
.build();
EntityDefinition<AbstractNautilusEntity> abstractNautilusBase = EntityDefinition.<AbstractNautilusEntity>inherited(null, tameableEntityBase) // No factory, is abstract
.width(0.95f).height(0.875f)
.addTranslator(null)
.build();
NAUTILUS = EntityDefinition.inherited(NautilusEntity::new, abstractNautilusBase)
.type(EntityType.NAUTILUS)
@@ -1241,10 +1248,6 @@ public final class EntityDefinitions {
.build();
}
EntityDefinition<TameableEntity> tameableEntityBase = EntityDefinition.<TameableEntity>inherited(null, ageableEntityBase) // No factory, is abstract
.addTranslator(MetadataTypes.BYTE, TameableEntity::setTameableFlags)
.addTranslator(MetadataTypes.OPTIONAL_LIVING_ENTITY_REFERENCE, TameableEntity::setOwner)
.build();
CAT = EntityDefinition.inherited(CatEntity::new, tameableEntityBase)
.type(EntityType.CAT)
.height(0.35f).width(0.3f)

View File

@@ -32,7 +32,7 @@ import org.cloudburstmc.math.vector.Vector2f;
import org.cloudburstmc.math.vector.Vector3f;
import org.cloudburstmc.protocol.bedrock.data.entity.EntityFlag;
import org.geysermc.geyser.entity.EntityDefinition;
import org.geysermc.geyser.entity.type.living.animal.AnimalEntity;
import org.geysermc.geyser.entity.type.living.animal.tameable.TameableEntity;
import org.geysermc.geyser.entity.vehicle.ClientVehicle;
import org.geysermc.geyser.entity.vehicle.NautilusVehicleComponent;
import org.geysermc.geyser.entity.vehicle.VehicleComponent;
@@ -54,7 +54,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.item.component.HolderSet;
import java.util.UUID;
public abstract class AbstractNautilusEntity extends AnimalEntity implements ClientVehicle {
public abstract class AbstractNautilusEntity extends TameableEntity implements ClientVehicle {
private HolderSet repairableItems = null;
private boolean isCurseOfBinding = false;
private final NautilusVehicleComponent vehicleComponent;

View File

@@ -95,6 +95,7 @@ public final class EntityUtils {
case OOZING -> 34;
case INFESTED -> 35;
case RAID_OMEN -> 36;
case BREATH_OF_THE_NAUTILUS -> 37;
default -> effect.ordinal() + 1;
};
}