From fa5142290ce21250179d86ccf502c936906af26d Mon Sep 17 00:00:00 2001 From: Hare Date: Wed, 8 Apr 2026 01:26:18 +0900 Subject: [PATCH] =?UTF-8?q?glow=E3=82=B5=E3=83=9D=E3=83=BC=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ghostdisplays/internal/fake/FakeEntity.kt | 4 +++- .../internal/nms/DisplayPacketFactory.kt | 3 +++ .../ghostdisplays/internal/nms/EntityDataFields.kt | 13 +++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/net/hareworks/ghostdisplays/internal/fake/FakeEntity.kt b/src/main/kotlin/net/hareworks/ghostdisplays/internal/fake/FakeEntity.kt index f3656d3..f6a5e88 100644 --- a/src/main/kotlin/net/hareworks/ghostdisplays/internal/fake/FakeEntity.kt +++ b/src/main/kotlin/net/hareworks/ghostdisplays/internal/fake/FakeEntity.kt @@ -7,4 +7,6 @@ open class FakeEntity( val entityId: Int, val uuid: UUID, var location: Location -) +) { + var isGlowing: Boolean = false +} diff --git a/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/DisplayPacketFactory.kt b/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/DisplayPacketFactory.kt index b5f70bf..10edf55 100644 --- a/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/DisplayPacketFactory.kt +++ b/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/DisplayPacketFactory.kt @@ -121,6 +121,9 @@ internal object DisplayPacketFactory { private fun buildDisplayMetadata(fake: FakeDisplay): MutableList> { val values = mutableListOf>() + var sharedFlags: Byte = 0 + if (fake.isGlowing) sharedFlags = (sharedFlags.toInt() or 0x40).toByte() + values.add(SynchedEntityData.DataValue.create(EntityDataFields.SHARED_FLAGS, sharedFlags)) values.add(SynchedEntityData.DataValue.create(EntityDataFields.TRANSLATION, fake.translation)) values.add(SynchedEntityData.DataValue.create(EntityDataFields.SCALE, fake.scale)) values.add(SynchedEntityData.DataValue.create(EntityDataFields.LEFT_ROTATION, fake.leftRotation)) diff --git a/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/EntityDataFields.kt b/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/EntityDataFields.kt index 40d8657..96db3e5 100644 --- a/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/EntityDataFields.kt +++ b/src/main/kotlin/net/hareworks/ghostdisplays/internal/nms/EntityDataFields.kt @@ -13,6 +13,19 @@ import org.joml.Vector3f @Suppress("UNCHECKED_CAST") internal object EntityDataFields { + // --- Entity (common) --- + + private val entityLookup = MethodHandles.privateLookupIn( + net.minecraft.world.entity.Entity::class.java, MethodHandles.lookup() + ) + + val SHARED_FLAGS: EntityDataAccessor = + entityLookup.findStaticGetter( + net.minecraft.world.entity.Entity::class.java, + "DATA_SHARED_FLAGS_ID", + EntityDataAccessor::class.java + ).invoke() as EntityDataAccessor + // --- Display (common) --- private val displayLookup = MethodHandles.privateLookupIn(