diff options
author | KonaeAkira <longtruong2411@gmail.com> | 2022-01-27 15:19:07 +0100 |
---|---|---|
committer | KonaeAkira <longtruong2411@gmail.com> | 2022-01-27 15:19:07 +0100 |
commit | 7b9791c08aac408279f8c4365f26ff057a6be293 (patch) | |
tree | 0a2179e2fa6a7e04856c11eff2a75e2c50538212 /src/main/java/me/xmrvizzy | |
parent | 5ff6d2c2e51e1e503f5f7929668074ec2f276ecc (diff) | |
download | Skyblocker-7b9791c08aac408279f8c4365f26ff057a6be293.tar.gz Skyblocker-7b9791c08aac408279f8c4365f26ff057a6be293.tar.bz2 Skyblocker-7b9791c08aac408279f8c4365f26ff057a6be293.zip |
Fix missing armor dye color in item list
+ Fixed usage of deprecated JsonParser methods.
+ Combined search bar and search title into single class.
+ Rename local repo dir from "Skypixel/item-repo" to "Skyblocker/item-repo"
Diffstat (limited to 'src/main/java/me/xmrvizzy')
4 files changed, 54 insertions, 35 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/Entry.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/Entry.java index 4260aa4a..d9a541bb 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/Entry.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/Entry.java @@ -41,6 +41,7 @@ public final class Entry implements Comparable<Entry> { NbtCompound tag = new NbtCompound(); root.put("tag", tag); + // add enchantment glint if (internalName.contains("ENCHANTED")) { NbtList enchantments = new NbtList(); enchantments.add(new NbtCompound()); @@ -60,11 +61,12 @@ public final class Entry implements Comparable<Entry> { ); String nbttag = obj.get("nbttag").getAsString(); - Matcher matcher = Pattern.compile("SkullOwner:\\{Id:\"(.{36})\",Properties:\\{textures:\\[0:\\{Value:\"(.+)\"\\}\\]\\}\\}").matcher(nbttag); - if (matcher.find()) { + // add skull texture + Matcher skullMatcher = Pattern.compile("SkullOwner:\\{Id:\"(.{36})\",Properties:\\{textures:\\[0:\\{Value:\"(.+)\"}]}}").matcher(nbttag); + if (skullMatcher.find()) { NbtCompound skullOwner = new NbtCompound(); tag.put("SkullOwner", skullOwner); - UUID uuid = UUID.fromString(matcher.group(1)); + UUID uuid = UUID.fromString(skullMatcher.group(1)); skullOwner.put("Id", NbtHelper.fromUuid(uuid)); skullOwner.put("Name", NbtString.of(this.internalName)); @@ -74,7 +76,13 @@ public final class Entry implements Comparable<Entry> { properties.put("textures", textures); NbtCompound texture = new NbtCompound(); textures.add(texture); - texture.put("Value", NbtString.of(matcher.group(2))); + texture.put("Value", NbtString.of(skullMatcher.group(2))); + } + // add leather armor dye color + Matcher colorMatcher = Pattern.compile("color:(\\d+)").matcher(nbttag); + if (colorMatcher.find()) { + NbtInt color = NbtInt.of(Integer.parseInt(colorMatcher.group(1))); + display.put("color", color); } this.itemStack = ItemStack.fromNbt(root); @@ -90,7 +98,7 @@ public final class Entry implements Comparable<Entry> { String petName = internalName.split(";")[0]; if (!internalName.contains(";") || !ItemRegistry.petNums.has(petName)) return list; - list.add(new Pair("\\{LVL\\}", "1 ➡ 100")); + list.add(new Pair<>("\\{LVL\\}", "1 ➡ 100")); final String[] rarities = { "COMMON", @@ -110,7 +118,7 @@ public final class Entry implements Comparable<Entry> { String key = entry.getKey(); String left = "\\{" + key+ "\\}"; String right = statNumsMin.get(key).getAsString() + " ➡ " + statNumsMax.get(key).getAsString(); - list.add(new Pair(left, right)); + list.add(new Pair<>(left, right)); } JsonArray otherNumsMin = data.get("1").getAsJsonObject().get("otherNums").getAsJsonArray(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java index f7e196d5..9f053d8b 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemListWidget.java @@ -18,7 +18,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; @Environment(value= EnvType.CLIENT) @@ -39,11 +38,10 @@ public class ItemListWidget extends AbstractParentElement implements Drawable, S private final List<Element> children = Lists.newArrayList(); private final List<Selectable> selectables = Lists.newArrayList(); private final List<Drawable> drawables = Lists.newArrayList(); - private final TextFieldWidget search; public ItemListWidget(HandledScreen screen) { - this.client = MinecraftClient.getInstance(); this.screen = screen; + this.client = MinecraftClient.getInstance(); this.cols = (screen.width - 200) / 2 / 16; this.rows = (screen.height - 40) / 16; @@ -52,14 +50,9 @@ public class ItemListWidget extends AbstractParentElement implements Drawable, S this.maxScroll = Math.max(0, entries.size() / this.cols - this.rows + 1); - int searchX = this.gridX + 1; - int searchY = 18; - int searchWidth = this.cols * 16 - 2; - int searchHeight = 16; - - this.search = new TextFieldWidget(this.client.textRenderer, searchX, searchY, searchWidth, searchHeight, Text.of("Search")); - this.search.setText(searchString); - this.search.setChangedListener(this::setSearch); + SearchWidget search = new SearchWidget(this.client.textRenderer, 8, 8, this.cols * 16); + search.setText(searchString); + search.setChangedListener(this::setSearch); this.addDrawableChild(search); this.setSearch(searchString); @@ -80,7 +73,7 @@ public class ItemListWidget extends AbstractParentElement implements Drawable, S } protected <T extends Element & Drawable & Selectable> T addDrawableChild(T drawableElement) { - this.drawables.add((Drawable)drawableElement); + this.drawables.add(drawableElement); return this.addSelectableChild(drawableElement); } @@ -91,7 +84,7 @@ public class ItemListWidget extends AbstractParentElement implements Drawable, S protected <T extends Element & Selectable> T addSelectableChild(T child) { this.children.add(child); - this.selectables.add((Selectable)child); + this.selectables.add(child); return child; } @@ -99,8 +92,6 @@ public class ItemListWidget extends AbstractParentElement implements Drawable, S public void render(MatrixStack matrices, int mouseX, int mouseY, float delta) { ItemRenderer itemRenderer = client.getItemRenderer(); RenderSystem.disableDepthTest(); - // search box title - client.textRenderer.drawWithShadow(matrices, "Search", this.gridX, 6, 0xff9e9e9e); // slot hover int mouseOverIndex = getMouseOverIndex(mouseX, mouseY); if (mouseOverIndex != -1) { @@ -126,9 +117,7 @@ public class ItemListWidget extends AbstractParentElement implements Drawable, S } RenderSystem.enableDepthTest(); // render children - Iterator iter = this.drawables.iterator(); - while(iter.hasNext()) { - Drawable drawable = (Drawable)iter.next(); + for (Drawable drawable : this.drawables) { drawable.render(matrices, mouseX, mouseY, delta); } } diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java index b94ea72d..40a9148e 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/ItemRegistry.java @@ -9,28 +9,26 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.Arrays; +import java.util.List; import java.util.SortedSet; import java.util.TreeSet; public class ItemRegistry { private static final String ITEM_REPO_URI = "https://github.com/KonaeAkira/NotEnoughUpdates-REPO.git"; - private static final String ITEM_REPO_DIR = "./config/skypixel/items-repo/"; + private static final String ITEM_REPO_DIR = "./config/skyblocker/items-repo/"; private static final String ITEM_LIST_DIR = ITEM_REPO_DIR + "items/"; private static final String CONSTANTS_DIR = ITEM_REPO_DIR + "constants/"; private static final String PETNUMS_FILE = CONSTANTS_DIR + "petnums.json"; - private static final JsonParser JSON_PARSER = new JsonParser(); - - protected static SortedSet<Entry> registry = new TreeSet<Entry>(); + protected static SortedSet<Entry> registry = new TreeSet<>(); protected static JsonObject petNums; // TODO: make async public static void init() { updateItemRepo(); try { - petNums = JSON_PARSER.parse(Files.readString(Paths.get(PETNUMS_FILE))).getAsJsonObject(); + petNums = JsonParser.parseString(Files.readString(Paths.get(PETNUMS_FILE))).getAsJsonObject(); } catch (IOException e) { e.printStackTrace(); } @@ -43,7 +41,7 @@ public class ItemRegistry { Git.cloneRepository() .setURI(ITEM_REPO_URI) .setDirectory(new File(ITEM_REPO_DIR)) - .setBranchesToClone(Arrays.asList("refs/heads/master")) + .setBranchesToClone(List.of("refs/heads/master")) .setBranch("refs/heads/master") .call(); } catch (GitAPIException e) { @@ -52,9 +50,7 @@ public class ItemRegistry { } else { try { Git.open(new File(ITEM_REPO_DIR)).pull().call(); - } catch (GitAPIException e) { - e.printStackTrace(); - } catch (IOException e) { + } catch (GitAPIException | IOException e) { e.printStackTrace(); } } @@ -63,11 +59,12 @@ public class ItemRegistry { private static void importItemFiles() { File dir = new File(ITEM_LIST_DIR); File[] files = dir.listFiles(); + assert files != null; for (File file : files) { String path = ITEM_LIST_DIR + "/" + file.getName(); try { String fileContent = Files.readString(Paths.get(path)); - JsonObject json = JSON_PARSER.parse(fileContent).getAsJsonObject(); + JsonObject json = JsonParser.parseString(fileContent).getAsJsonObject(); registry.add(new Entry(json)); } catch (IOException e) { e.printStackTrace(); diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchWidget.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchWidget.java new file mode 100644 index 00000000..4acf91b2 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/itemlist/SearchWidget.java @@ -0,0 +1,25 @@ +package me.xmrvizzy.skyblocker.skyblock.itemlist; + +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.widget.TextFieldWidget; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.text.Text; + +public class SearchWidget extends TextFieldWidget { + protected final int x; + protected final int y; + protected final TextRenderer textRenderer; + + public SearchWidget(TextRenderer textRenderer, int x, int y, int width) { + super(textRenderer, x + 1, y + 12, width - 2, 16, Text.of("Search")); + this.x = x; + this.y = y; + this.textRenderer = textRenderer; + } + + @Override + public void renderButton(MatrixStack matrices, int mouseX, int mouseY, float delta) { + super.renderButton(matrices, mouseX, mouseY, delta); + this.textRenderer.drawWithShadow(matrices, "Search", this.x, this.y, 0xff9e9e9e); + } +} |