aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt61
1 files changed, 54 insertions, 7 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt b/src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt
index ab6034f..5452d33 100644
--- a/src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt
+++ b/src/main/kotlin/moe/nea/firmament/repo/ItemCache.kt
@@ -18,29 +18,38 @@
package moe.nea.firmament.repo
+import com.mojang.authlib.GameProfile
+import com.mojang.authlib.minecraft.MinecraftProfileTexture
import com.mojang.serialization.Dynamic
import io.github.cottonmc.cotton.gui.client.CottonHud
import io.github.moulberry.repo.IReloadable
import io.github.moulberry.repo.NEURepository
import io.github.moulberry.repo.data.NEUItem
+import java.text.NumberFormat
+import java.util.UUID
import java.util.concurrent.ConcurrentHashMap
import org.apache.logging.log4j.LogManager
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import net.minecraft.SharedConstants
+import net.minecraft.block.entity.SkullBlockEntity
import net.minecraft.client.resource.language.I18n
import net.minecraft.datafixer.Schemas
import net.minecraft.datafixer.TypeReferences
import net.minecraft.item.ItemStack
import net.minecraft.item.Items
import net.minecraft.nbt.NbtCompound
+import net.minecraft.nbt.NbtElement
+import net.minecraft.nbt.NbtHelper
import net.minecraft.nbt.NbtOps
import net.minecraft.text.Text
import moe.nea.firmament.Firmament
-import moe.nea.firmament.rei.SBItemStack
import moe.nea.firmament.util.LegacyTagParser
import moe.nea.firmament.util.SkyblockId
import moe.nea.firmament.util.appendLore
+import moe.nea.firmament.util.item.MinecraftProfileTextureKt
+import moe.nea.firmament.util.item.MinecraftTexturesPayloadKt
+import moe.nea.firmament.util.item.setTextures
import moe.nea.firmament.util.skyblockId
object ItemCache : IReloadable {
@@ -73,7 +82,7 @@ object ItemCache : IReloadable {
fun brokenItemStack(neuItem: NEUItem?, idHint: SkyblockId? = null): ItemStack {
return ItemStack(Items.PAINTING).apply {
- setCustomName(Text.literal(neuItem?.displayName ?: idHint?.toString() ?: "null"))
+ setCustomName(Text.literal(neuItem?.displayName ?: idHint?.neuItem ?: "null"))
appendLore(listOf(Text.translatable("firmament.repo.brokenitem", neuItem?.skyblockItemId ?: idHint)))
}
}
@@ -94,11 +103,6 @@ object ItemCache : IReloadable {
}
}
- fun SBItemStack.asItemStack(): ItemStack {
- return this.neuItem.asItemStack(idHint = this.skyblockId)
- .let { if (this.stackSize != 1) it.copyWithCount(this.stackSize) else it }
- }
-
fun NEUItem?.asItemStack(idHint: SkyblockId? = null): ItemStack {
if (this == null) return brokenItemStack(null, idHint)
var s = cache[this.skyblockItemId]
@@ -139,4 +143,47 @@ object ItemCache : IReloadable {
CottonHud.remove(RepoManager.progressBar)
}
}
+
+ fun coinItem(coinAmount: Int): ItemStack {
+ var uuid = UUID.fromString("2070f6cb-f5db-367a-acd0-64d39a7e5d1b")
+ var texture =
+ "http://textures.minecraft.net/texture/538071721cc5b4cd406ce431a13f86083a8973e1064d2f8897869930ee6e5237"
+ if (coinAmount >= 100000) {
+ uuid = UUID.fromString("94fa2455-2881-31fe-bb4e-e3e24d58dbe3")
+ texture =
+ "http://textures.minecraft.net/texture/c9b77999fed3a2758bfeaf0793e52283817bea64044bf43ef29433f954bb52f6"
+ }
+ if (coinAmount >= 10000000) {
+ uuid = UUID.fromString("0af8df1f-098c-3b72-ac6b-65d65fd0b668")
+ texture =
+ "http://textures.minecraft.net/texture/7b951fed6a7b2cbc2036916dec7a46c4a56481564d14f945b6ebc03382766d3b"
+ }
+ val itemStack = ItemStack(Items.PLAYER_HEAD)
+ itemStack.setCustomName(Text.literal("§r§6" + NumberFormat.getInstance().format(coinAmount) + " Coins"))
+ val nbt: NbtCompound = itemStack.orCreateNbt
+ nbt[SkullBlockEntity.SKULL_OWNER_KEY] = NbtHelper.writeGameProfile(
+ NbtCompound(),
+ GameProfile(uuid, "CoolGuy123").also {
+ it.setTextures(
+ MinecraftTexturesPayloadKt(
+ mapOf(
+ MinecraftProfileTexture.Type.SKIN to MinecraftProfileTextureKt(texture),
+ ),
+ uuid,
+ "CoolGuy123"
+ )
+ )
+ }
+ )
+ return itemStack
+ }
+}
+
+
+operator fun NbtCompound.set(key: String, value: String) {
+ putString(key, value)
+}
+
+operator fun NbtCompound.set(key: String, value: NbtElement) {
+ put(key, value)
}