mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Fix players being 'dead' even with half heart
This commit is contained in:
parent
92cd36d81f
commit
334e4fb059
2 changed files with 9 additions and 1 deletions
|
@ -110,7 +110,7 @@ public class EnderDragonEntity extends InsentientEntity implements Tickable {
|
||||||
@Override
|
@Override
|
||||||
protected AttributeData createHealthAttribute() {
|
protected AttributeData createHealthAttribute() {
|
||||||
// Round health up, so that Bedrock doesn't consider the dragon to be dead when health is between 0 and 1
|
// Round health up, so that Bedrock doesn't consider the dragon to be dead when health is between 0 and 1
|
||||||
return GeyserAttributeType.HEALTH.getAttribute((float) Math.ceil(this.health), this.maxHealth);
|
return new AttributeData(GeyserAttributeType.HEALTH.getBedrockIdentifier(), 0f, this.maxHealth, (float) Math.ceil(this.health), this.maxHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -46,6 +46,7 @@ import lombok.Setter;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.geysermc.connector.entity.Entity;
|
import org.geysermc.connector.entity.Entity;
|
||||||
import org.geysermc.connector.entity.LivingEntity;
|
import org.geysermc.connector.entity.LivingEntity;
|
||||||
|
import org.geysermc.connector.entity.attribute.GeyserAttributeType;
|
||||||
import org.geysermc.connector.entity.living.animal.tameable.ParrotEntity;
|
import org.geysermc.connector.entity.living.animal.tameable.ParrotEntity;
|
||||||
import org.geysermc.connector.entity.type.EntityType;
|
import org.geysermc.connector.entity.type.EntityType;
|
||||||
import org.geysermc.connector.network.session.GeyserSession;
|
import org.geysermc.connector.network.session.GeyserSession;
|
||||||
|
@ -244,6 +245,13 @@ public class PlayerEntity extends LivingEntity {
|
||||||
this.position = includeOffset ? position.add(0, entityType.getOffset(), 0) : position;
|
this.position = includeOffset ? position.add(0, entityType.getOffset(), 0) : position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected AttributeData createHealthAttribute() {
|
||||||
|
// Round health up, so that Bedrock doesn't consider the player to be dead when health is between 0 and 1 (half a heart)
|
||||||
|
// This issue, as of Bedrock 1.17.0, does not appear to persist with any other entity except the ender dragon
|
||||||
|
return new AttributeData(GeyserAttributeType.HEALTH.getBedrockIdentifier(), 0f, this.maxHealth, (float) Math.ceil(this.health), this.maxHealth);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) {
|
public void updateBedrockMetadata(EntityMetadata entityMetadata, GeyserSession session) {
|
||||||
super.updateBedrockMetadata(entityMetadata, session);
|
super.updateBedrockMetadata(entityMetadata, session);
|
||||||
|
|
Loading…
Reference in a new issue