package defpackage; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import java.nio.charset.StandardCharsets; import java.nio.file.CopyOption; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.client.Minecraft; public final class adx { private static final Set OWNED = ConcurrentHashMap.newKeySet(); private static final String SEPARATOR = ":"; private static final String SLOT_CAPE = "cape"; private static final String SLOT_WING = "wing"; private static final String SLOT_BACKPACK = "backpack"; private static final String SLOT_NAMETAG = "nametag"; private static final String SLOT_MELEE = "melee"; private static final String DIR_ROOT = "evolution"; private static final String OWNED_FILE_NAME = "cosmetics_owned.json"; private static final String TEMP_EXTENSION = ".tmp"; private static final String LOAD_FAILURE = "cosmetic ownership cache unreadable"; private static final String SAVE_FAILURE = "cosmetic ownership cache write failed"; private static final String STRIPPED = "stripped unowned cosmetics: {}"; private static volatile boolean confirmed; private adx() { } public static void restore() { aef.io().execute(() -> { List var0 = null; Minecraft var1 = null; int var2 = -536601112; while (true) { switch (var2) { case -1661265392: replace(var0); var1 = Minecraft.getInstance(); if (var1 != null) { var2 = 1910700255; } else { var2 = 1322073881; } break; case -536601112: default: var0 = load(); if (var0 != null) { var2 = 1019640654; } else { var2 = 370479447; } break; case 370479447: return; case 1019640654: if (confirmed) { var2 = 370479447; } else { var2 = -1661265392; } break; case 1322073881: return; case 1910700255: var1.execute(adx::enforceLocal); var2 = 1322073881; } } }); } public static void accept(Collection var0) { int var1 = -504740801; while (true) { switch (var1) { case -1903899689: return; case -504740801: default: if (var0 == null) { var1 = -1903899689; } else { var1 = 107079033; } break; case 107079033: replace(var0); confirmed = (boolean)(((1)) != 0); save(List.copyOf(OWNED)); enforceLocal(); return; } } } public static boolean isConfirmed() { return confirmed; } // $VF: Unable to simplify switch on enum // Please report this to the Vineflower issue tracker, at https://github.com/Vineflower/vineflower/issues with a copy of the class file (if you have the rights to distribute it!) public static String slotId(aec var0) { return switch (adw.$SwitchMap$evo$systems$cosmetic$CosmeticShowcase$Slot[var0.ordinal()]) { case 1 -> "cape"; case 2 -> "wing"; case 3 -> "backpack"; case 4 -> "nametag"; case 5 -> "melee"; default -> null; }; } public static boolean isLocked(aeb var0) { String var1 = null; int var3 = 0; int var2 = -1229454426; while (true) { switch (var2) { case -1845954392: var1 = slotId(var0.getSlot()); if (var1 != null) { var2 = -75730828; } else { var2 = 257521911; } break; case -1384250242: return (boolean)((var3) != 0); case -1229454426: default: if (var0 == null) { var2 = 1461062729; } else { var2 = -1845954392; } break; case -1065086712: var3 = 1; var2 = -1384250242; break; case -75730828: if (!isOwned(var1, var0.getKey())) { var2 = -1065086712; } else { var2 = 257521911; } break; case 257521911: var3 = 0; var2 = -1384250242; break; case 1461062729: return (boolean)(((0)) != 0); } } } public static boolean isOwned(String var0, String var1) { if (!confirmed) { return true; } int var2 = 648232911; while (true) { switch (var2) { case -2075955859: if (var1.startsWith("custom:")) { var2 = 642640160; } else { var2 = -447310114; } break; case -884201045: if ("cape".equals(var0)) { var2 = -2075955859; } else { var2 = -447310114; } break; case -447310114: return OWNED.contains(var0 + ":" + var1); case 642640160: return (boolean)(((1)) != 0); case 648232911: default: if (var0 != null) { var2 = 2122901445; } else { var2 = 1288893337; } break; case 769773544: if (var1.isEmpty()) { var2 = 1288893337; } else { var2 = -884201045; } break; case 1288893337: return (boolean)(((1)) != 0); case 2122901445: if (var1 != null) { var2 = 769773544; } else { var2 = 1288893337; } } } } public static aee ownedOnly(aee var0) { return new aee( ownedOrNull("cape", var0.cape()), ownedOrNull("wing", var0.wing()), var0.hat(), ownedOrNull("backpack", var0.backpack()), var0.skin(), ownedOrNull("nametag", var0.nametag()), ownedOrNull("melee", var0.melee()), var0.playerskin() ); } public static void enforceLocal() { Minecraft var0 = null; String var1 = null; aee var2 = null; aee var3 = null; int var4 = -645675907; while (true) { switch (var4) { case -1395631686: var1 = var0.player.getScoreboardName(); var2 = aee.readFor(var1); var3 = ownedOnly(var2); if (var3.equals(var2)) { var4 = -464885827; } else { var4 = -517770424; } break; case -695980344: return; case -645675907: default: var0 = Minecraft.getInstance(); if (var0 != null) { var4 = 1834214903; } else { var4 = -695980344; } break; case -517770424: var3.applyTo(var1); aef.persistIfLocal(var1); id.info( Cif.COSMETIC, "stripped unowned cosmetics: {}", var2.toJson() ); return; case -464885827: return; case 1834214903: if (var0.player == null) { var4 = -695980344; } else { var4 = -1395631686; } } } } private static String ownedOrNull(String var0, String var1) { String var3 = null; int var2 = -501846252; while (true) { switch (var2) { case -1809508905: return var3; case -501846252: default: if (isOwned(var0, var1)) { var2 = 1371257811; } else { var2 = 1107886260; } break; case 1107886260: var3 = null; var2 = -1809508905; break; case 1371257811: var3 = var1; var2 = -1809508905; } } } private static void replace(Collection var0) { Iterator var1 = null; String var2 = null; int var3 = -984517963; while (true) { switch (var3) { case -1187702782: OWNED.add(var2); var3 = 643557483; break; case -984517963: default: OWNED.clear(); var1 = var0.iterator(); var3 = 2092871285; break; case -305570027: if (!var2.isEmpty()) { var3 = -1187702782; } else { var3 = 643557483; } break; case -14614788: var2 = (String)var1.next(); if (var2 != null) { var3 = -305570027; } else { var3 = 643557483; } break; case 643557483: var3 = 2092871285; break; case 1302028448: return; case 2092871285: if (var1.hasNext()) { var3 = -14614788; } else { var3 = 1302028448; } } } } private static Path ownedPath() { return FabricLoader.getInstance() .getGameDir() .resolve("evolution") .resolve("cosmetics_owned.json"); } private static List load() { Path var0 = ownedPath(); if (!Files.isRegularFile(var0)) { return null; } try { JsonElement var1 = JsonParser.parseString(Files.readString(var0, StandardCharsets.UTF_8)); if (!var1.isJsonArray()) { return null; } ArrayList var2 = new ArrayList(); for (JsonElement var4 : var1.getAsJsonArray()) { if (var4 != null && var4.isJsonPrimitive()) { var2.add(var4.getAsString()); } } return var2; } catch (Exception var5) { id.warn( Cif.COSMETIC, "cosmetic ownership cache unreadable", var5 ); return null; } } private static void save(List var0) { JsonArray var1 = new JsonArray(); var0.forEach(var1::add); String var2 = var1.toString(); aef.io() .execute( () -> { try { Path var1x = ownedPath(); Files.createDirectories(var1x.getParent()); Path var2x = var1x.resolveSibling( "cosmetics_owned.json.tmp" ); Files.writeString(var2x, var2, StandardCharsets.UTF_8); CopyOption[] var10002 = new CopyOption[1]; var10002[0] = StandardCopyOption.REPLACE_EXISTING; Files.move(var2x, var1x, var10002); } catch (Exception var3) { id.warn( Cif.COSMETIC, "cosmetic ownership cache write failed", var3 ); } } ); } }