package defpackage; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.http.HttpRequest.BodyPublishers; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; import java.util.Base64; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents.EndTick; import net.minecraft.client.Minecraft; public final class akt { private static final String ENDPOINT = "https://www.evoproject.xyz/api/configs"; private static final String TICKET_HEADER = "X-Evo-Ticket"; private static final String TICKET_HEADER_VALUE = "1"; private static final String CONTENT_TYPE_HEADER = "Content-Type"; private static final String JSON_CONTENT_TYPE = "application/json"; private static final String WORKER_THREAD_NAME = "evo-tickets"; private static final String PICKER_THREAD_NAME = "evo-ticket-picker"; private static final String DEFAULT_ROLE = "user"; private static final int ADMIN_UID = 1; private static final String ACTION_LIST = "list"; private static final String ACTION_GET = "get"; private static final String ACTION_CREATE = "create"; private static final String ACTION_REPLY = "reply"; private static final String ACTION_UPLOAD = "upload"; private static final String NOTIFY_TITLE = "Bug Reports"; private static final String NOTIFY_REPLY = "#%d · developer replied"; private static final String NOTIFY_STATUS = "#%d · %s"; private static final String NOTIFY_UNREAD = "%d unread replies"; private static final String REQUEST_FAILURE = "ticket request {} failed"; private static final String MESSAGE_SIGN_IN = "Sign in to your EvoVisuals account first"; private static final String MESSAGE_FORBIDDEN = "Bug reports are open to testers and creators"; private static final String MESSAGE_RATE = "Too many requests, try again in a minute"; private static final String MESSAGE_CLOSED = "This ticket is closed"; private static final String MESSAGE_TOO_LARGE = "Attachment is too large"; private static final String MESSAGE_EMPTY = "Add a title and describe the bug"; private static final String MESSAGE_OFFLINE = "No connection to the server"; private static final String MESSAGE_FAILED = "Request failed (code %d)"; private static final String MESSAGE_SENDING = "Sending report"; private static final String MESSAGE_REPLYING = "Sending reply"; private static final String MESSAGE_UPLOADING = "Uploading %s"; private static final String MESSAGE_SENT = "Delivered to the developer"; private static final String MESSAGE_PARTIAL = "Sent, but %d attachment(s) failed"; private static final int HTTP_OK = 200; private static final int HTTP_UNAUTHORIZED = 401; private static final int HTTP_FORBIDDEN = 403; private static final int HTTP_CONFLICT = 409; private static final int HTTP_TOO_LARGE = 413; private static final int HTTP_RATE_LIMITED = 429; private static final int HTTP_BAD_REQUEST = 400; private static final int CHUNK_BYTES = 2621440; private static final int MIN_TITLE_LENGTH = 3; private static final long CONNECT_TIMEOUT_SECONDS = 10L; private static final long REQUEST_TIMEOUT_SECONDS = 30L; private static final long UPLOAD_TIMEOUT_SECONDS = 90L; private static final int POLL_INTERVAL_TICKS = 1800; private static final int FIRST_POLL_TICKS = 400; private static final long LIST_FRESH_MILLIS = 15000L; private static final long DETAIL_FRESH_MILLIS = 8000L; private static final HttpClient HTTP = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds((-5973269547378817318L | 5973269547378817328L) + (-5973269547378817318L & 5973269547378817328L))) .build(); private static final ExecutorService WORKER = Executors.newSingleThreadExecutor(var0 -> { Thread var1 = new Thread(var0, "evo-tickets"); var1.setDaemon((boolean)((((-1430510541 ^ 1430510542) + ((-1430510541 & 1430510542) << 1))) != 0)); return var1; }); private static final AtomicBoolean listInFlight = new AtomicBoolean(); private static final AtomicBoolean detailInFlight = new AtomicBoolean(); private static final AtomicBoolean pickerOpen = new AtomicBoolean(); private static final Map known = new HashMap<>(); private static volatile List tickets = List.of(); private static volatile akn current; private static volatile String openTicketId; private static volatile aks operation = aks.IDLE; private static volatile String listError = ""; private static volatile boolean loaded; private static volatile int unreadTotal; private static volatile long listFetchedAt; private static volatile long detailFetchedAt; private static boolean seeded; private static int ticks = 1400; private akt() { } public static void initialize() { ClientTickEvents.END_CLIENT_TICK.register((EndTick)var0 -> tick()); } public static boolean eligible() { cr var0 = null; String var1 = null; int var3 = 0; int var2 = -1601871798; while (true) { switch (var2) { case -2016420567: if (!"user".equals(var1)) { var2 = -1884814135; } else { var2 = 638029876; } break; case -1884814135: var3 = 1; var2 = 2033618756; break; case -1601871798: default: var0 = cp.user(); if (var0 != null) { var2 = 1813294744; } else { var2 = 281825674; } break; case -1566295638: if (var0.uid() == (611308069 | -611308068) + (611308069 & -611308068)) { var2 = 670901045; } else { var2 = 1848607529; } break; case 281825674: return (boolean)(((0)) != 0); case 638029876: var3 = 0; var2 = 2033618756; break; case 670901045: return (boolean)(((1)) != 0); case 1390442624: if (!var1.isBlank()) { var2 = -2016420567; } else { var2 = 638029876; } break; case 1813294744: if (var0.token() != null) { var2 = 1940167504; } else { var2 = 281825674; } break; case 1848607529: var1 = var0.role(); if (var1 != null) { var2 = 1390442624; } else { var2 = 638029876; } break; case 1940167504: if (var0.token().isEmpty()) { var2 = 281825674; } else { var2 = -1566295638; } break; case 2033618756: return (boolean)((var3) != 0); } } } public static List tickets() { return tickets; } public static akn current() { return current; } public static String openTicketId() { return openTicketId; } public static aks operation() { return operation; } public static String listError() { return listError; } public static boolean loaded() { return loaded; } public static int unreadTotal() { return unreadTotal; } public static void acknowledgeOperation() { int var0 = 1762256796; while (true) { switch (var0) { case -1008521757: operation = aks.IDLE; var0 = 748081971; break; case 748081971: return; case 1762256796: default: if (!operation.busy()) { var0 = -1008521757; } else { var0 = 748081971; } } } } public static void keepFresh() { long var0 = (-3211891592857018813L ^ 3211891592857018813L) + ((-3211891592857018813L & 3211891592857018813L) << 1); int var2 = 722441661; while (true) { switch (var2) { case -1488088245: if (var0 - detailFetchedAt > (-4825217785031831456L | 4825217785031839456L) + (-4825217785031831456L & 4825217785031839456L)) { var2 = -562950970; } else { var2 = 439098724; } break; case -562950970: fetchDetail(openTicketId); var2 = 439098724; break; case 439098724: return; case 722441661: default: var0 = System.currentTimeMillis(); if (var0 - listFetchedAt > (5445644411394247070L | -5445644411394232070L) + (5445644411394247070L & -5445644411394232070L)) { var2 = 1351909060; } else { var2 = 1046691574; } break; case 1046691574: if (openTicketId != null) { var2 = -1488088245; } else { var2 = 439098724; } break; case 1351909060: refresh(); var2 = 1046691574; } } } public static void refresh() { int var0 = 1135871994; while (true) { switch (var0) { case -1743864107: if (!listInFlight.compareAndSet( (boolean)(((0)) != 0), (boolean)((((905269846 ^ -905269845) + ((905269846 & -905269845) << 1)) ) != 0))) { var0 = -46310936; } else { var0 = 214034235; } break; case -46310936: return; case 214034235: listFetchedAt = System.currentTimeMillis(); WORKER.execute(() -> { boolean var2 = false /* VF: Semaphore variable */; try { var2 = true; fetchList(); var2 = false; } finally { if (var2) { listInFlight.set((boolean)((((-175047823 ^ 175047823) + ((-175047823 & 175047823) << 1))) != 0)); } } listInFlight.set((boolean)((((823491707 | -823491707) + (823491707 & -823491707))) != 0)); }); return; case 1135871994: default: if (eligible()) { var0 = -1743864107; } else { var0 = -46310936; } } } } public static void open(String var0) { akn var1 = null; int var2 = -1387878935; while (true) { switch (var2) { case -1387878935: default: openTicketId = var0; var1 = current; if (var1 != null) { var2 = -76412132; } else { var2 = 508699636; } break; case -845749913: current = null; var2 = 508699636; break; case -76412132: if (!var1.summary().id().equals(var0)) { var2 = -845749913; } else { var2 = 508699636; } break; case 508699636: fetchDetail(var0); return; } } } public static void closeDetail() { openTicketId = null; current = null; } public static void pickAttachments(Consumer> var0) { Thread var1 = null; int var2 = -1761108424; while (true) { switch (var2) { case -1761108424: default: if (!pickerOpen.compareAndSet( (boolean)((((0)) != 0)), (boolean)((((62135556 | -62135555) + (62135556 & -62135555)) ) != 0))) { var2 = 699865565; } else { var2 = 2047403626; } break; case 699865565: return; case 2047403626: var1 = new Thread(() -> { boolean var4 = false /* VF: Semaphore variable */; try { var4 = true; List var1x = ako.pick(); Minecraft.getInstance().execute(() -> var0.accept(var1x)); var4 = false; } finally { if (var4) { pickerOpen.set((boolean)((((844351761 ^ -844351761) + ((844351761 & -844351761) << 1))) != 0)); } } pickerOpen.set((boolean)((((-1314298054 | 1314298054) + (-1314298054 & 1314298054))) != 0)); }, "evo-ticket-picker"); var1.setDaemon((boolean)((((-1174573096 ^ 1174573097) + ((-1174573096 & 1174573097) << 1))) != 0)); var1.start(); return; } } } public static boolean create(String var0, String var1, List var2) { String var3 = null; String var4 = null; Minecraft var5 = null; JsonObject var6 = null; List var7 = null; int var8 = 2058104699; while (true) { switch (var8) { case -2003978303: var5 = Minecraft.getInstance(); var6 = aki.snapshot(var5); var7 = List.copyOf(var2); final String var3f = var3; final String var4f = var4; final JsonObject var6f = var6; final List var7f = var7; WORKER.execute( () -> { JsonObject var4x = null; JsonObject var5x = null; akn var6x = null; String var7x = null; int var8x = 0; int var9x = -1511007441; while (true) { switch (var9x) { case -1666387585: return; case -1511007441: default: var4x = body("create"); if (var4x == null) { var9x = 1018351915; } else { var9x = 1518469645; } break; case -335494395: var6x = akp.detail(var5x.getAsJsonObject("ticket")); var7x = akp.string(var5x, "messageId"); var8x = uploadAll(var6x.summary().id(), var7x, var7f); openTicketId = var6x.summary().id(); fetchDetailNow(var6x.summary().id()); fetchList(); finish(var8x); return; case 1018351915: fail( "Sign in to your EvoVisuals account first" ); return; case 1518469645: var4x.addProperty("title", var3f); var4x.addProperty("text", var4f); var4x.add("meta", var6f); var4x.addProperty("diagnostics", aki.diagnostics()); var4x.addProperty("log", aki.logTail()); var5x = execute( "create", var4x, (-8803807327989821872L ^ 8803807327989821902L) + ((-8803807327989821872L & 8803807327989821902L) << 1) ); if (var5x == null) { var9x = -1666387585; } else { var9x = -335494395; } } } } ); return (boolean)(((1)) != 0); case -1620873019: return (boolean)(((0)) != 0); case -1457503200: operation = new aks( akr.FAILED, 0.0F, "Add a title and describe the bug" ); return (boolean)(((0)) != 0); case -769293621: if (!startOperation("Sending report")) { var8 = -1620873019; } else { var8 = -2003978303; } break; case 545588374: if (var4.isEmpty()) { var8 = -1457503200; } else { var8 = -769293621; } break; case 2058104699: default: var3 = var0.trim(); var4 = var1.trim(); if (var3.length() >= (-1272625117 ^ 1272625120) + ((-1272625117 & 1272625120) << 1)) { var8 = 545588374; } else { var8 = -1457503200; } } } } public static boolean reply(String var0, List var1) { String var2 = null; String var3 = null; List var4 = null; int var5 = 292503723; while (true) { switch (var5) { case -1879381851: var4 = List.copyOf(var1); final String var2f = var2; final String var3f = var3; final List var4f = var4; WORKER.execute( () -> { JsonObject var3x = null; JsonObject var4x = null; akq var5x = null; int var6x = 0; int var7 = -1380881266; while (true) { switch (var7) { case -1380881266: default: var3x = body("reply"); if (var3x == null) { var7 = -441714181; } else { var7 = -996817194; } break; case -996817194: var3x.addProperty("id", var2f); var3x.addProperty("text", var3f); var4x = execute( "reply", var3x, (-4164723356791976216L | 4164723356791976246L) + (-4164723356791976216L & 4164723356791976246L) ); if (var4x == null) { var7 = -467225439; } else { var7 = -20417141; } break; case -467225439: return; case -441714181: fail( "Sign in to your EvoVisuals account first" ); return; case -20417141: var5x = akp.message(var4x.getAsJsonObject("message")); var6x = uploadAll(var2f, var5x.id(), var4f); fetchDetailNow(var2f); fetchList(); finish(var6x); return; } } } ); return (boolean)(((1)) != 0); case -117993584: if (!var3.isEmpty()) { var5 = -2364048; } else { var5 = 721166890; } break; case -2364048: if (!startOperation("Sending reply")) { var5 = 721166890; } else { var5 = -1879381851; } break; case 292503723: default: var2 = openTicketId; var3 = var0.trim(); if (var2 != null) { var5 = -117993584; } else { var5 = 721166890; } break; case 721166890: return (boolean)(((0)) != 0); } } } private static void tick() { int var0 = 2133479250; while (true) { switch (var0) { case -97380831: return; case 1259444166: ticks = 0; refresh(); return; case 2133479250: } if ((ticks += (1295266367 ^ -1295266366) + ((1295266367 & -1295266366) << 1)) < (2095909393 | -2095907593) + (2095909393 & -2095907593)) { var0 = -97380831; } else { var0 = 1259444166; } } } private static boolean startOperation(String var0) { int var1 = -2102205673; while (true) { switch (var1) { case -2102205673: default: if (operation.busy()) { var1 = -513064499; } else { var1 = 1147838188; } break; case -513064499: return (boolean)(((0)) != 0); case 1147838188: operation = new aks(akr.SENDING, 0.0F, var0); return (boolean)(((1)) != 0); } } } private static void finish(int var0) { aks var2 = null; int var1 = 1043060971; while (true) { switch (var1) { case -811013749: operation = var2; return; case 1043060971: default: if (var0 == 0) { var1 = 1264431477; } else { var1 = 1385396876; } break; case 1264431477: var2 = new aks( akr.DONE, 1.0F, "Delivered to the developer" ); var1 = -811013749; break; case 1385396876: akr var10002 = akr.FAILED; String var10004 = "Sent, but %d attachment(s) failed"; Object[] var10005 = new Object[1]; var10005[0] = var0; var2 = new aks(var10002, 1.0F, var10004.formatted(var10005)); var1 = -811013749; } } } private static void fail(String var0) { operation = new aks(akr.FAILED, 0.0F, var0); } private static void fetchDetail(String var0) { int var1 = 545199567; while (true) { switch (var1) { case -1715907794: return; case -1651834780: detailFetchedAt = System.currentTimeMillis(); WORKER.execute(() -> { boolean var3 = false /* VF: Semaphore variable */; try { var3 = true; fetchDetailNow(var0); var3 = false; } finally { if (var3) { detailInFlight.set((boolean)((((1946556844 ^ -1946556844) + ((1946556844 & -1946556844) << 1))) != 0)); } } detailInFlight.set((boolean)((((-2005698896 ^ 2005698896) + ((-2005698896 & 2005698896) << 1))) != 0)); }); return; case -18871651: if (!detailInFlight.compareAndSet( (boolean)((((0)) != 0)), (boolean)((((1524002324 | -1524002323) + (1524002324 & -1524002323)) ) != 0))) { var1 = -1715907794; } else { var1 = -1651834780; } break; case 545199567: default: if (eligible()) { var1 = -18871651; } else { var1 = -1715907794; } } } } private static void fetchDetailNow(String var0) { detailFetchedAt = System.currentTimeMillis(); JsonObject var1 = body("get"); if (var1 != null) { var1.addProperty("id", var0); JsonObject var2 = request( "get", var1, (5214772567306779578L ^ -5214772567306779548L) + ((5214772567306779578L & -5214772567306779548L) << 1), null ); if (var2 != null && var0.equals(openTicketId)) { akn var3 = akp.detail(var2.getAsJsonObject("ticket")); current = var3; synchronized (known) { known.put(var0, var3.summary()); } replaceSummary(var3.summary()); } } } private static void fetchList() { JsonObject var0 = null; String[] var1 = null; JsonObject var2 = null; List var3 = null; String var5 = null; int var4 = -435339064; while (true) { switch (var4) { case -1978202626: listError = var5; return; case -975455507: var1 = new String[1]; var2 = request( "list", var0, (-14912947664772319L | 14912947664772349L) + (-14912947664772319L & 14912947664772349L), var1 ); if (var2 == null) { var4 = -465868145; } else { var4 = 1081750918; } break; case -465868145: if (var1[0] == null) { var4 = 1188845738; } else { var4 = 663487018; } break; case -435339064: default: listFetchedAt = System.currentTimeMillis(); var0 = body("list"); if (var0 == null) { var4 = 318113505; } else { var4 = -975455507; } break; case 318113505: return; case 663487018: var5 = var1[0]; var4 = -1978202626; break; case 1081750918: var3 = akp.summaries(var2); listError = ""; announceChanges(var3); tickets = var3; unreadTotal = countUnread(var3); loaded = (boolean)(((1)) != 0); return; case 1188845738: var5 = "No connection to the server"; var4 = -1978202626; } } } private static void replaceSummary(akw var0) { List var1 = tickets; ArrayList var2 = new ArrayList(var1.size()); for (akw var4 : (Iterable)var1) { var2.add(var4.id().equals(var0.id()) ? var0 : var4); } tickets = List.copyOf(var2); unreadTotal = countUnread(var2); } private static int countUnread(List var0) { int var1 = 0; Iterator var2 = null; akw var3 = null; int var4 = -1008568820; while (true) { switch (var4) { case -1008568820: default: var1 = 0; var2 = var0.iterator(); var4 = 1174307203; break; case 463281480: return var1; case 1118217846: var3 = (akw)var2.next(); var1 += var3.unread(); var4 = 1174307203; break; case 1174307203: if (var2.hasNext()) { var4 = 1118217846; } else { var4 = 463281480; } } } } private static void announceChanges(List var0) { ArrayList var1 = new ArrayList(); synchronized (known) { if (!seeded) { seeded = (boolean)(((1)) != 0); int var9 = countUnread(var0); if (var9 > 0) { String var13 = "%d unread replies"; Object[] var15 = new Object[1]; var15[0] = var9; var1.add(var13.formatted(var15)); } } else { String var3 = openTicketId; for (akw var5 : var0) { akw var6 = known.get(var5.id()); if (var6 != null && !var5.id().equals(var3)) { if (var5.unread() > var6.unread()) { String var10001 = "#%d · developer replied"; Object[] var10002 = new Object[1]; var10002[0] = var5.number(); var1.add(var10001.formatted(var10002)); } else if (var5.status() != var6.status()) { String var12 = "#%d · %s"; Object[] var14 = new Object[2]; var14[0] = var5.number(); var14[1] = var5.status().label(); var1.add(var12.formatted(var14)); } } } } known.clear(); for (akw var11 : var0) { known.put(var11.id(), var11); } } if (!var1.isEmpty()) { Minecraft.getInstance() .execute( () -> { Iterator var1x = null; String var2 = null; int var3x = 1899300714; while (true) { switch (var3x) { case -2022509629: if (var1x.hasNext()) { var3x = 1312698264; } else { var3x = 774740732; } break; case 774740732: return; case 1312698264: var2 = (String)var1x.next(); le.getInstance() .addCustomNotification( rl.TICKETS.getIcon(), "Bug Reports", var2 ); var3x = -2022509629; break; case 1899300714: default: var1x = var1.iterator(); var3x = -2022509629; } } } ); } } private static int uploadAll(String var0, String var1, List var2) { if (!var2.isEmpty() && !var1.isEmpty()) { long var3 = (-5804653891711843410L ^ 5804653891711843410L) + ((-5804653891711843410L & 5804653891711843410L) << 1); for (akk var6 : var2) { var3 += var6.size(); } long[] var9 = new long[1]; int var10 = 0; int var7 = Math.min(var2.size(), (-2029348682 | 2029348690) + (-2029348682 & 2029348690)); for (int var8 = 0; var8 < var7; var8++) { if (!upload(var0, var1, (akk)var2.get(var8), var3, var9)) { var10++; } } return var10 + var2.size() - var7; } else { return 0; } } private static boolean upload(String var0, String var1, akk var2, long var3, long[] var5) { String var6 = UUID.randomUUID().toString(); long var7; try { var7 = Files.size(var2.path()); } catch (IOException var17) { id.warn( Cif.NETWORK, "ticket request {} failed", "upload", var17 ); return (boolean)(((0)) != 0); } if (var7 > (-8629840793939819860L ^ 8629840793939819860L) + ((-8629840793939819860L & 8629840793939819860L) << 1) && var7 <= (-4199578030736825040L ^ 4199578030784010960L) + ((-4199578030736825040L & 4199578030784010960L) << 1)) { int var9 = (int)( ( var7 + (1689533774112677477L ^ -1689533774110056037L) + ((1689533774112677477L & -1689533774110056037L) << 1) - ((-8430832053761281752L | 8430832053761281753L) + (-8430832053761281752L & 8430832053761281753L)) ) / ((-7265830220760354066L | 7265830220762975506L) + (-7265830220760354066L & 7265830220762975506L)) ); byte[] var10 = new byte[2621440]; try (InputStream var11 = Files.newInputStream(var2.path())) { for (int var12 = 0; var12 < var9; var12++) { int var13 = var11.readNBytes( var10, 0, (int)Math.min( (-7479547944327335797L ^ 7479547944329957237L) + ((-7479547944327335797L & 7479547944329957237L) << 1), var7 - var12 * ((4226242672305216232L ^ -4226242672302594792L) + ((4226242672305216232L & -4226242672302594792L) << 1)) ) ); if (var13 <= 0) { return (boolean)(((0)) != 0); } akr var10002 = akr.UPLOADING; float var10003 = var3 <= (1412916215354508837L | -1412916215354508837L) + (1412916215354508837L & -1412916215354508837L) ? 0.0F : (float)var5[0] / (float)var3; String var10004 = "Uploading %s"; Object[] var10005 = new Object[1]; var10005[0] = var2.name(); operation = new aks(var10002, var10003, var10004.formatted(var10005)); JsonObject var14 = body("upload"); if (var14 == null) { return (boolean)(((0)) != 0); } var14.addProperty("id", var0); var14.addProperty("messageId", var1); var14.addProperty("uploadId", var6); var14.addProperty("index", var12); var14.addProperty("total", var9); var14.addProperty("name", var2.name()); var14.addProperty( "data", Base64.getEncoder().encodeToString(var13 == 2621440? var10 : Arrays.copyOf(var10, var13)) ); if (request( "upload", var14, (3950550109405487457L ^ -3950550109405487367L) + ((3950550109405487457L & -3950550109405487367L) << 1), null ) == null) { return (boolean)(((0)) != 0); } var5[0] = var5[0] + var13; } return (boolean)(((1)) != 0); } catch (IOException var19) { id.warn( Cif.NETWORK, "ticket request {} failed", "upload", var19 ); return (boolean)(((0)) != 0); } } else { return (boolean)(((0)) != 0); } } private static JsonObject body(String var0) { cr var1 = null; JsonObject var2 = null; int var3 = 24658916; while (true) { switch (var3) { case -1676044581: if (var1.token().isEmpty()) { var3 = -340288647; } else { var3 = -491642823; } break; case -491642823: var2 = new JsonObject(); var2.addProperty("token", var1.token()); var2.addProperty("action", var0); return var2; case -340288647: return null; case 24658916: default: var1 = cp.user(); if (var1 != null) { var3 = 1250342989; } else { var3 = -340288647; } break; case 1250342989: if (var1.token() != null) { var3 = -1676044581; } else { var3 = -340288647; } } } } private static JsonObject execute(String var0, JsonObject var1, long var2) { String[] var4 = null; JsonObject var5 = null; Object var7 = null; int var6 = 967020066; while (true) { switch (var6) { case -1244737301: fail((String)var7); var6 = 315517729; break; case -656810919: if (var4[0] == null) { var6 = -507530094; } else { var6 = 910474335; } break; case -507530094: var7 = "No connection to the server"; var6 = -1244737301; break; case 315517729: return var5; case 910474335: var7 = var4[0]; var6 = -1244737301; break; case 967020066: default: var4 = new String[1]; var5 = request(var0, var1, var2, var4); if (var5 == null) { var6 = -656810919; } else { var6 = 315517729; } } } } private static JsonObject request(String var0, JsonObject var1, long var2, String[] var4) { try { HttpRequest var5 = HttpRequest.newBuilder( URI.create( "https://www.evoproject.xyz/api/configs" ) ) .timeout(Duration.ofSeconds(var2)) .header( "Content-Type", "application/json" ) .header( "X-Evo-Ticket", "1" ) .POST(BodyPublishers.ofString(var1.toString(), StandardCharsets.UTF_8)) .build(); HttpResponse var6 = ld.send(HTTP, var5); if (var6.statusCode() != (84728688 ^ -84728488) + ((84728688 & -84728488) << 1)) { if (var4 != null) { var4[0] = describe(var6.statusCode()); } return null; } else { return JsonParser.parseString((String)var6.body()).getAsJsonObject(); } } catch (InterruptedException var7) { Thread.currentThread().interrupt(); return null; } catch (Exception var8) { id.warn(Cif.NETWORK, "ticket request {} failed", var0, var8); return null; } } private static String describe(int var0) { return switch (var0) { case 400 -> "Add a title and describe the bug"; case 401 -> "Sign in to your EvoVisuals account first"; case 403 -> "Bug reports are open to testers and creators"; case 409 -> "This ticket is closed"; case 413 -> "Attachment is too large"; case 429 -> "Too many requests, try again in a minute"; default -> { String var10000 = "Request failed (code %d)"; Object[] var10001 = new Object[1]; var10001[0] = var0; yield var10000.formatted(var10001); } }; } }