3
0
Mirror von https://github.com/GeyserMC/Geyser.git synchronisiert 2024-09-08 12:32:53 +02:00
Dieser Commit ist enthalten in:
OnlyBMan 2020-04-14 18:40:05 -04:00
Ursprung 08eb99fa94
Commit 3972cc7f87
2 geänderte Dateien mit 4 neuen und 6 gelöschten Zeilen

Datei anzeigen

@ -22,12 +22,11 @@ public class SkullBlockEntityTranslator {
public static void checkForSkullVariant(GeyserSession session, BlockState blockState, Vector3i position) {
byte skullVariant = BlockTranslator.getSkullVariant(blockState);
byte rotation = BlockTranslator.getSkullRotation(blockState);
// If Bed Color is not -1 then it is indeed a bed with a color.
if (skullVariant > 0) {
if (skullVariant > -1) {
Position pos = new Position(position.getX(), position.getY(), position.getZ());
com.nukkitx.nbt.tag.CompoundTag finalSkullTag = getSkullTag(skullVariant, pos, rotation);
// Delay needed, otherwise newly placed beds will not get their color
// Delay is not needed for beds already placed on login
// Delay needed, otherwise newly placed skulls will not appear
// Delay is not needed for skulls already placed on login
session.getConnector().getGeneralThreadPool().schedule(() ->
BlockEntityUtils.updateBlockEntity(session, finalSkullTag, pos),
500,

Datei anzeigen

@ -89,8 +89,7 @@ public class ChunkUtils {
chunkData.beds.put(pos, blockState);
} else if (BlockTranslator.getSkullVariant(blockState) > 0) {
Position pos = new ChunkPosition(column.getX(), column.getZ()).getBlock(x, (chunkY << 4) + y, z);
// Beds need to be updated separately to add the bed color tag
// Previously this was done by matching block state but this resulted in only one bed per color+orientation showing
//Doing the same stuff as beds
chunkData.skulls.put(pos, blockState);
} else {
section.getBlockStorageArray()[0].setFullBlock(ChunkSection.blockPosition(x, y, z), id);