feat: Add dye logger for armor stands
This commit is contained in:
51
src/main/kotlin/features/debug/AnimatedClothingScanner.kt
Normal file
51
src/main/kotlin/features/debug/AnimatedClothingScanner.kt
Normal file
@@ -0,0 +1,51 @@
|
||||
package moe.nea.firmament.features.debug
|
||||
|
||||
import net.minecraft.component.DataComponentTypes
|
||||
import net.minecraft.entity.Entity
|
||||
import moe.nea.firmament.annotations.Subscribe
|
||||
import moe.nea.firmament.commands.thenExecute
|
||||
import moe.nea.firmament.commands.thenLiteral
|
||||
import moe.nea.firmament.events.CommandEvent
|
||||
import moe.nea.firmament.events.EntityUpdateEvent
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.skyBlockId
|
||||
import moe.nea.firmament.util.tr
|
||||
|
||||
object AnimatedClothingScanner {
|
||||
|
||||
var observedEntity: Entity? = null
|
||||
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
@Subscribe
|
||||
fun onUpdate(event: EntityUpdateEvent) {
|
||||
if (event.entity != observedEntity) return
|
||||
if (event is EntityUpdateEvent.EquipmentUpdate) {
|
||||
event.newEquipment.forEach {
|
||||
val id = it.second.skyBlockId?.neuItem
|
||||
val colour = it.second.get(DataComponentTypes.DYED_COLOR)
|
||||
?.rgb?.toHexString(HexFormat.UpperCase)
|
||||
?.let { " #$it" } ?: ""
|
||||
MC.sendChat(tr("firmament.fitstealer.update",
|
||||
"[FIT CHECK][${MC.currentTick}] ${it.first.asString()} => ${id}${colour}"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun onSubCommand(event: CommandEvent.SubCommand) {
|
||||
event.subcommand("dev") {
|
||||
thenLiteral("stealthisfit") {
|
||||
thenExecute {
|
||||
observedEntity =
|
||||
if (observedEntity == null) MC.instance.targetedEntity else null
|
||||
|
||||
MC.sendChat(
|
||||
observedEntity?.let {
|
||||
tr("firmament.fitstealer.targeted", "Observing the equipment of ${it.name}.")
|
||||
} ?: tr("firmament.fitstealer.targetlost", "No longer logging equipment."),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user