evo/src/main/java/defpackage/adx.java

429 lines
12 KiB
Java

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<String> 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<String> 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<String> 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<String> 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<String> 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
);
}
}
);
}
}