@@ -84,6 +84,7 @@ import net.minecraft.entity.projectile.FishingBobberEntity
8484import net.minecraft.text.ClickEvent
8585import net.minecraft.text.HoverEvent
8686import net.minecraft.block.Blocks
87+ import net.minecraft.component.DataComponentTypes
8788import net.minecraft.entity.boss.WitherEntity
8889import net.minecraft.item.Items
8990import net.minecraft.screen.GenericContainerScreenHandler
@@ -95,6 +96,7 @@ import net.minecraft.text.Text
9596import java.awt.Color
9697import java.time.Duration
9798import java.time.Instant
99+ import java.util.UUID
98100import kotlin.jvm.optionals.getOrDefault
99101import kotlin.jvm.optionals.getOrNull
100102
@@ -273,20 +275,20 @@ object MiscFeatures : EventSubscriber {
273275 }
274276 }
275277
278+ private val trickOrTreat = UUID .fromString(" f955b4ac-0c41-3e45-8703-016c46a8028e" )
276279 fun onJoin (event : EntityJoinWorldEvent ) {
277280 val player = mc.player
278281 if (! Utils .inSkyblock || player == null || mc.world == null ) return
279282 if (event.entity is ArmorStandEntity ) {
280283 tickTimer(5 ) {
281284 val entity = event.entity as ArmorStandEntity
282285 val headSlot = entity.getEquippedStack(EquipmentSlot .HEAD )
283- val headNbt = headSlot?.toNbt(player.registryManager )?.asCompound() ?.getOrNull() ? : return @tickTimer
284- if (Skytils .config.trickOrTreatChestAlert && mc.player != null && headSlot.item == = Items .PLAYER_HEAD && ! headNbt.isEmpty && entity.squaredDistanceTo(
286+ val headUUID = headSlot?.get( DataComponentTypes . PROFILE )?.id ?.getOrNull() ? : return @tickTimer
287+ if (Skytils .config.trickOrTreatChestAlert && mc.player != null && headSlot.item == = Items .PLAYER_HEAD && entity.squaredDistanceTo(
285288 mc.player
286289 ) < 10 * 10
287290 ) {
288- if (headNbt.getCompound(" SkullOwner" ).getOrNull()?.get(" Id" )?.asString()?.getOrNull() == " f955b4ac-0c41-3e45-8703-016c46a8028e"
289- ) {
291+ if (headUUID == trickOrTreat) {
290292 createTitle(" §cTrick or Treat!" , 60 )
291293 }
292294 }
0 commit comments