Add lore copy keybind
This commit is contained in:
@@ -1,21 +1,20 @@
|
||||
|
||||
|
||||
package moe.nea.firmament.features.debug
|
||||
|
||||
import com.mojang.serialization.JsonOps
|
||||
import kotlin.jvm.optionals.getOrNull
|
||||
import net.minecraft.block.SkullBlock
|
||||
import net.minecraft.block.entity.SkullBlockEntity
|
||||
import net.minecraft.client.gui.screen.Screen
|
||||
import net.minecraft.component.DataComponentTypes
|
||||
import net.minecraft.entity.Entity
|
||||
import net.minecraft.entity.LivingEntity
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.item.Items
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.text.TextCodecs
|
||||
import net.minecraft.util.hit.BlockHitResult
|
||||
import net.minecraft.util.hit.EntityHitResult
|
||||
import net.minecraft.util.hit.HitResult
|
||||
import moe.nea.firmament.annotations.Subscribe
|
||||
import moe.nea.firmament.events.CommandEvent
|
||||
import moe.nea.firmament.events.CustomItemModelEvent
|
||||
import moe.nea.firmament.events.HandledScreenKeyPressedEvent
|
||||
import moe.nea.firmament.events.ItemTooltipEvent
|
||||
@@ -29,6 +28,8 @@ import moe.nea.firmament.mixins.accessor.AccessorHandledScreen
|
||||
import moe.nea.firmament.util.ClipboardUtils
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.focusedItemStack
|
||||
import moe.nea.firmament.util.mc.displayNameAccordingToNbt
|
||||
import moe.nea.firmament.util.mc.loreAccordingToNbt
|
||||
import moe.nea.firmament.util.skyBlockId
|
||||
|
||||
object PowerUserTools : FirmamentFeature {
|
||||
@@ -40,6 +41,7 @@ object PowerUserTools : FirmamentFeature {
|
||||
val copyItemId by keyBindingWithDefaultUnbound("copy-item-id")
|
||||
val copyTexturePackId by keyBindingWithDefaultUnbound("copy-texture-pack-id")
|
||||
val copyNbtData by keyBindingWithDefaultUnbound("copy-nbt-data")
|
||||
val copyLoreData by keyBindingWithDefaultUnbound("copy-lore")
|
||||
val copySkullTexture by keyBindingWithDefaultUnbound("copy-skull-texture")
|
||||
val copyEntityData by keyBindingWithDefaultUnbound("entity-data")
|
||||
}
|
||||
@@ -126,6 +128,13 @@ object PowerUserTools : FirmamentFeature {
|
||||
val nbt = item.get(DataComponentTypes.CUSTOM_DATA)?.nbt?.toString() ?: "<empty>"
|
||||
ClipboardUtils.setTextContent(nbt)
|
||||
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.nbt"))
|
||||
} else if (it.matches(TConfig.copyLoreData)) {
|
||||
val list = mutableListOf(item.displayNameAccordingToNbt)
|
||||
list.addAll(item.loreAccordingToNbt)
|
||||
ClipboardUtils.setTextContent(list.joinToString("\n") {
|
||||
TextCodecs.CODEC.encodeStart(JsonOps.INSTANCE, it).result().getOrNull().toString()
|
||||
})
|
||||
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.lore"))
|
||||
} else if (it.matches(TConfig.copySkullTexture)) {
|
||||
if (item.item != Items.PLAYER_HEAD) {
|
||||
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.skull-id.fail.no-skull"))
|
||||
|
||||
@@ -183,6 +183,7 @@
|
||||
"firmament.config.power-user.copy-skull-texture": "Copy Placed Skull Id",
|
||||
"firmament.config.power-user.entity-data": "Show Entity Data",
|
||||
"firmament.config.power-user.copy-nbt-data": "Copy NBT data",
|
||||
"firmament.config.power-user.copy-lore": "Copy Name + Lore",
|
||||
"firmament.config.power-user": "Power Users",
|
||||
"firmament.tooltip.skyblockid": "SkyBlock Id: %s",
|
||||
"firmament.tooltip.copied.skyblockid.fail": "Failed to copy SkyBlock Id",
|
||||
@@ -192,6 +193,7 @@
|
||||
"firmament.tooltip.copied.skull": "Copied Skull Id: %s",
|
||||
"firmament.tooltip.copied.skull.fail": "Failed to copy skull id.",
|
||||
"firmament.tooltip.copied.nbt": "Copied NBT data",
|
||||
"firmament.tooltip.copied.lore": "Copied Name and Lore",
|
||||
"firmament.config.compatibility": "Intermod Features",
|
||||
"firmament.config.compatibility.explosion-enabled": "Redirect Enhanced Explosions",
|
||||
"firmament.config.compatibility.explosion-power": "Enhanced Explosion Power",
|
||||
|
||||
Reference in New Issue
Block a user