aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
diff options
context:
space:
mode:
authorFix3dll <serhanduzce@gmail.com>2022-03-08 19:20:56 +0300
committerFix3dll <serhanduzce@gmail.com>2022-03-08 19:20:56 +0300
commit1ff679176faadb95da2c90e7b87b0c2b369bae87 (patch)
treebe89495260919b89544ddbb1af68d16ec609c699 /src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
parent9c67b6d30f14c852937387a5c727d2aff3cedbe8 (diff)
parentb380c52524bbdb7ea01fe42d5bab95f22e39a5a1 (diff)
downloadSkyblocker-1ff679176faadb95da2c90e7b87b0c2b369bae87.tar.gz
Skyblocker-1ff679176faadb95da2c90e7b87b0c2b369bae87.tar.bz2
Skyblocker-1ff679176faadb95da2c90e7b87b0c2b369bae87.zip
Merge remote-tracking branch 'upstream/master'
# Conflicts: # src/main/java/me/xmrvizzy/skyblocker/chat/ChatParser.java # src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java # src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java # src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java # src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java # src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java # src/test/java/me/xmrvizzy/skyblocker/chat/filters/AdFilterTest.java
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.java110
1 files changed, 110 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
new file mode 100644
index 00000000..6fbf740f
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/api/ProfileUtils.java
@@ -0,0 +1,110 @@
+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.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){
+ try {
+ URL url = new URL("https://sky.shiiyu.moe/api/v2/profile/" + name);
+ InputStreamReader reader = new InputStreamReader(url.openStream());
+ Gson gson = new GsonBuilder()
+ .registerTypeAdapterFactory(RecordTypeAdapterFactory.builder().allowMissingComponentValues().create())
+ .serializeNulls()
+ .create();
+ return gson.fromJson(reader, PlayerProfiles.class);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static List<ItemStack> itemsFromApiInventory(me.xmrvizzy.skyblocker.skyblock.api.records.Items.Item[] items){
+ List<ItemStack> inventory = new ArrayList<>();
+ for (me.xmrvizzy.skyblocker.skyblock.api.records.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 (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return inventory;
+ }
+}