aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
diff options
context:
space:
mode:
authorTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-02-25 21:12:43 -0500
committerTacoMonkey <75862693+TacoMonkey11@users.noreply.github.com>2022-02-25 21:12:43 -0500
commit97f93d2615eb05df8981eb641c7c52da664e9bd1 (patch)
treebe6db384779a7dff0d7d2aa7a187126ac401d7e1 /src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
parentffa9389578b526501c7bc79bd264e96cd120a94d (diff)
downloadSkyblocker-97f93d2615eb05df8981eb641c7c52da664e9bd1.tar.gz
Skyblocker-97f93d2615eb05df8981eb641c7c52da664e9bd1.tar.bz2
Skyblocker-97f93d2615eb05df8981eb641c7c52da664e9bd1.zip
Added API inventor converter
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
index 5c74bdf8..e6efc26c 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
@@ -2,12 +2,25 @@ package me.xmrvizzy.skyblocker.skyblock.api;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import com.google.gson.JsonObject;
import marcono1234.gson.recordadapter.RecordTypeAdapterFactory;
import me.xmrvizzy.skyblocker.skyblock.api.records.PlayerProfiles;
+import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemFixerUpper;
+import net.minecraft.client.MinecraftClient;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.Items;
+import net.minecraft.nbt.*;
+import net.minecraft.text.Text;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
public class ProfileUtils {
public static PlayerProfiles getProfiles(String name){
@@ -24,4 +37,75 @@ public class ProfileUtils {
}
return null;
}
+
+ public static List<ItemStack> itemsFromApiInventory(PlayerProfiles.PlayerProfile.Items.Item[] items){
+ List<ItemStack> inventory = new ArrayList<>();
+ for (PlayerProfiles.PlayerProfile.Items.Item item : items){
+ try{
+ if (item.tag() != null){
+ JsonObject obj = new Gson().fromJson(Files.readString(Path.of("./config/skyblocker/items-repo/items/" + item.tag().extraAttributes().id() + ".json")), JsonObject.class);
+
+ NbtCompound root = new NbtCompound();
+ root.put("Count", NbtByte.of(item.count()));
+ root.put("id", NbtString.of(ItemFixerUpper.convertItemId(obj.get("itemid").getAsString(), obj.get("damage").getAsInt())));
+ NbtCompound tag = new NbtCompound();
+ root.put("tag", tag);
+
+ if (item.tag().ench() != null){
+ NbtList enchantments = new NbtList();
+ enchantments.add(new NbtCompound());
+ tag.put("Enchantments", enchantments);
+ }
+
+ NbtCompound extraAttributes = new NbtCompound();
+ tag.put("ExtraAttributes", extraAttributes);
+ extraAttributes.put("id", NbtString.of(item.tag().extraAttributes().id()));
+ if (item.tag().extraAttributes().enchantments() != null){
+ NbtCompound enchantments = new NbtCompound();
+ extraAttributes.put("enchantments", enchantments);
+ for (String enchant : item.tag().extraAttributes().enchantments().keySet()){
+ enchantments.put(enchant, NbtInt.of(item.tag().extraAttributes().enchantments().get(enchant)));
+ }
+ }
+
+ NbtCompound display = new NbtCompound();
+ tag.put("display", display);
+ display.put("Name", NbtString.of(Text.Serializer.toJson(Text.of(item.tag().display().name()))));
+ if (item.tag().display().lore() != null){
+ NbtList lore = new NbtList();
+ display.put("Lore", lore);
+ for (int i = 0; i < item.tag().display().lore().length; i++) {
+ if (i < item.tag().display().lore().length - 1)
+ lore.add(i, NbtString.of(Text.Serializer.toJson(Text.of(Arrays.stream(item.tag().display().lore()).toArray()[i].toString()))));
+ }
+ }
+ if (item.tag().display().color() != null){
+ display.put("color", NbtInt.of(item.tag().display().color()));
+ }
+
+ if (item.tag().skullOwner() != null){
+ NbtCompound skullOwner = new NbtCompound();
+ tag.put("SkullOwner", skullOwner);
+ UUID uuid = UUID.fromString(item.tag().skullOwner().id());
+ skullOwner.put("Id", NbtHelper.fromUuid(uuid));
+ skullOwner.put("Name", NbtString.of(item.tag().extraAttributes().id()));
+
+ NbtCompound properties = new NbtCompound();
+ skullOwner.put("Properties", properties);
+ NbtList textures = new NbtList();
+ properties.put("textures", textures);
+ NbtCompound texture = new NbtCompound();
+ textures.add(texture);
+ texture.put("Value", NbtString.of(item.tag().skullOwner().properties().textures()[0].get("Value")));
+ }
+ inventory.add(ItemStack.fromNbt(root));
+ } else {
+ inventory.add(Items.AIR.getDefaultStack());
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return inventory;
+ }
}