637 lines
18 KiB
Java
637 lines
18 KiB
Java
package defpackage;
|
|
|
|
import com.google.gson.JsonArray;
|
|
import com.google.gson.JsonElement;
|
|
import com.google.gson.JsonParser;
|
|
import java.nio.file.Path;
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
import java.util.Collections;
|
|
import java.util.HashMap;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.core.Direction;
|
|
|
|
public final class agc {
|
|
private static final agc INSTANCE = new agc();
|
|
private static final String FILE_SUFFIX = ".json";
|
|
private static final String FOLDER = "frames";
|
|
private static final String PARSE_FAILURE = "photo frame store parse failed for {}";
|
|
private static final int MAX_FRAMES = 512;
|
|
private final Map<String, Map<String, aga>> index = new HashMap<>();
|
|
private String worldKey;
|
|
private boolean dirty;
|
|
|
|
private agc() {
|
|
}
|
|
|
|
public static agc getInstance() {
|
|
return INSTANCE;
|
|
}
|
|
|
|
public void openWorld(String var1) {
|
|
Path var2 = null;
|
|
int var3 = -162256257;
|
|
|
|
while (true) {
|
|
switch (var3) {
|
|
case -1443437019:
|
|
if (var1.equals(this.worldKey)) {
|
|
var3 = -1267929938;
|
|
} else {
|
|
var3 = 1328323102;
|
|
}
|
|
break;
|
|
case -1267929938:
|
|
return;
|
|
case -162256257:
|
|
default:
|
|
if (var1 != null) {
|
|
var3 = -1443437019;
|
|
} else {
|
|
var3 = -1267929938;
|
|
}
|
|
break;
|
|
case 1328323102:
|
|
this.closeWorld();
|
|
this.worldKey = var1;
|
|
var2 = this.file();
|
|
final String var2f = var2;
|
|
afz.submit(() -> {
|
|
String var3x = null;
|
|
Minecraft var4x = null;
|
|
int var5 = -661829098;
|
|
|
|
while (true) {
|
|
switch (var5) {
|
|
case -1745965103:
|
|
var4x = Minecraft.getInstance();
|
|
if (var4x == null) {
|
|
var5 = -1190748504;
|
|
} else {
|
|
var5 = 1409303397;
|
|
}
|
|
break;
|
|
case -1190748504:
|
|
return;
|
|
case -661829098:
|
|
default:
|
|
var3x = afz.readText(var2f);
|
|
if (var3x != null) {
|
|
var5 = 821254678;
|
|
} else {
|
|
var5 = 777334794;
|
|
}
|
|
break;
|
|
case 777334794:
|
|
return;
|
|
case 821254678:
|
|
if (var3x.isBlank()) {
|
|
var5 = 777334794;
|
|
} else {
|
|
var5 = -1745965103;
|
|
}
|
|
break;
|
|
case 1409303397:
|
|
final String var3xf = var3x;
|
|
var4x.execute(() -> {
|
|
int var3xx = -1067188536;
|
|
|
|
while (true) {
|
|
switch (var3xx) {
|
|
case -1686595842:
|
|
return;
|
|
case -1411863625:
|
|
this.load(var3xf, var1);
|
|
var3xx = -1686595842;
|
|
break;
|
|
case -1067188536:
|
|
default:
|
|
if (var1.equals(this.worldKey)) {
|
|
var3xx = -1411863625;
|
|
} else {
|
|
var3xx = -1686595842;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
});
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void closeWorld() {
|
|
int var1 = 146074418;
|
|
|
|
while (true) {
|
|
switch (var1) {
|
|
case -1375686244:
|
|
return;
|
|
case 127891334:
|
|
this.flush();
|
|
this.index.clear();
|
|
this.worldKey = null;
|
|
return;
|
|
case 146074418:
|
|
}
|
|
|
|
if (this.worldKey == null) {
|
|
var1 = -1375686244;
|
|
} else {
|
|
var1 = 127891334;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void add(aga var1) {
|
|
int var2 = 845865298;
|
|
|
|
while (true) {
|
|
switch (var2) {
|
|
case -949385108:
|
|
return;
|
|
case 776588064:
|
|
this.dimension(var1.dimension()).put(var1.key(), var1);
|
|
this.dirty = (boolean)(((1)) != 0);
|
|
this.trim();
|
|
return;
|
|
case 845865298:
|
|
}
|
|
|
|
if (var1 == null) {
|
|
var2 = -949385108;
|
|
} else {
|
|
var2 = 776588064;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void accept(aga var1) {
|
|
int var2 = -741589586;
|
|
|
|
while (true) {
|
|
switch (var2) {
|
|
case -741589586:
|
|
default:
|
|
if (var1 == null) {
|
|
var2 = -38497398;
|
|
} else {
|
|
var2 = -671914360;
|
|
}
|
|
break;
|
|
case -671914360:
|
|
this.dimension(var1.dimension()).put(var1.key(), var1);
|
|
this.trim();
|
|
return;
|
|
case -38497398:
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
public aga remove(String var1, String var2) {
|
|
Map var3 = null;
|
|
aga var4 = null;
|
|
int var5 = 1894884496;
|
|
|
|
while (true) {
|
|
switch (var5) {
|
|
case -1904022060:
|
|
var4 = (aga)var3.remove(var2);
|
|
if (var4 != null) {
|
|
var5 = -403231254;
|
|
} else {
|
|
var5 = 561772484;
|
|
}
|
|
break;
|
|
case -403231254:
|
|
this.dirty = (boolean)(((1)) != 0);
|
|
var5 = 561772484;
|
|
break;
|
|
case -80294896:
|
|
return null;
|
|
case 561772484:
|
|
return var4;
|
|
case 1894884496:
|
|
default:
|
|
var3 = this.index.get(var1);
|
|
if (var3 == null) {
|
|
var5 = -80294896;
|
|
} else {
|
|
var5 = -1904022060;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public aga at(String var1, BlockPos var2, Direction var3) {
|
|
Map var4 = null;
|
|
aga var6 = null;
|
|
int var5 = -1612171383;
|
|
|
|
while (true) {
|
|
switch (var5) {
|
|
case -1613275687:
|
|
return var6;
|
|
case -1612171383:
|
|
default:
|
|
var4 = this.index.get(var1);
|
|
if (var4 == null) {
|
|
var5 = 1879531360;
|
|
} else {
|
|
var5 = -817607044;
|
|
}
|
|
break;
|
|
case -817607044:
|
|
var6 = (aga)var4.get(aga.faceKey(var2, var3));
|
|
var5 = -1613275687;
|
|
break;
|
|
case 1879531360:
|
|
var6 = null;
|
|
var5 = -1613275687;
|
|
}
|
|
}
|
|
}
|
|
|
|
public aga byKey(String var1, String var2) {
|
|
Map var3 = null;
|
|
aga var5 = null;
|
|
int var4 = 1114336063;
|
|
|
|
while (true) {
|
|
switch (var4) {
|
|
case -1002660803:
|
|
var5 = null;
|
|
var4 = -151177985;
|
|
break;
|
|
case -151177985:
|
|
return var5;
|
|
case 294383509:
|
|
var5 = (aga)var3.get(var2);
|
|
var4 = -151177985;
|
|
break;
|
|
case 1114336063:
|
|
default:
|
|
var3 = this.index.get(var1);
|
|
if (var3 == null) {
|
|
var4 = -1002660803;
|
|
} else {
|
|
var4 = 294383509;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public Collection<aga> inDimension(String var1) {
|
|
Map var2 = null;
|
|
Collection var4 = null;
|
|
int var3 = -754972078;
|
|
|
|
while (true) {
|
|
switch (var3) {
|
|
case -754972078:
|
|
default:
|
|
var2 = this.index.get(var1);
|
|
if (var2 == null) {
|
|
var3 = 1027795694;
|
|
} else {
|
|
var3 = 847240645;
|
|
}
|
|
break;
|
|
case 847240645:
|
|
var4 = var2.values();
|
|
var3 = 2047328821;
|
|
break;
|
|
case 1027795694:
|
|
var4 = Collections.emptyList();
|
|
var3 = 2047328821;
|
|
break;
|
|
case 2047328821:
|
|
return var4;
|
|
}
|
|
}
|
|
}
|
|
|
|
public int countOwned(String var1, String var2) {
|
|
int var3 = 0;
|
|
Iterator var4 = null;
|
|
aga var5 = null;
|
|
int var6 = -1656800590;
|
|
|
|
while (true) {
|
|
switch (var6) {
|
|
case -1656800590:
|
|
default:
|
|
var3 = 0;
|
|
var4 = this.inDimension(var1).iterator();
|
|
var6 = -1352139860;
|
|
break;
|
|
case -1352139860:
|
|
if (var4.hasNext()) {
|
|
var6 = -228138160;
|
|
} else {
|
|
var6 = -982036114;
|
|
}
|
|
break;
|
|
case -982036114:
|
|
return var3;
|
|
case -478063156:
|
|
var6 = -1352139860;
|
|
break;
|
|
case -228138160:
|
|
var5 = (aga)var4.next();
|
|
if (var5.owner().equals(var2)) {
|
|
var6 = -33070383;
|
|
} else {
|
|
var6 = -478063156;
|
|
}
|
|
break;
|
|
case -33070383:
|
|
var3++;
|
|
var6 = -478063156;
|
|
}
|
|
}
|
|
}
|
|
|
|
public List<String> photoIds(String var1) {
|
|
ArrayList var2 = null;
|
|
Iterator var3 = null;
|
|
aga var4 = null;
|
|
int var5 = 402196462;
|
|
|
|
while (true) {
|
|
switch (var5) {
|
|
case -1398699828:
|
|
var5 = -733988611;
|
|
break;
|
|
case -866753866:
|
|
return var2;
|
|
case -733988611:
|
|
if (var3.hasNext()) {
|
|
var5 = 1299450934;
|
|
} else {
|
|
var5 = -866753866;
|
|
}
|
|
break;
|
|
case -54152330:
|
|
var2.add(var4.photoId());
|
|
var5 = -1398699828;
|
|
break;
|
|
case 402196462:
|
|
default:
|
|
var2 = new ArrayList();
|
|
var3 = this.inDimension(var1).iterator();
|
|
var5 = -733988611;
|
|
break;
|
|
case 1299450934:
|
|
var4 = (aga)var3.next();
|
|
if (!var2.contains(var4.photoId())) {
|
|
var5 = -54152330;
|
|
} else {
|
|
var5 = -1398699828;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void prune(long var1) {
|
|
Iterator var3 = null;
|
|
Map var4 = null;
|
|
Iterator var5 = null;
|
|
int var6 = 1211949869;
|
|
|
|
while (true) {
|
|
switch (var6) {
|
|
case -2090148792:
|
|
return;
|
|
case -1591963397:
|
|
if (var3.hasNext()) {
|
|
var6 = -1025782002;
|
|
} else {
|
|
var6 = -2090148792;
|
|
}
|
|
break;
|
|
case -1025782002:
|
|
var4 = (Map)var3.next();
|
|
var5 = var4.values().iterator();
|
|
var6 = -716658062;
|
|
break;
|
|
case -716658062:
|
|
if (var5.hasNext()) {
|
|
var6 = 1504955964;
|
|
} else {
|
|
var6 = 499426679;
|
|
}
|
|
break;
|
|
case 499426679:
|
|
var6 = -1591963397;
|
|
break;
|
|
case 1211949869:
|
|
default:
|
|
var3 = this.index.values().iterator();
|
|
var6 = -1591963397;
|
|
break;
|
|
case 1504955964:
|
|
if (((aga)var5.next()).isExpired(var1)) {
|
|
var6 = 2029911417;
|
|
} else {
|
|
var6 = -716658062;
|
|
}
|
|
break;
|
|
case 2029911417:
|
|
var5.remove();
|
|
this.dirty = (boolean)(((1)) != 0);
|
|
var6 = -716658062;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void flush() {
|
|
JsonArray var1 = null;
|
|
Iterator var2 = null;
|
|
Map var3 = null;
|
|
Iterator var4 = null;
|
|
aga var5 = null;
|
|
int var6 = 1202493299;
|
|
|
|
while (true) {
|
|
switch (var6) {
|
|
case -1720131580:
|
|
if (var4.hasNext()) {
|
|
var6 = -1205558708;
|
|
} else {
|
|
var6 = 159549983;
|
|
}
|
|
break;
|
|
case -1205558708:
|
|
var5 = (aga)var4.next();
|
|
var1.add(var5.toJson());
|
|
var6 = -1720131580;
|
|
break;
|
|
case -521745939:
|
|
this.dirty = (boolean)(((0)) != 0);
|
|
var1 = new JsonArray();
|
|
var2 = this.index.values().iterator();
|
|
var6 = 1766902981;
|
|
break;
|
|
case -310564730:
|
|
var3 = (Map)var2.next();
|
|
var4 = var3.values().iterator();
|
|
var6 = -1720131580;
|
|
break;
|
|
case 159549983:
|
|
var6 = 1766902981;
|
|
break;
|
|
case 319792963:
|
|
return;
|
|
case 321143452:
|
|
if (!this.dirty) {
|
|
var6 = 319792963;
|
|
} else {
|
|
var6 = -521745939;
|
|
}
|
|
break;
|
|
case 1202493299:
|
|
default:
|
|
if (this.worldKey != null) {
|
|
var6 = 321143452;
|
|
} else {
|
|
var6 = 319792963;
|
|
}
|
|
break;
|
|
case 1732568970:
|
|
afz.writeTextAsync(this.file(), var1.toString());
|
|
return;
|
|
case 1766902981:
|
|
if (var2.hasNext()) {
|
|
var6 = -310564730;
|
|
} else {
|
|
var6 = 1732568970;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private Map<String, aga> dimension(String var1) {
|
|
return this.index.computeIfAbsent(var1, var0 -> new LinkedHashMap<>());
|
|
}
|
|
|
|
private void trim() {
|
|
int var1 = 0;
|
|
Iterator var2 = null;
|
|
Map var3 = null;
|
|
Iterator var4 = null;
|
|
int var5 = 1596811217;
|
|
|
|
while (true) {
|
|
switch (var5) {
|
|
case -1735093500:
|
|
return;
|
|
case -804601839:
|
|
var2 = this.index.values().iterator();
|
|
var5 = 190544826;
|
|
break;
|
|
case -644801565:
|
|
var3 = (Map)var2.next();
|
|
var1 += var3.size();
|
|
var5 = 584861760;
|
|
break;
|
|
case -607281677:
|
|
var3 = (Map)var2.next();
|
|
var4 = var3.values().iterator();
|
|
var5 = 432105076;
|
|
break;
|
|
case -66459897:
|
|
if (var1 <= (988366977 ^ -988366465) + ((988366977 & -988366465) << 1)) {
|
|
var5 = 266605426;
|
|
} else {
|
|
var5 = -804601839;
|
|
}
|
|
break;
|
|
case 190544826:
|
|
if (var2.hasNext()) {
|
|
var5 = -607281677;
|
|
} else {
|
|
var5 = -1735093500;
|
|
}
|
|
break;
|
|
case 266605426:
|
|
return;
|
|
case 432105076:
|
|
if (var4.hasNext()) {
|
|
var5 = 1851779001;
|
|
} else {
|
|
var5 = 1280784759;
|
|
}
|
|
break;
|
|
case 584861760:
|
|
if (var2.hasNext()) {
|
|
var5 = -644801565;
|
|
} else {
|
|
var5 = -66459897;
|
|
}
|
|
break;
|
|
case 1280784759:
|
|
var5 = 190544826;
|
|
break;
|
|
case 1596811217:
|
|
default:
|
|
var1 = 0;
|
|
var2 = this.index.values().iterator();
|
|
var5 = 584861760;
|
|
break;
|
|
case 1723992871:
|
|
var4.next();
|
|
var4.remove();
|
|
var1--;
|
|
var5 = 432105076;
|
|
break;
|
|
case 1851779001:
|
|
if (var1 > (1270699653 | -1270699141) + (1270699653 & -1270699141)) {
|
|
var5 = 1723992871;
|
|
} else {
|
|
var5 = 1280784759;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void load(String var1, String var2) {
|
|
try {
|
|
JsonElement var3 = JsonParser.parseString(var1);
|
|
if (!var3.isJsonArray()) {
|
|
return;
|
|
}
|
|
|
|
long var4 = System.currentTimeMillis();
|
|
|
|
for (JsonElement var7 : var3.getAsJsonArray()) {
|
|
if (var7.isJsonObject()) {
|
|
aga var8 = aga.fromJson(var7.getAsJsonObject());
|
|
if (var8 != null && !var8.isExpired(var4)) {
|
|
this.dimension(var8.dimension()).put(var8.key(), var8);
|
|
}
|
|
}
|
|
}
|
|
} catch (RuntimeException var9) {
|
|
id.warn(
|
|
Cif.COSMETIC,
|
|
"photo frame store parse failed for {}",
|
|
var2,
|
|
var9
|
|
);
|
|
}
|
|
}
|
|
|
|
private Path file() {
|
|
return afz.directory().resolve("frames").resolve(this.worldKey + ".json");
|
|
}
|
|
}
|