Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-28 09:00:11 +01:00
Move Bed Position metadata to the right class
Dieser Commit ist enthalten in:
Ursprung
590dcbd5b1
Commit
18e5764b54
@ -348,17 +348,6 @@ public class Entity {
|
|||||||
metadata.put(EntityData.PLAYER_FLAGS, (byte) 0);
|
metadata.put(EntityData.PLAYER_FLAGS, (byte) 0);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 13: // Bed Position
|
|
||||||
Position bedPosition = (Position) entityMetadata.getValue();
|
|
||||||
if (bedPosition != null) {
|
|
||||||
metadata.put(EntityData.BED_POSITION, Vector3i.from(bedPosition.getX(), bedPosition.getY(), bedPosition.getZ()));
|
|
||||||
if (session.getConnector().getConfig().isCacheChunks()) {
|
|
||||||
int bed = session.getConnector().getWorldManager().getBlockAt(session, bedPosition);
|
|
||||||
// Bed has to be updated, or else player is floating in the air
|
|
||||||
ChunkUtils.updateBlock(session, bed, bedPosition);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,7 +26,9 @@
|
|||||||
package org.geysermc.connector.entity;
|
package org.geysermc.connector.entity;
|
||||||
|
|
||||||
import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata;
|
import com.github.steveice10.mc.protocol.data.game.entity.metadata.EntityMetadata;
|
||||||
|
import com.github.steveice10.mc.protocol.data.game.entity.metadata.Position;
|
||||||
import com.nukkitx.math.vector.Vector3f;
|
import com.nukkitx.math.vector.Vector3f;
|
||||||
|
import com.nukkitx.math.vector.Vector3i;
|
||||||
import com.nukkitx.protocol.bedrock.data.AttributeData;
|
import com.nukkitx.protocol.bedrock.data.AttributeData;
|
||||||
import com.nukkitx.protocol.bedrock.data.entity.EntityData;
|
import com.nukkitx.protocol.bedrock.data.entity.EntityData;
|
||||||
import com.nukkitx.protocol.bedrock.data.entity.EntityFlag;
|
import com.nukkitx.protocol.bedrock.data.entity.EntityFlag;
|
||||||
@ -42,6 +44,7 @@ import org.geysermc.connector.entity.type.EntityType;
|
|||||||
import org.geysermc.connector.network.session.GeyserSession;
|
import org.geysermc.connector.network.session.GeyserSession;
|
||||||
import org.geysermc.connector.network.translators.item.ItemRegistry;
|
import org.geysermc.connector.network.translators.item.ItemRegistry;
|
||||||
import org.geysermc.connector.utils.AttributeUtils;
|
import org.geysermc.connector.utils.AttributeUtils;
|
||||||
|
import org.geysermc.connector.utils.ChunkUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -84,6 +87,17 @@ public class LivingEntity extends Entity {
|
|||||||
case 10:
|
case 10:
|
||||||
metadata.put(EntityData.EFFECT_AMBIENT, (byte) ((boolean) entityMetadata.getValue() ? 1 : 0));
|
metadata.put(EntityData.EFFECT_AMBIENT, (byte) ((boolean) entityMetadata.getValue() ? 1 : 0));
|
||||||
break;
|
break;
|
||||||
|
case 13: // Bed Position
|
||||||
|
Position bedPosition = (Position) entityMetadata.getValue();
|
||||||
|
if (bedPosition != null) {
|
||||||
|
metadata.put(EntityData.BED_POSITION, Vector3i.from(bedPosition.getX(), bedPosition.getY(), bedPosition.getZ()));
|
||||||
|
if (session.getConnector().getConfig().isCacheChunks()) {
|
||||||
|
int bed = session.getConnector().getWorldManager().getBlockAt(session, bedPosition);
|
||||||
|
// Bed has to be updated, or else player is floating in the air
|
||||||
|
ChunkUtils.updateBlock(session, bed, bedPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
super.updateBedrockMetadata(entityMetadata, session);
|
super.updateBedrockMetadata(entityMetadata, session);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren