From 8e604294a5432dde610d3b8cc070983ee2f9dd22 Mon Sep 17 00:00:00 2001 From: EpsilonPhoenix <129551402+EpsilonPhoenix@users.noreply.github.com> Date: Mon, 6 Jul 2026 18:39:26 -0400 Subject: [PATCH 01/15] merge v5loader and v5modloader... --- .../ctjs/internal/launch/ModLoaderUpdater.kt | 18 +- .../ctjs/internal/launch/SecureLoader.kt | 220 +------------- src/main/kotlin/com/v5/loader/V5PreLaunch.kt | 14 + .../kotlin/com/v5/loader/internal/V5Crypto.kt | 39 +++ .../kotlin/com/v5/loader/internal/V5Http.kt | 122 ++++++++ .../kotlin/com/v5/loader/internal/V5Loader.kt | 285 ++++++++++++++++++ src/main/resources/fabric.mod.json | 4 + 7 files changed, 474 insertions(+), 228 deletions(-) create mode 100644 src/main/kotlin/com/v5/loader/V5PreLaunch.kt create mode 100644 src/main/kotlin/com/v5/loader/internal/V5Crypto.kt create mode 100644 src/main/kotlin/com/v5/loader/internal/V5Http.kt create mode 100644 src/main/kotlin/com/v5/loader/internal/V5Loader.kt diff --git a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/ModLoaderUpdater.kt b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/ModLoaderUpdater.kt index 20d2a35..0606cb3 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/ModLoaderUpdater.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/ModLoaderUpdater.kt @@ -5,11 +5,11 @@ import java.io.FileOutputStream import java.nio.charset.StandardCharsets internal object ModLoaderUpdater { - private const val MOD_LOADER_CANONICAL_FILE_NAME = "V5ModLoader.jar" + private const val MOD_LOADER_CANONICAL_FILE_NAME = "V5-Loader.jar" private const val MOD_LOADER_HELPER_TIMEOUT_SECONDS = 90 private const val MOD_LOADER_REPLACE_RETRY_COUNT = 20 - private const val UPDATE_POPUP_TITLE = "V5ModLoader" - private const val UPDATE_POPUP_MESSAGE = "V5ModLoader updated. Start minecraft again." + private const val UPDATE_POPUP_TITLE = "V5-Loader" + private const val UPDATE_POPUP_MESSAGE = "V5-Loader updated. Start Minecraft again." fun stageUpdateAndRelaunch( gameDir: File, @@ -34,9 +34,9 @@ internal object ModLoaderUpdater { val modsDir = File(canonicalGameDir, "mods").canonicalFile.apply { mkdirs() } val updaterDir = File(canonicalGameDir, ".v5-self-update").canonicalFile.apply { mkdirs() } val pid = ProcessHandle.current().pid() - val sourceJar = File(updaterDir, "V5ModLoader-$pid.jar.new").canonicalFile - val targetJar = selectModLoaderTarget(modsDir, candidates) - val backupJar = File(updaterDir, "V5ModLoader-$pid.jar.bak").canonicalFile + val sourceJar = File(updaterDir, "V5-Loader-$pid.jar.new").canonicalFile + val targetJar = selectLoaderTarget(modsDir, candidates) + val backupJar = File(updaterDir, "V5-Loader-$pid.jar.bak").canonicalFile val targetPath = targetJar.toPath().toAbsolutePath().normalize() val staleTargets = candidates .map { it.toPath().toAbsolutePath().normalize() } @@ -53,7 +53,7 @@ internal object ModLoaderUpdater { ) } - private fun selectModLoaderTarget(modsDir: File, candidates: List): File { + private fun selectLoaderTarget(modsDir: File, candidates: List): File { val canonicalModsDir = modsDir.canonicalFile.toPath().normalize() val existingTarget = candidates.singleOrNull() ?.canonicalFile @@ -74,7 +74,7 @@ internal object ModLoaderUpdater { } private fun writeUnixUpdateScript(updatePaths: UpdatePaths): File { - val script = File(updatePaths.sourceJar.parentFile, "modloader-update-${updatePaths.pid}.sh").canonicalFile + val script = File(updatePaths.sourceJar.parentFile, "v5-loader-update-${updatePaths.pid}.sh").canonicalFile val lines = mutableListOf() lines += "#!/bin/sh" lines += "PID=${updatePaths.pid}" @@ -123,7 +123,7 @@ internal object ModLoaderUpdater { } private fun writeWindowsUpdateScript(updatePaths: UpdatePaths): File { - val script = File(updatePaths.sourceJar.parentFile, "modloader-update-${updatePaths.pid}.cmd").canonicalFile + val script = File(updatePaths.sourceJar.parentFile, "v5-loader-update-${updatePaths.pid}.cmd").canonicalFile val lines = mutableListOf() lines += "@echo off" lines += "setlocal enabledelayedexpansion" diff --git a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt index e127f78..8018186 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt @@ -15,9 +15,7 @@ import net.minecraft.util.Util import java.io.ByteArrayInputStream import java.io.File import java.io.IOException -import java.io.FileInputStream import java.io.FileOutputStream -import java.net.URI import java.net.URL import java.nio.charset.StandardCharsets import java.util.Arrays @@ -30,7 +28,6 @@ internal object SecureLoader { private const val BACKEND_URL = "https://backend.rdbt.top" private const val DISK_MODULE_NAME = "V5" private const val LOADER_USER_AGENT = "V5Loader/1.1" - private const val RAT_DETECTED_DOCS_URL = "https://rdbt.top/docs/rat-detected" private const val TOKEN_EXPIRY_SKEW_SECONDS = 60L private const val SESSION_DIR_NAME = ".v5" private const val SESSION_FILE_NAME = "session.json" @@ -46,20 +43,6 @@ internal object SecureLoader { @Volatile private var internalToken: String? = null @Volatile private var didConsumeInitialLoaderToken = false - private enum class ModLoaderStatus { - VALID, - OUTDATED, - INVALID_TAMPERED, - INVALID_INSTALLATION, - CHECK_FAILED - } - - private data class ModLoaderCheckResult( - val status: ModLoaderStatus, - val candidates: List, - val message: String - ) - @JvmStatic fun getJwtToken(): String? { val token = internalToken @@ -295,14 +278,11 @@ internal object SecureLoader { fun onMixinPlugin() { if (isPluginLoaded) return - if (!ensureV5ModLoaderInstalled()) { - shutDownHard() - } println("[V5] Stage: onMixinPlugin") try { val token = getFreshJwtToken() if (token.isNullOrBlank()) { - println("[V5] No token passed from modloader.") + println("[V5] No loader auth token available.") shutDownHard() } @@ -324,28 +304,6 @@ internal object SecureLoader { } } - private fun ensureV5ModLoaderInstalled(): Boolean { - val result = checkV5ModLoader() - return when (result.status) { - ModLoaderStatus.VALID -> true - ModLoaderStatus.OUTDATED, - ModLoaderStatus.INVALID_INSTALLATION -> { - println("[V5] ${result.message}") - tryAutoUpdateModLoader(result) - false - } - ModLoaderStatus.INVALID_TAMPERED -> { - println("[V5] ${result.message}") - openRatDetectedDocsPage() - false - } - ModLoaderStatus.CHECK_FAILED -> { - println("[V5] ${result.message}") - false - } - } - } - private fun isLocalDeveloperModeEnabled(): Boolean { return try { val stateFile = File(File(CTJS.MODULES_FOLDER, "V5Config"), "developerMode.json") @@ -359,162 +317,6 @@ internal object SecureLoader { } } - @Suppress("FunctionName") - fun V5ModLoaderCheck(): Boolean { - return checkV5ModLoader().status == ModLoaderStatus.VALID - } - - private fun checkV5ModLoader(): ModLoaderCheckResult { - val modsDir = File(getGameDir(), "mods") - val candidates = modsDir.walk() - .filter { file -> file.isFile && isV5ModLoaderJar(file.name) } - .toList() - - if (candidates.size != 1) { - return ModLoaderCheckResult( - status = ModLoaderStatus.INVALID_INSTALLATION, - candidates = candidates, - message = "Expected one V5ModLoader jar in mods, found ${candidates.size}. Repairing install." - ) - } - - val hash = calculateFileSha256(candidates.first()) - if (hash.isBlank()) { - return ModLoaderCheckResult( - status = ModLoaderStatus.INVALID_INSTALLATION, - candidates = candidates, - message = "Failed to compute V5ModLoader hash. Repairing install." - ) - } - - val token = getFreshJwtToken() - if (token.isNullOrBlank()) { - return ModLoaderCheckResult( - status = ModLoaderStatus.CHECK_FAILED, - candidates = candidates, - message = "Missing auth token for modloader integrity check." - ) - } - - val connection = openBackendConnection("$BACKEND_URL/api/hash/modloader?hash=$hash") - - return try { - connection.requestMethod = "GET" - connection.setRequestProperty("Authorization", "Bearer $token") - connection.setRequestProperty("User-Agent", LOADER_USER_AGENT) - connection.setRequestProperty("Content-Type", "application/json") - connection.connectTimeout = 10000 - connection.readTimeout = 10000 - - val responseCode = connection.responseCode - val stream = if (responseCode in 200..299) - connection.inputStream - else - connection.errorStream - - val responseText = stream?.bufferedReader()?.use { it.readText() } ?: "" - - if (responseCode != 200) { - return ModLoaderCheckResult( - status = ModLoaderStatus.CHECK_FAILED, - candidates = candidates, - message = "Modloader integrity check failed ($responseCode): $responseText" - ) - } - - val json = jsonParser.parseToJsonElement(responseText).jsonObject - val integrity = json["integrity"]?.jsonPrimitive?.contentOrNull?.lowercase() - - when (integrity) { - "valid" -> ModLoaderCheckResult( - status = ModLoaderStatus.VALID, - candidates = candidates, - message = "V5ModLoader integrity verified." - ) - "outdated" -> ModLoaderCheckResult( - status = ModLoaderStatus.OUTDATED, - candidates = candidates, - message = "V5ModLoader integrity is outdated. Downloading the latest build from backend." - ) - "invalid" -> ModLoaderCheckResult( - status = ModLoaderStatus.INVALID_TAMPERED, - candidates = candidates, - message = "V5ModLoader integrity is invalid. A malicious modified jar may be installed. Opened $RAT_DETECTED_DOCS_URL for more info." - ) - else -> ModLoaderCheckResult( - status = ModLoaderStatus.CHECK_FAILED, - candidates = candidates, - message = "Modloader integrity check returned unknown state: ${integrity ?: "missing"}" - ) - } - } catch (e: Exception) { - e.printStackTrace() - ModLoaderCheckResult( - status = ModLoaderStatus.CHECK_FAILED, - candidates = candidates, - message = "Failed to verify V5ModLoader against backend." - ) - } finally { - connection.disconnect() - } - } - - fun calculateFileSha256(file: File): String { - val digest = java.security.MessageDigest.getInstance("SHA-256") - - FileInputStream(file).use { fis -> - val buffer = ByteArray(8192) - var read: Int - - while (fis.read(buffer).also { read = it } != -1) { - digest.update(buffer, 0, read) - } - } - - return digest.digest().joinToString("") { "%02x".format(it) } - } - - private fun tryAutoUpdateModLoader(result: ModLoaderCheckResult) { - val token = getFreshJwtToken() - if (token.isNullOrBlank()) { - println("[V5] Missing auth token for automatic V5ModLoader repair.") - return - } - - val modLoaderBytes = try { - downloadAsset("/api/download/modloader", token) - } catch (e: Exception) { - println("[V5] Failed to download the latest V5ModLoader.") - e.printStackTrace() - return - } - - var updateStaged = false - try { - ModLoaderUpdater.stageUpdateAndRelaunch(getGameDir(), modLoaderBytes, result.candidates) - updateStaged = true - println("[V5] V5ModLoader update staged. Closing Minecraft now so the helper can swap jars.") - } catch (e: Exception) { - println("[V5] Failed to stage V5ModLoader update.") - e.printStackTrace() - } finally { - Arrays.fill(modLoaderBytes, 0) - } - - if (updateStaged) { - forceCloseForModLoaderUpdate() - } - } - - private fun openRatDetectedDocsPage() { - if (tryOpenUrl(RAT_DETECTED_DOCS_URL)) return - println("[V5] Failed to open browser automatically. Visit $RAT_DETECTED_DOCS_URL") - } - - private fun tryOpenUrl(url: String): Boolean { - return runCatching { Util.getPlatform().openUri(URI(url)) }.isSuccess - } - fun onInitialize() { if (isLoaded) return println("[V5] Stage: onInitialize") @@ -623,18 +425,6 @@ internal object SecureLoader { run() } - private fun forceCloseForModLoaderUpdate(): Nothing { - try { - System.out.flush() - System.err.flush() - Thread.sleep(150) - } catch (_: Exception) { - } - - Runtime.getRuntime().halt(0) - throw IllegalStateException("Failed to terminate process after staging V5ModLoader update") - } - private fun shutDownHard(): Nothing { Runtime.getRuntime().halt(0) throw IllegalStateException("V5 loader aborted due to unrecoverable error") @@ -642,14 +432,6 @@ internal object SecureLoader { fun isLoaded(): Boolean = isLoaded - private fun isV5ModLoaderJar(fileName: String): Boolean { - if (!fileName.endsWith(".jar", ignoreCase = true)) return false - if (fileName.startsWith("V5ModLoader", ignoreCase = true)) return true - // Gradle publish name (e.g. v5-1.0.0.jar), not V5-Loader.jar (case-insensitive v5- prefix). - return fileName.startsWith("v5-", ignoreCase = true) && - !fileName.startsWith("V5-Loader", ignoreCase = true) - } - private fun getGameDir(): File { return FabricLoader.getInstance().gameDir.toFile() } diff --git a/src/main/kotlin/com/v5/loader/V5PreLaunch.kt b/src/main/kotlin/com/v5/loader/V5PreLaunch.kt new file mode 100644 index 0000000..08b6088 --- /dev/null +++ b/src/main/kotlin/com/v5/loader/V5PreLaunch.kt @@ -0,0 +1,14 @@ +package com.v5.loader + +import com.v5.loader.internal.V5Loader +import net.fabricmc.loader.api.FabricLoader +import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint + +class V5PreLaunch : PreLaunchEntrypoint { + override fun onPreLaunch() { + val fabricLoader = FabricLoader.getInstance() + System.setProperty("v5.game_dir", fabricLoader.gameDir.toAbsolutePath().toString()) + System.setProperty("v5.minecraft_version", fabricLoader.rawGameVersion) + V5Loader.init() + } +} diff --git a/src/main/kotlin/com/v5/loader/internal/V5Crypto.kt b/src/main/kotlin/com/v5/loader/internal/V5Crypto.kt new file mode 100644 index 0000000..a88dbe5 --- /dev/null +++ b/src/main/kotlin/com/v5/loader/internal/V5Crypto.kt @@ -0,0 +1,39 @@ +package com.v5.loader.internal + +import java.security.MessageDigest +import java.security.SecureRandom +import java.nio.file.Path +import kotlin.io.path.inputStream + +internal object V5Crypto { + private val secureRandom = SecureRandom() + + fun calculateFileSha256(path: String): String { + repeat(10) { attempt -> + try { + val digest = MessageDigest.getInstance("SHA-256") + Path.of(path).inputStream().use { input -> + val buffer = ByteArray(8192) + while (true) { + val read = input.read(buffer) + if (read <= 0) break + digest.update(buffer, 0, read) + } + } + return digest.digest().joinToString("") { "%02x".format(it) } + } catch (_: Exception) { + if (attempt < 9) Thread.sleep(100) + } + } + return "" + } + + fun generateUrlSafeNonce(byteLen: Int = 16): String { + if (byteLen <= 0) return "" + val nonceBytes = ByteArray(byteLen) + secureRandom.nextBytes(nonceBytes) + var nonce = java.util.Base64.getEncoder().encodeToString(nonceBytes) + nonce = nonce.replace('+', '-').replace('/', '_') + return nonce.trimEnd('=') + } +} diff --git a/src/main/kotlin/com/v5/loader/internal/V5Http.kt b/src/main/kotlin/com/v5/loader/internal/V5Http.kt new file mode 100644 index 0000000..771cf4b --- /dev/null +++ b/src/main/kotlin/com/v5/loader/internal/V5Http.kt @@ -0,0 +1,122 @@ +package com.v5.loader.internal + +import java.net.URI +import java.net.http.HttpClient +import java.net.http.HttpRequest +import java.net.http.HttpResponse +import java.time.Duration + +internal object V5Http { + const val BACKEND_HOST = "backend.rdbt.top" + private const val HTTP_TIMEOUT_SECONDS = 60L + private const val USER_AGENT = "V5Loader/1.1" + + private val httpClient: HttpClient = HttpClient.newBuilder() + .connectTimeout(Duration.ofSeconds(HTTP_TIMEOUT_SECONDS)) + .followRedirects(HttpClient.Redirect.NORMAL) + .build() + + fun httpsGetBytes(host: String, path: String, jwt: String = ""): ByteArray? { + val url = "https://$host$path" + val requestBuilder = HttpRequest.newBuilder() + .uri(URI.create(url)) + .timeout(Duration.ofSeconds(HTTP_TIMEOUT_SECONDS)) + .header("User-Agent", USER_AGENT) + .GET() + + if (jwt.isNotEmpty()) { + requestBuilder.header("Authorization", "Bearer $jwt") + } + + return try { + val response = httpClient.send(requestBuilder.build(), HttpResponse.BodyHandlers.ofByteArray()) + if (response.statusCode() != 200) { + logHttpFailure("GET", url, response.statusCode(), response.body().size) + return null + } + response.body() + } catch (e: Exception) { + logTransportFailure("GET", url, e) + null + } + } + + fun httpsGet( + host: String, + path: String, + jwt: String = "", + extraHeaders: List> = emptyList(), + ): String { + val url = "https://$host$path" + val requestBuilder = HttpRequest.newBuilder() + .uri(URI.create(url)) + .timeout(Duration.ofSeconds(HTTP_TIMEOUT_SECONDS)) + .header("User-Agent", USER_AGENT) + .GET() + + if (jwt.isNotEmpty()) { + requestBuilder.header("Authorization", "Bearer $jwt") + } + for ((name, value) in extraHeaders) { + requestBuilder.header(name, value) + } + + return try { + val response = httpClient.send(requestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + if (response.statusCode() != 200) { + logHttpFailure("GET", url, response.statusCode(), response.body().length) + return "" + } + response.body() + } catch (e: Exception) { + logTransportFailure("GET", url, e) + "" + } + } + + fun httpsPost(host: String, path: String, jsonBody: String, jwt: String = ""): String { + val url = "https://$host$path" + val requestBuilder = HttpRequest.newBuilder() + .uri(URI.create(url)) + .timeout(Duration.ofSeconds(HTTP_TIMEOUT_SECONDS)) + .header("Content-Type", "application/json") + .header("User-Agent", USER_AGENT) + .POST(HttpRequest.BodyPublishers.ofString(jsonBody)) + + if (jwt.isNotEmpty()) { + requestBuilder.header("Authorization", "Bearer $jwt") + } + + return try { + val response = httpClient.send(requestBuilder.build(), HttpResponse.BodyHandlers.ofString()) + if (response.statusCode() != 200) { + logHttpFailure("POST", url, response.statusCode(), response.body().length) + return "" + } + response.body() + } catch (e: Exception) { + logTransportFailure("POST", url, e) + "" + } + } + + fun fetchLoaderHash(token: String, hash: String, minecraftVersion: String): String { + return httpsGet( + BACKEND_HOST, + "/api/hash/loader?hash=$hash&minecraft_version=$minecraftVersion", + token, + ) + } + + private fun logTransportFailure(method: String, url: String, error: Exception) { + System.err.println( + "[V5] Curl $method failed url=$url curl_error=${error.message ?: error.javaClass.simpleName}", + ) + } + + private fun logHttpFailure(method: String, url: String, httpCode: Int, responseBytes: Int) { + System.err.println( + "[V5] HTTP $method returned non-200 url=$url http_code=$httpCode response_bytes=$responseBytes", + ) + } +} diff --git a/src/main/kotlin/com/v5/loader/internal/V5Loader.kt b/src/main/kotlin/com/v5/loader/internal/V5Loader.kt new file mode 100644 index 0000000..b42d7a7 --- /dev/null +++ b/src/main/kotlin/com/v5/loader/internal/V5Loader.kt @@ -0,0 +1,285 @@ +package com.v5.loader.internal + +import com.chattriggers.ctjs.internal.launch.ModLoaderUpdater +import com.google.gson.JsonObject +import com.google.gson.JsonParser +import net.fabricmc.loader.api.FabricLoader +import java.awt.Desktop +import java.io.BufferedReader +import java.io.File +import java.io.InputStreamReader +import java.net.InetAddress +import java.net.ServerSocket +import java.net.URI +import java.nio.charset.StandardCharsets +import java.nio.file.Files +import java.nio.file.Path +import java.nio.file.attribute.PosixFilePermission +import kotlin.io.path.isRegularFile +import kotlin.io.path.readText +import kotlin.io.path.writeText + +internal object V5Loader { + private const val MOD_ID = "ctjs" + private val secretLock = Any() + private var sessionToken = "" + + fun init() { + val gameDirPath = resolveGameDirPath() + val sessionFilePath = buildSessionFilePath(gameDirPath) + val minecraftVersion = resolveMinecraftVersion() + + println("[V5] Using Minecraft version for loader: $minecraftVersion") + println("[V5] Authenticating...") + + val authSession = authenticate(sessionFilePath) + if (authSession == null || !validateAuthStatus(authSession.accessToken)) { + throw IllegalStateException("[V5] Authentication failed, expired, or account is banned.") + } + + synchronized(secretLock) { sessionToken = authSession.accessToken } + if (FabricLoader.getInstance().isDevelopmentEnvironment) { + println("[V5] Development environment detected; skipping self-update check.") + return + } + checkSelfUpdate(authSession.accessToken, minecraftVersion, File(gameDirPath)) + } + + @JvmStatic + fun consumeToken(): String { + return synchronized(secretLock) { + val current = sessionToken + sessionToken = "" + current + } + } + + private fun checkSelfUpdate(token: String, minecraftVersion: String, gameDir: File) { + val activeJar = resolveActiveJar() + val hash = V5Crypto.calculateFileSha256(activeJar.absolutePath) + if (hash.isEmpty()) throw IllegalStateException("[V5] Failed to hash active loader jar: ${activeJar.absolutePath}") + + val response = V5Http.fetchLoaderHash(token, hash, minecraftVersion) + val integrity = parseJsonObject(response)?.getStringOrNull("integrity")?.lowercase() + ?: throw IllegalStateException("[V5] Loader integrity check failed.") + + when (integrity) { + "valid" -> println("[V5] V5-Loader integrity verified.") + "outdated" -> stageSelfUpdate(token, minecraftVersion, gameDir, activeJar) + "invalid" -> throw IllegalStateException("[V5] V5-Loader integrity is invalid; refusing to run a modified jar.") + else -> throw IllegalStateException("[V5] Unknown V5-Loader integrity state: $integrity") + } + } + + private fun stageSelfUpdate(token: String, minecraftVersion: String, gameDir: File, activeJar: File): Nothing { + val bytes = V5Http.httpsGetBytes( + V5Http.BACKEND_HOST, + "/api/download/loader?minecraft_version=$minecraftVersion", + token, + ) ?: throw IllegalStateException("[V5] Failed to download updated V5-Loader.jar.") + + try { + ModLoaderUpdater.stageUpdateAndRelaunch(gameDir, bytes, listOf(activeJar)) + println("[V5] V5-Loader update staged. Closing Minecraft now so the helper can swap jars.") + } finally { + bytes.fill(0) + } + + Runtime.getRuntime().halt(0) + throw IllegalStateException("Failed to terminate process after staging V5-Loader update") + } + + private fun resolveActiveJar(): File { + val container = FabricLoader.getInstance().getModContainer(MOD_ID) + .orElseThrow { IllegalStateException("[V5] Could not resolve active $MOD_ID mod container.") } + return container.rootPaths + .map { it.toAbsolutePath().normalize().toFile() } + .firstOrNull { it.isFile && it.extension.equals("jar", ignoreCase = true) } + ?: throw IllegalStateException("[V5] Active $MOD_ID container is not a jar; self-update is disabled in development.") + } + + private fun authenticate(sessionFilePath: String): AuthSession? { + val storedRefreshToken = readRefreshTokenFromSessionFile(sessionFilePath) + if (storedRefreshToken.isNotEmpty()) { + exchangeRefreshToken(storedRefreshToken, sessionFilePath)?.let { return it } + } + return runBrowserLogin(sessionFilePath) + } + + private fun runBrowserLogin(sessionFilePath: String): AuthSession? { + val serverSocket = ServerSocket(0, 1, InetAddress.getByName("127.0.0.1")) + serverSocket.soTimeout = 240_000 + + try { + val port = serverSocket.localPort + val expectedLocalNonce = V5Crypto.generateUrlSafeNonce(16) + val authUrl = "https://${V5Http.BACKEND_HOST}/api/auth/discord/login?state=port:$port:$expectedLocalNonce" + println("[V5] Opening browser for authentication: $authUrl") + openBrowser(authUrl) + + serverSocket.accept().use { clientSocket -> + if (!clientSocket.inetAddress.isLoopbackAddress) return null + val requestLine = BufferedReader(InputStreamReader(clientSocket.getInputStream())).readLine() ?: return null + val error = extractQueryParam(requestLine, "error=") + val callbackNonce = extractQueryParam(requestLine, "nonce=") + if (callbackNonce != expectedLocalNonce) return null + if (error.isNotEmpty()) { + writeHttpResponse(clientSocket, "HTTP/1.1 403 Forbidden", "

Access Denied

$error

") + return null + } + + writeHttpResponse( + clientSocket, + "HTTP/1.1 200 OK", + "

Authenticated!

You can close this tab and return to the game.

", + ) + + val callbackRefreshToken = extractQueryParam(requestLine, "refresh_token=") + if (callbackRefreshToken.isEmpty()) return null + if (!writeRefreshTokenToSessionFile(sessionFilePath, callbackRefreshToken)) { + System.err.println("[V5] Warning: failed to persist browser refresh token.") + } + return exchangeRefreshToken(callbackRefreshToken, sessionFilePath) + } + } catch (e: Exception) { + System.err.println("[V5] Authentication callback failed: ${e.message ?: e.javaClass.simpleName}") + return null + } finally { + serverSocket.close() + } + } + + private fun exchangeRefreshToken(refreshToken: String, sessionFilePath: String): AuthSession? { + val response = V5Http.httpsPost( + V5Http.BACKEND_HOST, + "/api/auth/refresh", + """{"refresh_token":"${jsonEscape(refreshToken)}"}""", + ) + if (response.isEmpty()) return null + val json = parseJsonObject(response) ?: return null + val accessToken = json.getStringOrNull("access_token").orEmpty() + val rotatedRefresh = json.getStringOrNull("refresh_token").orEmpty() + val error = json.getStringOrNull("error").orEmpty() + if (accessToken.isEmpty() || rotatedRefresh.isEmpty()) { + if (error in REVOKED_REFRESH_ERRORS) secureDeleteFile(sessionFilePath) + return null + } + writeRefreshTokenToSessionFile(sessionFilePath, rotatedRefresh) + return AuthSession(accessToken) + } + + private fun validateAuthStatus(token: String): Boolean { + val authStatus = V5Http.httpsGet(V5Http.BACKEND_HOST, "/api/authstatus", token) + if (authStatus.isEmpty()) return false + val authJson = parseJsonObject(authStatus) ?: return false + val statusPayload = authJson.getAsJsonObjectOrNull("status") ?: authJson + return !(statusPayload.getBoolOrNull("isBanned") ?: authJson.getBoolOrNull("isBanned") ?: false) + } + + private fun resolveMinecraftVersion(): String = System.getProperty("v5.minecraft_version").orEmpty().trim() + + private fun resolveGameDirPath(): String { + System.getProperty("v5.game_dir").orEmpty().trim().ifEmpty { + System.getProperty("user.dir").orEmpty().trim() + }.ifEmpty { + val os = System.getProperty("os.name", "").lowercase() + if (os.contains("win")) System.getenv("APPDATA").orEmpty().let { if (it.isBlank()) "" else Path.of(it, ".minecraft").toString() } + else System.getenv("HOME").orEmpty().let { if (it.isBlank()) "" else Path.of(it, ".minecraft").toString() } + }.let { return it } + } + + private fun buildSessionFilePath(gameDir: String): String = + if (gameDir.isEmpty()) "" else Path.of(gameDir, ".v5", "session.json").toString() + + private fun readRefreshTokenFromSessionFile(sessionFilePath: String): String { + if (sessionFilePath.isEmpty()) return "" + val path = Path.of(sessionFilePath) + if (!path.isRegularFile()) return "" + return parseJsonObject(path.readText())?.getStringOrNull("refresh_token").orEmpty().trim() + } + + private fun writeRefreshTokenToSessionFile(sessionFilePath: String, refreshToken: String): Boolean { + if (sessionFilePath.isEmpty() || refreshToken.isEmpty()) return false + val filePath = Path.of(sessionFilePath) + runCatching { Files.createDirectories(filePath.parent) } + val content = """{"refresh_token":"${jsonEscape(refreshToken)}","updated_at":${System.currentTimeMillis() / 1000}}""" + return try { + filePath.writeText(content) + if (!System.getProperty("os.name", "").lowercase().contains("win")) { + Files.setPosixFilePermissions(filePath, setOf(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE)) + } + true + } catch (_: Exception) { + false + } + } + + private fun secureDeleteFile(path: String) { + if (path.isNotEmpty()) runCatching { Files.deleteIfExists(Path.of(path)) } + } + + private fun openBrowser(url: String) { + runCatching { + if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) { + Desktop.getDesktop().browse(URI(url)) + return + } + } + val os = System.getProperty("os.name", "").lowercase() + val command = when { + os.contains("win") -> listOf("cmd", "/c", "start", "", url) + os.contains("mac") -> listOf("open", url) + else -> listOf("xdg-open", url) + } + ProcessBuilder(command).start() + } + + private fun writeHttpResponse(clientSocket: java.net.Socket, statusLine: String, body: String) { + clientSocket.getOutputStream().write("$statusLine\r\nContent-Type: text/html\r\n\r\n$body".toByteArray(StandardCharsets.UTF_8)) + } + + private fun extractQueryParam(requestLine: String, key: String): String { + val start = requestLine.indexOf(key) + if (start < 0) return "" + val valueStart = start + key.length + val end = listOf(requestLine.indexOf('&', valueStart), requestLine.indexOf(' ', valueStart)) + .filter { it >= 0 } + .minOrNull() ?: requestLine.length + return java.net.URLDecoder.decode(requestLine.substring(valueStart, end), StandardCharsets.UTF_8) + } + + private fun jsonEscape(input: String): String = buildString(input.length + 8) { + input.forEach { ch -> + when (ch) { + '"' -> append("\\\"") + '\\' -> append("\\\\") + '\b' -> append("\\b") + '\u000C' -> append("\\f") + '\n' -> append("\\n") + '\r' -> append("\\r") + '\t' -> append("\\t") + else -> if (ch.code < 0x20) append(String.format("\\u%04x", ch.code)) else append(ch) + } + } + } + + private fun parseJsonObject(json: String): JsonObject? = runCatching { JsonParser.parseString(json).asJsonObject }.getOrNull() + + private fun JsonObject.getStringOrNull(key: String): String? = + get(key)?.takeIf { it.isJsonPrimitive && it.asJsonPrimitive.isString }?.asString + + private fun JsonObject.getBoolOrNull(key: String): Boolean? = + get(key)?.takeIf { it.isJsonPrimitive && it.asJsonPrimitive.isBoolean }?.asBoolean + + private fun JsonObject.getAsJsonObjectOrNull(key: String): JsonObject? = + get(key)?.takeIf { it.isJsonObject }?.asJsonObject + + private data class AuthSession(val accessToken: String) + + private val REVOKED_REFRESH_ERRORS = setOf( + "INVALID_REFRESH_TOKEN", + "REFRESH_TOKEN_EXPIRED", + "REFRESH_TOKEN_REUSED", + "SESSION_REVOKED", + ) +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 622ae61..353b1d8 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -16,6 +16,10 @@ "environment": "client", "entrypoints": { "preLaunch": [ + { + "value": "com.v5.loader.V5PreLaunch", + "adapter": "kotlin" + }, "com.chattriggers.ctjs.internal.launch.CTJSPreLaunch" ], "client": [ From abdf71ab40064f7940d2e1a38a5423bf62da3413 Mon Sep 17 00:00:00 2001 From: EpsilonPhoenix <129551402+EpsilonPhoenix@users.noreply.github.com> Date: Mon, 6 Jul 2026 18:47:27 -0400 Subject: [PATCH 02/15] what am i doing --- .../kotlin/com/v5/loader/internal/V5Loader.kt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/v5/loader/internal/V5Loader.kt b/src/main/kotlin/com/v5/loader/internal/V5Loader.kt index b42d7a7..cce6018 100644 --- a/src/main/kotlin/com/v5/loader/internal/V5Loader.kt +++ b/src/main/kotlin/com/v5/loader/internal/V5Loader.kt @@ -93,11 +93,25 @@ internal object V5Loader { val container = FabricLoader.getInstance().getModContainer(MOD_ID) .orElseThrow { IllegalStateException("[V5] Could not resolve active $MOD_ID mod container.") } return container.rootPaths - .map { it.toAbsolutePath().normalize().toFile() } - .firstOrNull { it.isFile && it.extension.equals("jar", ignoreCase = true) } + .mapNotNull(::resolveJarFile) + .firstOrNull() ?: throw IllegalStateException("[V5] Active $MOD_ID container is not a jar; self-update is disabled in development.") } + private fun resolveJarFile(path: Path): File? { + runCatching { path.toAbsolutePath().normalize().toFile() }.getOrNull()?.let { file -> + if (file.isFile && file.extension.equals("jar", ignoreCase = true)) return file + } + + val uri = path.toUri().toString() + if (!uri.startsWith("jar:")) return null + val bang = uri.indexOf('!') + if (bang < 0) return null + return runCatching { File(URI(uri.substring(4, bang))) } + .getOrNull() + ?.takeIf { it.isFile && it.extension.equals("jar", ignoreCase = true) } + } + private fun authenticate(sessionFilePath: String): AuthSession? { val storedRefreshToken = readRefreshTokenFromSessionFile(sessionFilePath) if (storedRefreshToken.isNotEmpty()) { From 47b1c39e00d76cccf38d591a922871f0999ddba6 Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Mon, 6 Jul 2026 23:24:49 +0100 Subject: [PATCH 03/15] Remove SHA dispatch and stop sending discord notification for native builder --- .github/workflows/discord-commit.yml | 376 +++++++++++++-------------- 1 file changed, 187 insertions(+), 189 deletions(-) diff --git a/.github/workflows/discord-commit.yml b/.github/workflows/discord-commit.yml index 0764608..084e8e3 100644 --- a/.github/workflows/discord-commit.yml +++ b/.github/workflows/discord-commit.yml @@ -1,194 +1,192 @@ name: Send Commit Message to Discord on: - push: - branches: - - '**' - workflow_dispatch: - inputs: - sha: - description: 'Commit SHA to run against (optional).' - required: false - type: string + push: + branches: + - "**" + workflow_dispatch: jobs: - notify-discord: - runs-on: blacksmith-2vcpu-ubuntu-2404 - - steps: - - name: Checkout repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: ${{ inputs.sha || github.sha }} - - - name: Prepare Data - shell: bash - run: | - set -euo pipefail - - HEAD_SHA="$(git rev-parse HEAD)" - echo "HEAD_SHA=$HEAD_SHA" >> "$GITHUB_ENV" - echo "COMMIT_URL=https://github.com/${GITHUB_REPOSITORY}/commit/${HEAD_SHA}" >> "$GITHUB_ENV" - echo "TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> "$GITHUB_ENV" - echo "BRANCH=${GITHUB_REF#refs/heads/}" >> "$GITHUB_ENV" - echo "REPO_FULL=${GITHUB_REPOSITORY}" >> "$GITHUB_ENV" - echo "REPO_NAME=${GITHUB_REPOSITORY#*/}" >> "$GITHUB_ENV" - - declare -A USERS=( - ["EpsilonPhoenix"]="<@899647076370092042>" - ["qxionr"]="<@790294721943699477>" - ["quiteboring"]="<@1441859003708866601>" - ["rdbtCVS"]="<@777346923232886784>" - ["IcyHenryT"]="<@1160548899711356958>" - ["oblongboot"]="<@768481984242253904>" - ["axlecoffee"]="<@790736254714642453>" - ) - - ACTOR="$(git log -1 --pretty=%an)" - echo "DISCORD_AUTHOR=${USERS[$ACTOR]:-$ACTOR}" >> "$GITHUB_ENV" - - BASE_SHA="$(git rev-parse "${HEAD_SHA}^" 2>/dev/null || echo "4b825dc642cb6eb9a060e54bf8d69288fbee4904")" - - STATS="$(git diff --shortstat "$BASE_SHA" "$HEAD_SHA" || echo "0 files changed")" - echo "STATS_TEXT=$STATS" >> "$GITHUB_ENV" - - EXT_LIST="$( - git diff --name-only "$BASE_SHA" "$HEAD_SHA" | awk ' - { - f=$0 - n=split(f,a,"/") - b=a[n] - if (index(b,".")==0) ext="noext" - else { ext=b; sub(/^.*\./,"",ext) } - print ext - } - ' | sort | uniq -c | sort -nr | head -n 10 \ - | awk '{print $2 " (" $1 ")"}' \ - | paste -sd ", " - - )" - [[ -z "${EXT_LIST:-}" ]] && EXT_LIST="No specific types" - EXT_LIST="${EXT_LIST:0:1024}" - echo "FILE_TYPES=$EXT_LIST" >> "$GITHUB_ENV" - - - name: Send to Discord - env: - WEBHOOK: ${{ secrets.PUSH_NOTIFIER }} - shell: bash - run: | - set -euo pipefail - - COMMIT_MSG="$(git log -1 --pretty=%B)" - export CHUNK_LIMIT=3500 - export COMMIT_MSG - - mapfile -d '' MSG_CHUNKS < <( - python3 - << 'PY' - import os - import sys - - s = os.environ.get("COMMIT_MSG", "") - limit = int(os.environ.get("CHUNK_LIMIT", "3500")) - - if not s: - sys.stdout.write("No commit message.\0") - sys.exit(0) - - start = 0 - s_len = len(s) - - while start < s_len: - end = start + limit - if end >= s_len: - sys.stdout.write(s[start:] + '\0') - break - - chunk = s[start:end] - last_newline = chunk.rfind('\n') - - if last_newline != -1: - cut_point = last_newline + 1 - else: - cut_point = limit - - sys.stdout.write(chunk[:cut_point] + '\0') - start += cut_point - PY - ) - - if [[ "${#MSG_CHUNKS[@]}" -eq 0 ]]; then - MSG_CHUNKS=("No commit message.") - fi - - TOTAL="${#MSG_CHUNKS[@]}" - - FIRST_MSG="${MSG_CHUNKS[0]}" - - PAYLOAD="$(jq -cn \ - --arg msg "$FIRST_MSG" \ - --arg url "$COMMIT_URL" \ - --arg author "$DISCORD_AUTHOR" \ - --arg branch "$BRANCH" \ - --arg time "$TIMESTAMP" \ - --arg stats "$STATS_TEXT" \ - --arg types "$FILE_TYPES" \ - --arg repo "$REPO_NAME" \ - --arg repofull "$REPO_FULL" \ - --arg idx "1" \ - --arg total "$TOTAL" \ - '{ - username: ($repo + " Commits"), - avatar_url: "https://p7.hiclipart.com/preview/227/12/28/catgirl-anime-kawaii-manga-cat.jpg", - embeds: [{ - title: ("[" + $repo + "] New Commit" + (if ($total|tonumber) > 1 then " (" + $idx + "/" + $total + ")" else "" end)), - description: ("📝 **Summary**\n" + $msg + "\n\n[View Commit](" + $url + ")"), - color: 3447003, - timestamp: $time, - fields: [ - {name: "Repository", value: $repofull, inline: true}, - {name: "Author", value: $author, inline: true}, - {name: "Branch", value: $branch, inline: true}, - {name: "📊 Changes", value: $stats, inline: false}, - {name: "📂 File Types", value: $types, inline: false} - ] - }] - }' - )" - - curl -sS --fail-with-body \ - -H "Content-Type: application/json" \ - -d "$PAYLOAD" \ - "$WEBHOOK" - - for ((i = 1; i < TOTAL; i++)); do - PART="${MSG_CHUNKS[$i]}" - IDX="$((i+1))" - - CONT_PAYLOAD="$(jq -cn \ - --arg msg "$PART" \ - --arg url "$COMMIT_URL" \ - --arg time "$TIMESTAMP" \ - --arg repo "$REPO_NAME" \ - --arg repofull "$REPO_FULL" \ - --arg idx "$IDX" \ - --arg total "$TOTAL" \ - '{ - username: ($repo + " Commits"), - avatar_url: "https://p7.hiclipart.com/preview/227/12/28/catgirl-anime-kawaii-manga-cat.jpg", - embeds: [{ - title: ("[" + $repo + "] New Commit (continued " + $idx + "/" + $total + ")"), - description: ($msg + "\n\n[View Commit](" + $url + ")"), - color: 3447003, - timestamp: $time, - fields: [ - {name: "Repository", value: $repofull, inline: true} - ] - }] - }' - )" - - curl -sS --fail-with-body \ - -H "Content-Type: application/json" \ - -d "$CONT_PAYLOAD" \ - "$WEBHOOK" - done + notify-discord: + runs-on: blacksmith-2vcpu-ubuntu-2404 + if: | + github.event_name == 'workflow_dispatch' || + (github.event_name == 'push' && !contains(github.event.head_commit.message, '[skip-native-auto]')) + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.sha }} + + - name: Prepare Data + shell: bash + run: | + set -euo pipefail + + HEAD_SHA="$(git rev-parse HEAD)" + echo "HEAD_SHA=$HEAD_SHA" >> "$GITHUB_ENV" + echo "COMMIT_URL=https://github.com/${GITHUB_REPOSITORY}/commit/${HEAD_SHA}" >> "$GITHUB_ENV" + echo "TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> "$GITHUB_ENV" + echo "BRANCH=${GITHUB_REF#refs/heads/}" >> "$GITHUB_ENV" + echo "REPO_FULL=${GITHUB_REPOSITORY}" >> "$GITHUB_ENV" + echo "REPO_NAME=${GITHUB_REPOSITORY#*/}" >> "$GITHUB_ENV" + + declare -A USERS=( + ["EpsilonPhoenix"]="<@899647076370092042>" + ["qxionr"]="<@790294721943699477>" + ["quiteboring"]="<@1441859003708866601>" + ["rdbtCVS"]="<@777346923232886784>" + ["IcyHenryT"]="<@1160548899711356958>" + ["oblongboot"]="<@768481984242253904>" + ["axlecoffee"]="<@790736254714642453>" + ) + + ACTOR="$(git log -1 --pretty=%an)" + echo "DISCORD_AUTHOR=${USERS[$ACTOR]:-$ACTOR}" >> "$GITHUB_ENV" + + BASE_SHA="$(git rev-parse "${HEAD_SHA}^" 2>/dev/null || echo "4b825dc642cb6eb9a060e54bf8d69288fbee4904")" + + STATS="$(git diff --shortstat "$BASE_SHA" "$HEAD_SHA" || echo "0 files changed")" + echo "STATS_TEXT=$STATS" >> "$GITHUB_ENV" + + EXT_LIST="$( + git diff --name-only "$BASE_SHA" "$HEAD_SHA" | awk ' + { + f=$0 + n=split(f,a,"/") + b=a[n] + if (index(b,".")==0) ext="noext" + else { ext=b; sub(/^.*\./,"",ext) } + print ext + } + ' | sort | uniq -c | sort -nr | head -n 10 \ + | awk '{print $2 " (" $1 ")"}' \ + | paste -sd ", " - + )" + [[ -z "${EXT_LIST:-}" ]] && EXT_LIST="No specific types" + EXT_LIST="${EXT_LIST:0:1024}" + echo "FILE_TYPES=$EXT_LIST" >> "$GITHUB_ENV" + + - name: Send to Discord + env: + WEBHOOK: ${{ secrets.PUSH_NOTIFIER }} + shell: bash + run: | + set -euo pipefail + + COMMIT_MSG="$(git log -1 --pretty=%B)" + export CHUNK_LIMIT=3500 + export COMMIT_MSG + + mapfile -d '' MSG_CHUNKS < <( + python3 - << 'PY' + import os + import sys + + s = os.environ.get("COMMIT_MSG", "") + limit = int(os.environ.get("CHUNK_LIMIT", "3500")) + + if not s: + sys.stdout.write("No commit message.\0") + sys.exit(0) + + start = 0 + s_len = len(s) + + while start < s_len: + end = start + limit + if end >= s_len: + sys.stdout.write(s[start:] + '\0') + break + + chunk = s[start:end] + last_newline = chunk.rfind('\n') + + if last_newline != -1: + cut_point = last_newline + 1 + else: + cut_point = limit + + sys.stdout.write(chunk[:cut_point] + '\0') + start += cut_point + PY + ) + + if [[ "${#MSG_CHUNKS[@]}" -eq 0 ]]; then + MSG_CHUNKS=("No commit message.") + fi + + TOTAL="${#MSG_CHUNKS[@]}" + + FIRST_MSG="${MSG_CHUNKS[0]}" + + PAYLOAD="$(jq -cn \ + --arg msg "$FIRST_MSG" \ + --arg url "$COMMIT_URL" \ + --arg author "$DISCORD_AUTHOR" \ + --arg branch "$BRANCH" \ + --arg time "$TIMESTAMP" \ + --arg stats "$STATS_TEXT" \ + --arg types "$FILE_TYPES" \ + --arg repo "$REPO_NAME" \ + --arg repofull "$REPO_FULL" \ + --arg idx "1" \ + --arg total "$TOTAL" \ + '{ + username: ($repo + " Commits"), + avatar_url: "https://p7.hiclipart.com/preview/227/12/28/catgirl-anime-kawaii-manga-cat.jpg", + embeds: [{ + title: ("[" + $repo + "] New Commit" + (if ($total|tonumber) > 1 then " (" + $idx + "/" + $total + ")" else "" end)), + description: ("📝 **Summary**\n" + $msg + "\n\n[View Commit](" + $url + ")"), + color: 3447003, + timestamp: $time, + fields: [ + {name: "Repository", value: $repofull, inline: true}, + {name: "Author", value: $author, inline: true}, + {name: "Branch", value: $branch, inline: true}, + {name: "📊 Changes", value: $stats, inline: false}, + {name: "📂 File Types", value: $types, inline: false} + ] + }] + }' + )" + + curl -sS --fail-with-body \ + -H "Content-Type: application/json" \ + -d "$PAYLOAD" \ + "$WEBHOOK" + + for ((i = 1; i < TOTAL; i++)); do + PART="${MSG_CHUNKS[$i]}" + IDX="$((i+1))" + + CONT_PAYLOAD="$(jq -cn \ + --arg msg "$PART" \ + --arg url "$COMMIT_URL" \ + --arg time "$TIMESTAMP" \ + --arg repo "$REPO_NAME" \ + --arg repofull "$REPO_FULL" \ + --arg idx "$IDX" \ + --arg total "$TOTAL" \ + '{ + username: ($repo + " Commits"), + avatar_url: "https://p7.hiclipart.com/preview/227/12/28/catgirl-anime-kawaii-manga-cat.jpg", + embeds: [{ + title: ("[" + $repo + "] New Commit (continued " + $idx + "/" + $total + ")"), + description: ($msg + "\n\n[View Commit](" + $url + ")"), + color: 3447003, + timestamp: $time, + fields: [ + {name: "Repository", value: $repofull, inline: true} + ] + }] + }' + )" + + curl -sS --fail-with-body \ + -H "Content-Type: application/json" \ + -d "$CONT_PAYLOAD" \ + "$WEBHOOK" + done From 2d71a751ad5730a9a18551d1267b7f5576a983fe Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Mon, 6 Jul 2026 22:28:22 +0000 Subject: [PATCH 04/15] Remove SHA dispatch and stop sending discord notification for native builder [skip-native-auto] --- .../v5/natives/macos/arm64/V5PathJNI.dylib | Bin 188288 -> 188528 bytes .../v5/natives/macos/x86_64/V5PathJNI.dylib | Bin 183656 -> 179920 bytes .../v5/natives/windows/x86_64/V5PathJNI.dll | Bin 180736 -> 180736 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/v5/natives/macos/arm64/V5PathJNI.dylib b/src/main/resources/assets/v5/natives/macos/arm64/V5PathJNI.dylib index 1d560babc77b244de779f565d6534b22953becd4..44ae998c77b32b5fd1f107fad33c994889458c57 100755 GIT binary patch literal 188528 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

!qt$pB3BlCeExY>nb=9!?4%*6PU$d1t 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

&W3>9fu#6qi>Zak^2E-k%uZvdq3}0Ozt=^|U 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�=Qw{c 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 literal 188288 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 diff --git a/src/main/resources/assets/v5/natives/macos/x86_64/V5PathJNI.dylib b/src/main/resources/assets/v5/natives/macos/x86_64/V5PathJNI.dylib index e6503be36acaa17d71fe88166ae9c952b28aacf2..12e361fabb0fcb894cb2594519f944541fe1277d 100644 GIT binary patch literal 179920 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 diff --git a/src/main/resources/assets/v5/natives/windows/x86_64/V5PathJNI.dll b/src/main/resources/assets/v5/natives/windows/x86_64/V5PathJNI.dll index 1ca9a6610689b9d8b73fdaf1ac3496c26be356cd..89747a4c424d4111743a266f6b735b7c703b930f 100644 GIT binary patch delta 36 pcmZo@;cjT*-XOrp{6X8NS(ve1n2~Y2Fe8(oJ4j%=x(CzEN&vwH3Wfjx delta 36 pcmZo@;cjT*-XOrptozrhS(ve1n2~Y2Fe8(oJ4j%=x(CzEN&vq=3V;9r From 19e397e39855898e0ce984ea75d01e68e64ccf6a Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Mon, 6 Jul 2026 23:41:42 +0100 Subject: [PATCH 05/15] remove validator / api dump --- api/ctjs.api | 3767 ------------------------------------- build.gradle.kts | 12 - gradle/libs.versions.toml | 2 - 3 files changed, 3781 deletions(-) delete mode 100644 api/ctjs.api diff --git a/api/ctjs.api b/api/ctjs.api deleted file mode 100644 index 6c3cc3c..0000000 --- a/api/ctjs.api +++ /dev/null @@ -1,3767 +0,0 @@ -public final class com/chattriggers/ctjs/CTJS : net/fabricmc/api/ClientModInitializer { - public static final field Companion Lcom/chattriggers/ctjs/CTJS$Companion; - public static final field MODULES_FOLDER Ljava/lang/String; - public static final field MOD_ID Ljava/lang/String; - public static final field MOD_VERSION Ljava/lang/String; - public static final field WEBSITE_ROOT Ljava/lang/String; - public fun ()V - public static final fun isLoaded ()Z - public static final fun load (Z)V - public fun onInitializeClient ()V - public static final fun unload (Z)V -} - -public final class com/chattriggers/ctjs/CTJS$Companion { - public final fun getAssetsDir ()Ljava/io/File; - public final fun getConfigLocation ()Ljava/io/File; - public final fun getImages$ctjs ()Ljava/util/List; - public final fun getJson$ctjs ()Lkotlinx/serialization/json/Json; - public final fun getSounds$ctjs ()Ljava/util/List; - public final fun isDevelopment$ctjs ()Z - public final fun isLoaded ()Z - public final fun load (Z)V - public static synthetic fun load$default (Lcom/chattriggers/ctjs/CTJS$Companion;ZILjava/lang/Object;)V - public final fun makeWebRequest$ctjs (Ljava/lang/String;)Ljava/net/URLConnection; - public final fun makeWebRequest$ctjs (Ljava/lang/String;Ljava/lang/String;)Ljava/net/URLConnection; - public static synthetic fun makeWebRequest$ctjs$default (Lcom/chattriggers/ctjs/CTJS$Companion;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/net/URLConnection; - public final fun unload (Z)V - public static synthetic fun unload$default (Lcom/chattriggers/ctjs/CTJS$Companion;ZILjava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/TypealiasesKt { -} - -public abstract interface class com/chattriggers/ctjs/api/CTWrapper { - public abstract fun getMcValue ()Ljava/lang/Object; - public abstract fun toMC ()Ljava/lang/Object; -} - -public final class com/chattriggers/ctjs/api/CTWrapper$DefaultImpls { - public static fun toMC (Lcom/chattriggers/ctjs/api/CTWrapper;)Ljava/lang/Object; -} - -public final class com/chattriggers/ctjs/api/Config : gg/essential/vigilance/Vigilant { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/Config; - public static final fun getAutoUpdateModules ()Z - public static final fun getClearConsoleOnLoad ()Z - public static final fun getConsoleBackgroundColor ()Ljava/awt/Color; - public static final fun getConsoleErrorColor ()Ljava/awt/Color; - public static final fun getConsoleFiraCodeFont ()Z - public static final fun getConsoleFontSize ()I - public static final fun getConsoleTextColor ()Ljava/awt/Color; - public static final fun getConsoleTheme ()I - public static final fun getConsoleWarningColor ()Ljava/awt/Color; - public static final fun getCustomTheme ()Z - public static final fun getModuleChangelog ()Z - public static final fun getModuleImportHelp ()Z - public static final fun getOpenConsoleOnError ()Z - public static final fun getSendStatistics ()Z - public static final fun getShowUpdatesInChat ()Z - public static final fun markWelcomeShown ()V - public static final fun setAutoUpdateModules (Z)V - public static final fun setClearConsoleOnLoad (Z)V - public static final fun setConsoleBackgroundColor (Ljava/awt/Color;)V - public static final fun setConsoleErrorColor (Ljava/awt/Color;)V - public static final fun setConsoleFiraCodeFont (Z)V - public static final fun setConsoleFontSize (I)V - public static final fun setConsoleTextColor (Ljava/awt/Color;)V - public static final fun setConsoleTheme (I)V - public static final fun setConsoleWarningColor (Ljava/awt/Color;)V - public static final fun setCustomTheme (Z)V - public static final fun setModuleChangelog (Z)V - public static final fun setModuleImportHelp (Z)V - public static final fun setOpenConsoleOnError (Z)V - public static final fun setSendStatistics (Z)V - public static final fun setShowUpdatesInChat (Z)V - public static final fun wasWelcomeShown ()Z -} - -public final class com/chattriggers/ctjs/api/Config$ConsoleSettings { - public static final field Companion Lcom/chattriggers/ctjs/api/Config$ConsoleSettings$Companion; - public fun (ZZZIZILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V - public final fun component1 ()Z - public final fun component10 ()Ljava/awt/Color; - public final fun component2 ()Z - public final fun component3 ()Z - public final fun component4 ()I - public final fun component5 ()Z - public final fun component6 ()I - public final fun component7 ()Ljava/awt/Color; - public final fun component8 ()Ljava/awt/Color; - public final fun component9 ()Ljava/awt/Color; - public final fun copy (ZZZIZILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)Lcom/chattriggers/ctjs/api/Config$ConsoleSettings; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/Config$ConsoleSettings;ZZZIZILjava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/Config$ConsoleSettings; - public fun equals (Ljava/lang/Object;)Z - public final fun getClearConsoleOnLoad ()Z - public final fun getConsoleBackgroundColor ()Ljava/awt/Color; - public final fun getConsoleErrorColor ()Ljava/awt/Color; - public final fun getConsoleFiraCodeFont ()Z - public final fun getConsoleFontSize ()I - public final fun getConsoleTextColor ()Ljava/awt/Color; - public final fun getConsoleTheme ()I - public final fun getConsoleWarningColor ()Ljava/awt/Color; - public final fun getCustomTheme ()Z - public final fun getOpenConsoleOnError ()Z - public fun hashCode ()I - public final fun setClearConsoleOnLoad (Z)V - public final fun setConsoleBackgroundColor (Ljava/awt/Color;)V - public final fun setConsoleErrorColor (Ljava/awt/Color;)V - public final fun setConsoleFiraCodeFont (Z)V - public final fun setConsoleFontSize (I)V - public final fun setConsoleTextColor (Ljava/awt/Color;)V - public final fun setConsoleTheme (I)V - public final fun setConsoleWarningColor (Ljava/awt/Color;)V - public final fun setCustomTheme (Z)V - public final fun setOpenConsoleOnError (Z)V - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/Config$ConsoleSettings$Companion { - public final fun make ()Lcom/chattriggers/ctjs/api/Config$ConsoleSettings; -} - -public final class com/chattriggers/ctjs/api/Mappings { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/Mappings; - public final fun getMappedClass$ctjs (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/Mappings$MappedClass; - public final fun getMappedClassName$ctjs (Ljava/lang/String;)Ljava/lang/String; - public final fun getMappedPackages$ctjs ()Ljava/util/Set; - public final fun getUnmappedClass$ctjs (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/Mappings$MappedClass; - public final fun initialize$ctjs ()V - public static final fun mapClassName (Ljava/lang/String;)Ljava/lang/String; - public static final fun unmapClass (Ljava/lang/Class;)Ljava/lang/String; - public static final fun unmapClassName (Ljava/lang/String;)Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/Mappings$MappedClass { - public fun (Lcom/chattriggers/ctjs/api/Mappings$Mapping;Ljava/util/Map;Ljava/util/Map;)V - public final fun findMethods (Ljava/lang/String;Lorg/spongepowered/asm/mixin/transformer/ClassInfo;)Ljava/util/List; - public final fun getFields ()Ljava/util/Map; - public final fun getMethods ()Ljava/util/Map; - public final fun getName ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; -} - -public final class com/chattriggers/ctjs/api/Mappings$MappedField { - public fun (Lcom/chattriggers/ctjs/api/Mappings$Mapping;Lcom/chattriggers/ctjs/api/Mappings$Mapping;)V - public final fun component1 ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public final fun component2 ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public final fun copy (Lcom/chattriggers/ctjs/api/Mappings$Mapping;Lcom/chattriggers/ctjs/api/Mappings$Mapping;)Lcom/chattriggers/ctjs/api/Mappings$MappedField; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/Mappings$MappedField;Lcom/chattriggers/ctjs/api/Mappings$Mapping;Lcom/chattriggers/ctjs/api/Mappings$Mapping;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/Mappings$MappedField; - public fun equals (Ljava/lang/Object;)Z - public final fun getName ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public final fun getType ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/Mappings$MappedMethod { - public fun (Lcom/chattriggers/ctjs/api/Mappings$Mapping;Ljava/util/List;Lcom/chattriggers/ctjs/api/Mappings$Mapping;)V - public final fun getName ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public final fun getParameters ()Ljava/util/List; - public final fun getReturnType ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public final fun toDescriptor ()Ljava/lang/String; - public final fun toFullDescriptor ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/Mappings$MappedParameter { - public fun (Lcom/chattriggers/ctjs/api/Mappings$Mapping;Lcom/chattriggers/ctjs/api/Mappings$Mapping;I)V - public final fun getLvtIndex ()I - public final fun getName ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public final fun getType ()Lcom/chattriggers/ctjs/api/Mappings$Mapping; -} - -public final class com/chattriggers/ctjs/api/Mappings$Mapping { - public static final field Companion Lcom/chattriggers/ctjs/api/Mappings$Mapping$Companion; - public fun (Ljava/lang/String;Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/Mappings$Mapping;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/Mappings$Mapping; - public fun equals (Ljava/lang/Object;)Z - public final fun getMapped ()Ljava/lang/String; - public final fun getOriginal ()Ljava/lang/String; - public final fun getValue ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/Mappings$Mapping$Companion { - public final fun fromMapped (Lnet/fabricmc/mappingio/tree/MappingTree$ElementMapping;)Lcom/chattriggers/ctjs/api/Mappings$Mapping; -} - -public final class com/chattriggers/ctjs/api/V5Auth { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/V5Auth; - public static final fun getFreshJwtToken ()Ljava/lang/String; - public static final fun getJwtToken ()Ljava/lang/String; - public static final fun setJwtToken (Ljava/lang/String;)V - public static final fun shutDownHard ()Ljava/lang/Void; -} - -public final class com/chattriggers/ctjs/api/client/CPS : com/chattriggers/ctjs/internal/utils/Initializer { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/CPS; - public static final fun getLeftClicks ()I - public static final fun getLeftClicksAverage ()I - public static final fun getLeftClicksMax ()I - public static final fun getMiddleClicks ()I - public static final fun getMiddleClicksAverage ()I - public static final fun getMiddleClicksMax ()I - public static final fun getRightClicks ()I - public static final fun getRightClicksAverage ()I - public static final fun getRightClicksMax ()I - public fun init ()V -} - -public final class com/chattriggers/ctjs/api/client/Client { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/Client; - public static final field camera Lcom/chattriggers/ctjs/api/client/Client$CameraWrapper; - public static final field currentGui Lcom/chattriggers/ctjs/api/client/Client$CurrentGuiWrapper; - public static final field settings Lcom/chattriggers/ctjs/api/client/Settings; - public static final fun connect (Ljava/lang/String;)V - public static final fun connect (Ljava/lang/String;I)V - public static synthetic fun connect$default (Ljava/lang/String;IILjava/lang/Object;)V - public static final fun copy ()V - public static final fun copy (Ljava/lang/String;)V - public static synthetic fun copy$default (Ljava/lang/String;ILjava/lang/Object;)V - public static final fun disconnect ()V - public static final fun getChatGui ()Lnet/minecraft/client/gui/hud/ChatHud; - public static final fun getConnection ()Lnet/minecraft/client/network/ClientPlayNetworkHandler; - public static final fun getCurrentChatMessage ()Ljava/lang/String; - public static final fun getFPS ()I - public static final fun getFreeMemory ()J - public static final fun getKeyBindFromDescription (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/KeyBind; - public static final fun getKeyBindFromKey (I)Lcom/chattriggers/ctjs/api/client/KeyBind; - public static final fun getKeyBindFromKey (ILjava/lang/String;)Lcom/chattriggers/ctjs/api/client/KeyBind; - public static final fun getKeyBindFromKey (ILjava/lang/String;Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/KeyBind; - public static synthetic fun getKeyBindFromKey$default (ILjava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/client/KeyBind; - public static final fun getMaxMemory ()J - public static final fun getMemoryUsage ()I - public static final fun getMinecraft ()Lnet/minecraft/client/MinecraftClient; - public static final fun getMouseX ()D - public static final fun getMouseY ()D - public final fun getReferenceSystemTime$ctjs ()J - public static final fun getSystemTime ()J - public static final fun getTabGui ()Lnet/minecraft/client/gui/hud/PlayerListHud; - public static final fun getTotalMemory ()J - public static final fun getVersion ()Ljava/lang/String; - public static final fun isAltDown ()Z - public static final fun isControlDown ()Z - public static final fun isInChat ()Z - public static final fun isInGui ()Z - public static final fun isInTab ()Z - public static final fun isShiftDown ()Z - public static final fun isTabbedIn ()Z - public static final fun paste ()Ljava/lang/String; - public static final fun scheduleTask (ILkotlin/jvm/functions/Function0;)V - public static final fun scheduleTask (Lkotlin/jvm/functions/Function0;)V - public static synthetic fun scheduleTask$default (ILkotlin/jvm/functions/Function0;ILjava/lang/Object;)V - public static final fun sendPacket (Lnet/minecraft/network/packet/Packet;)V - public static final fun sendSequencedPacket (Lkotlin/jvm/functions/Function1;)V - public static final fun setCurrentChatMessage (Ljava/lang/String;)V - public final fun setReferenceSystemTime$ctjs (J)V - public static final fun showTitle (Ljava/lang/String;Ljava/lang/String;III)V -} - -public final class com/chattriggers/ctjs/api/client/Client$CameraWrapper { - public fun ()V - public final fun getX ()D - public final fun getY ()D - public final fun getZ ()D -} - -public final class com/chattriggers/ctjs/api/client/Client$CurrentGuiWrapper { - public fun ()V - public final fun close ()V - public final fun get ()Lnet/minecraft/client/gui/screen/Screen; - public final fun getClassName ()Ljava/lang/String; - public final fun getSlotUnderMouse ()Lcom/chattriggers/ctjs/api/inventory/Slot; - public final fun set (Lnet/minecraft/client/gui/screen/Screen;)V -} - -public final class com/chattriggers/ctjs/api/client/DiscordRPC { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/DiscordRPC; - public static final fun resetTimestamp ()V - public static final fun revertToIdle ()V - public static final fun stayOn ()V - public static final fun turnOff ()V - public static final fun updatePresence (Ljava/lang/String;Ljava/lang/String;)V -} - -public final class com/chattriggers/ctjs/api/client/FileLib { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/FileLib; - public static final fun append (Ljava/lang/String;Ljava/lang/String;)V - public static final fun append (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public static final fun decodeBase64 (Ljava/lang/String;)Ljava/lang/String; - public static final fun delete (Ljava/lang/String;)Z - public static final fun delete (Ljava/lang/String;Ljava/lang/String;)Z - public static final fun deleteDirectory (Ljava/io/File;)Z - public static final fun deleteDirectory (Ljava/lang/String;)Z - public static final fun encodeBase64 (Ljava/lang/String;)Ljava/lang/String; - public static final fun exists (Ljava/lang/String;)Z - public static final fun exists (Ljava/lang/String;Ljava/lang/String;)Z - public static final fun getUrlContent (Ljava/lang/String;)Ljava/lang/String; - public static final fun getUrlContent (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; - public static synthetic fun getUrlContent$default (Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String; - public static final fun isDirectory (Ljava/lang/String;)Z - public static final fun isDirectory (Ljava/lang/String;Ljava/lang/String;)Z - public static final fun open (Ljava/io/File;)V - public static final fun open (Ljava/lang/String;)V - public static final fun read (Ljava/io/File;)Ljava/lang/String; - public static final fun read (Ljava/lang/String;)Ljava/lang/String; - public static final fun read (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; - public static final fun unzip (Ljava/lang/String;Ljava/lang/String;)V - public static final fun write (Ljava/lang/String;Ljava/lang/String;)V - public static final fun write (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public static final fun write (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V - public static final fun write (Ljava/lang/String;Ljava/lang/String;Z)V - public static synthetic fun write$default (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)V - public static synthetic fun write$default (Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/client/KeyBind { - public static final field Companion Lcom/chattriggers/ctjs/api/client/KeyBind$Companion; - public fun (Ljava/lang/String;I)V - public fun (Ljava/lang/String;ILjava/lang/String;)V - public synthetic fun (Ljava/lang/String;ILjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public fun (Lnet/minecraft/client/option/KeyBinding;)V - public final fun getCategory ()Ljava/lang/String; - public final fun getDescription ()Ljava/lang/String; - public final fun getKeyCode ()I - public final fun isKeyDown ()Z - public final fun isPressed ()Z - public final fun onTick$ctjs ()V - public final fun registerKeyDown (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/KeyBind; - public final fun registerKeyPress (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/KeyBind; - public final fun registerKeyRelease (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/KeyBind; - public final fun setState (Z)V - public fun toString ()Ljava/lang/String; - public final fun unregisterKeyDown ()Lcom/chattriggers/ctjs/api/client/KeyBind; - public final fun unregisterKeyPress ()Lcom/chattriggers/ctjs/api/client/KeyBind; - public final fun unregisterKeyRelease ()Lcom/chattriggers/ctjs/api/client/KeyBind; -} - -public final class com/chattriggers/ctjs/api/client/KeyBind$Companion : com/chattriggers/ctjs/internal/utils/Initializer { - public final fun clearKeyBinds$ctjs ()V - public final fun getCategoryName$ctjs (Lnet/minecraft/client/option/KeyBinding$Category;)Ljava/lang/String; - public final fun getKeyBinds$ctjs ()Ljava/util/concurrent/CopyOnWriteArrayList; - public fun init ()V -} - -public final class com/chattriggers/ctjs/api/client/MathLib { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/MathLib; - public static final fun clamp (III)I - public static final fun clampFloat (FFF)F - public static final fun map (FFFFF)F -} - -public final class com/chattriggers/ctjs/api/client/Player { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/Player; - public static final field armor Lcom/chattriggers/ctjs/api/client/Player$ArmorWrapper; - public static final fun asPlayerMP ()Lcom/chattriggers/ctjs/api/entity/PlayerMP; - public static final fun draw (Lorg/mozilla/javascript/NativeObject;)Lcom/chattriggers/ctjs/api/client/Player; - public static final fun facing ()Ljava/lang/String; - public static final fun getActivePotionEffects ()Ljava/util/List; - public static final fun getAirLevel ()I - public static final fun getArmorPoints ()I - public static final fun getBiome ()Ljava/lang/String; - public static final fun getContainer ()Lcom/chattriggers/ctjs/api/inventory/Inventory; - public static final fun getDisplayName ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public static final fun getHP ()F - public static final fun getHeldItem ()Lcom/chattriggers/ctjs/api/inventory/Item; - public static final fun getHeldItem (Lnet/minecraft/util/Hand;)Lcom/chattriggers/ctjs/api/inventory/Item; - public static synthetic fun getHeldItem$default (Lnet/minecraft/util/Hand;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/inventory/Item; - public static final fun getHeldItemIndex ()I - public static final fun getHunger ()I - public static final fun getInventory ()Lcom/chattriggers/ctjs/api/inventory/Inventory; - public static final fun getLastX ()D - public static final fun getLastY ()D - public static final fun getLastZ ()D - public static final fun getLightLevel ()I - public static final fun getMotionX ()D - public static final fun getMotionY ()D - public static final fun getMotionZ ()D - public static final fun getName ()Ljava/lang/String; - public static final fun getPitch ()D - public static final fun getPlayer ()Lnet/minecraft/client/network/ClientPlayerEntity; - public static final fun getPos ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static final fun getRenderX ()D - public static final fun getRenderY ()D - public static final fun getRenderZ ()D - public static final fun getRotation ()Lnet/minecraft/util/math/Vec2f; - public static final fun getSaturation ()F - public static final fun getTeam ()Lcom/chattriggers/ctjs/api/entity/Team; - public static final fun getUUID ()Ljava/util/UUID; - public static final fun getX ()D - public static final fun getXPLevel ()I - public static final fun getXPProgress ()F - public static final fun getY ()D - public static final fun getYaw ()D - public static final fun getZ ()D - public static final fun isFlying ()Z - public static final fun isMoving ()Z - public static final fun isSleeping ()Z - public static final fun isSneaking ()Z - public static final fun isSprinting ()Z - public static final fun lookingAt ()Ljava/lang/Object; - public static final fun setHeldItemIndex (I)V - public static final fun setNametagName (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun setTabDisplayName (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun toMC ()Lnet/minecraft/client/network/ClientPlayerEntity; -} - -public final class com/chattriggers/ctjs/api/client/Player$ArmorWrapper { - public fun ()V - public final fun getBoots ()Lcom/chattriggers/ctjs/api/inventory/Item; - public final fun getChestplate ()Lcom/chattriggers/ctjs/api/inventory/Item; - public final fun getHelmet ()Lcom/chattriggers/ctjs/api/inventory/Item; - public final fun getLeggings ()Lcom/chattriggers/ctjs/api/inventory/Item; -} - -public final class com/chattriggers/ctjs/api/client/Proxy { - public fun (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()I - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Z - public final fun copy (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lcom/chattriggers/ctjs/api/client/Proxy; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/client/Proxy;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Proxy; - public fun equals (Ljava/lang/Object;)Z - public final fun getIp ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public final fun getPassword ()Ljava/lang/String; - public final fun getPort ()I - public final fun getUsername ()Ljava/lang/String; - public fun hashCode ()I - public final fun isEnabled ()Z - public final fun setEnabled (Z)V - public final fun setIp (Ljava/lang/String;)V - public final fun setName (Ljava/lang/String;)V - public final fun setPassword (Ljava/lang/String;)V - public final fun setPort (I)V - public final fun setUsername (Ljava/lang/String;)V - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/client/ProxyEditScreen : net/minecraft/client/gui/screen/Screen { - public fun (Lcom/chattriggers/ctjs/api/client/ProxyManagerScreen;Lcom/chattriggers/ctjs/api/client/Proxy;)V - public fun close ()V - public fun mouseClicked (Lnet/minecraft/client/gui/Click;Z)Z - public fun render (Lnet/minecraft/client/gui/DrawContext;IIF)V - public fun renderBackground (Lnet/minecraft/client/gui/DrawContext;IIF)V -} - -public final class com/chattriggers/ctjs/api/client/ProxyInfo { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/ProxyInfo; - public static final fun addProxy (Lcom/chattriggers/ctjs/api/client/Proxy;)V - public static final fun getEnabledProxies ()Ljava/util/List; - public static final fun getProxies ()Ljava/util/List; - public static final fun removeProxy (Lcom/chattriggers/ctjs/api/client/Proxy;)V - public static final fun setProxyEnabled (Lcom/chattriggers/ctjs/api/client/Proxy;Z)V - public static final fun updateProxy (Lcom/chattriggers/ctjs/api/client/Proxy;Lcom/chattriggers/ctjs/api/client/Proxy;)V -} - -public final class com/chattriggers/ctjs/api/client/ProxyManagerScreen : net/minecraft/client/gui/screen/Screen { - public fun (Lnet/minecraft/client/gui/screen/Screen;)V - public fun close ()V - public fun mouseClicked (Lnet/minecraft/client/gui/Click;Z)Z - public fun mouseScrolled (DDDD)Z - public final fun refreshList ()V - public fun render (Lnet/minecraft/client/gui/DrawContext;IIF)V - public fun renderBackground (Lnet/minecraft/client/gui/DrawContext;IIF)V -} - -public final class com/chattriggers/ctjs/api/client/ScreenHelper { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/ScreenHelper; - public static final field smallerFont Lcom/chattriggers/ctjs/api/render/Font; - public static final field titleFont Lcom/chattriggers/ctjs/api/render/Font; - public static final fun argb (IIII)I - public static final fun drawMenuButton (Ljava/lang/String;FFFFZLjava/lang/Integer;)V - public static synthetic fun drawMenuButton$default (Ljava/lang/String;FFFFZLjava/lang/Integer;ILjava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/client/ScreenHelper$MenuButton { - public fun (Ljava/lang/String;IIIILkotlin/jvm/functions/Function0;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()I - public final fun component3 ()I - public final fun component4 ()I - public final fun component5 ()I - public final fun component6 ()Lkotlin/jvm/functions/Function0; - public final fun copy (Ljava/lang/String;IIIILkotlin/jvm/functions/Function0;)Lcom/chattriggers/ctjs/api/client/ScreenHelper$MenuButton; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/client/ScreenHelper$MenuButton;Ljava/lang/String;IIIILkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/client/ScreenHelper$MenuButton; - public fun equals (Ljava/lang/Object;)Z - public final fun getHeight ()I - public final fun getLabel ()Ljava/lang/String; - public final fun getOnClick ()Lkotlin/jvm/functions/Function0; - public final fun getWidth ()I - public final fun getX ()I - public final fun getY ()I - public fun hashCode ()I - public final fun isHovered (II)Z - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/client/Settings { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/client/Settings; - public static final field chat Lcom/chattriggers/ctjs/api/client/Settings$ChatWrapper; - public static final field skin Lcom/chattriggers/ctjs/api/client/Settings$SkinWrapper; - public static final field sound Lcom/chattriggers/ctjs/api/client/Settings$SoundWrapper; - public static final field video Lcom/chattriggers/ctjs/api/client/Settings$VideoWrapper; - public static final fun getDifficulty ()Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static final fun getFOV ()Ljava/lang/Integer; - public static final fun getSettings ()Lnet/minecraft/client/option/GameOptions; - public static final fun setFOV (I)V - public static final fun toMC ()Lnet/minecraft/client/option/GameOptions; -} - -public final class com/chattriggers/ctjs/api/client/Settings$ChatVisibility : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility$Companion; - public static final field FULL Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public static final field HIDDEN Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public static final field SYSTEM Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public static final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public static final fun fromMC (Lnet/minecraft/network/message/ChatVisibility;)Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/network/message/ChatVisibility; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/network/message/ChatVisibility; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public static fun values ()[Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; -} - -public final class com/chattriggers/ctjs/api/client/Settings$ChatVisibility$Companion { - public final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public final fun fromMC (Lnet/minecraft/network/message/ChatVisibility;)Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; -} - -public final class com/chattriggers/ctjs/api/client/Settings$ChatWrapper { - public fun ()V - public final fun getColors ()Ljava/lang/Boolean; - public final fun getFocusedHeight ()Ljava/lang/Double; - public final fun getOpacity ()Ljava/lang/Double; - public final fun getPromptOnWebLinks ()Ljava/lang/Boolean; - public final fun getReducedDebugInfo ()Ljava/lang/Boolean; - public final fun getScale ()Ljava/lang/Double; - public final fun getUnfocusedHeight ()Ljava/lang/Double; - public final fun getVisibility ()Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility; - public final fun getWebLinks ()Ljava/lang/Boolean; - public final fun getWidth ()Ljava/lang/Double; - public final fun setColors (Z)V - public final fun setFocusedHeight (D)V - public final fun setOpacity (D)V - public final fun setPromptOnWebLinks (Z)V - public final fun setReducedDebugInfo (Z)V - public final fun setScale (D)V - public final fun setUnfocusedHeight (D)V - public final fun setVisibility (Lcom/chattriggers/ctjs/api/client/Settings$ChatVisibility;)V - public final fun setWebLinks (Z)V - public final fun setWidth (D)V -} - -public final class com/chattriggers/ctjs/api/client/Settings$CloudRenderMode : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode$Companion; - public static final field FANCY Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public static final field FAST Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public static final field OFF Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public static final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public static final fun fromMC (Lnet/minecraft/client/option/CloudRenderMode;)Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/client/option/CloudRenderMode; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/client/option/CloudRenderMode; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public static fun values ()[Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; -} - -public final class com/chattriggers/ctjs/api/client/Settings$CloudRenderMode$Companion { - public final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public final fun fromMC (Lnet/minecraft/client/option/CloudRenderMode;)Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; -} - -public final class com/chattriggers/ctjs/api/client/Settings$Difficulty : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/client/Settings$Difficulty$Companion; - public static final field EASY Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static final field HARD Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static final field NORMAL Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static final field PEACEFUL Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static final fun fromMC (Lnet/minecraft/world/Difficulty;)Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/world/Difficulty; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/world/Difficulty; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static fun values ()[Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; -} - -public final class com/chattriggers/ctjs/api/client/Settings$Difficulty$Companion { - public final fun fromMC (Lnet/minecraft/world/Difficulty;)Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; -} - -public final class com/chattriggers/ctjs/api/client/Settings$GraphicsMode : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode$Companion; - public static final field FABULOUS Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; - public static final field FANCY Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; - public static final field FAST Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; - public static final fun fromMC (Lnet/minecraft/client/option/GraphicsMode;)Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/client/option/GraphicsMode; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/client/option/GraphicsMode; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; - public static fun values ()[Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; -} - -public final class com/chattriggers/ctjs/api/client/Settings$GraphicsMode$Companion { - public final fun fromMC (Lnet/minecraft/client/option/GraphicsMode;)Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; -} - -public final class com/chattriggers/ctjs/api/client/Settings$ParticlesMode : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field ALL Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public static final field Companion Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode$Companion; - public static final field DECREASED Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public static final field MINIMAL Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public static final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public static final fun fromMC (Lnet/minecraft/particle/ParticlesMode;)Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/particle/ParticlesMode; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/particle/ParticlesMode; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public static fun values ()[Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; -} - -public final class com/chattriggers/ctjs/api/client/Settings$ParticlesMode$Companion { - public final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public final fun fromMC (Lnet/minecraft/particle/ParticlesMode;)Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; -} - -public final class com/chattriggers/ctjs/api/client/Settings$SkinWrapper { - public fun ()V - public final fun isCapeEnabled ()Z - public final fun isHatEnabled ()Z - public final fun isJacketEnabled ()Z - public final fun isLeftPantsLegEnabled ()Z - public final fun isLeftSleeveEnabled ()Z - public final fun isRightPantsLegEnabled ()Z - public final fun isRightSleeveEnabled ()Z - public final fun setCapeEnabled (Z)V - public final fun setHatEnabled (Z)V - public final fun setJacketEnabled (Z)V - public final fun setLeftPantsLegEnabled (Z)V - public final fun setLeftSleeveEnabled (Z)V - public final fun setRightPantsLegEnabled (Z)V - public final fun setRightSleeveEnabled (Z)V -} - -public final class com/chattriggers/ctjs/api/client/Settings$SoundWrapper { - public fun ()V - public final fun getAmbient ()Ljava/lang/Double; - public final fun getBlocks ()Ljava/lang/Double; - public final fun getFriendlyCreatures ()Ljava/lang/Double; - public final fun getHostileCreatures ()Ljava/lang/Double; - public final fun getMasterVolume ()Ljava/lang/Double; - public final fun getMusicVolume ()Ljava/lang/Double; - public final fun getNoteblockVolume ()Ljava/lang/Double; - public final fun getPlayers ()Ljava/lang/Double; - public final fun getWeather ()Ljava/lang/Double; - public final fun setAmbient (D)V - public final fun setBlocks (D)V - public final fun setFriendlyCreatures (D)V - public final fun setHostileCreatures (D)V - public final fun setMasterVolume (D)V - public final fun setMusicVolume (D)V - public final fun setNoteblockVolume (D)V - public final fun setPlayers (D)V - public final fun setWeather (D)V -} - -public final class com/chattriggers/ctjs/api/client/Settings$VideoWrapper { - public fun ()V - public final fun getBobbing ()Ljava/lang/Boolean; - public final fun getBrightness ()Ljava/lang/Double; - public final fun getClouds ()Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode; - public final fun getEntityShadows ()Ljava/lang/Boolean; - public final fun getFullscreen ()Ljava/lang/Boolean; - public final fun getGraphicsMode ()Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode; - public final fun getGuiScale ()Ljava/lang/Integer; - public final fun getMaxFrameRate ()Ljava/lang/Integer; - public final fun getMipmapLevels ()Ljava/lang/Integer; - public final fun getParticles ()Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode; - public final fun getRenderDistance ()Ljava/lang/Integer; - public final fun getSmoothLighting ()Ljava/lang/Boolean; - public final fun getVsync ()Ljava/lang/Boolean; - public final fun setBobbing (Z)V - public final fun setBrightness (D)V - public final fun setClouds (Lcom/chattriggers/ctjs/api/client/Settings$CloudRenderMode;)V - public final fun setEntityShadows (Z)V - public final fun setFullscreen (Z)V - public final fun setGraphicsMode (Lcom/chattriggers/ctjs/api/client/Settings$GraphicsMode;)V - public final fun setGuiScale (I)V - public final fun setMaxFrameRate (I)V - public final fun setMipmapLevels (I)V - public final fun setParticles (Lcom/chattriggers/ctjs/api/client/Settings$ParticlesMode;)V - public final fun setRenderDistance (I)V - public final fun setSmoothLighting (Z)V - public final fun setVsync (Z)V -} - -public final class com/chattriggers/ctjs/api/client/Sound { - public fun (Lorg/mozilla/javascript/NativeObject;)V - public final fun destroy ()V - public final fun getAttenuation ()I - public final fun getAttenuationType ()Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; - public final fun getCategory ()Lcom/chattriggers/ctjs/api/client/Sound$Category; - public final fun getLoop ()Z - public final fun getLoopDelay ()I - public final fun getPitch ()F - public final fun getPosition ()Lnet/minecraft/util/math/Vec3d; - public final fun getVolume ()F - public final fun getX ()D - public final fun getY ()D - public final fun getZ ()D - public final fun pause ()V - public final fun play ()V - public final fun play (I)V - public static synthetic fun play$default (Lcom/chattriggers/ctjs/api/client/Sound;IILjava/lang/Object;)V - public final fun rewind ()V - public final fun setAttenuation (I)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setAttenuationType (Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType;)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setCategory (Lcom/chattriggers/ctjs/api/client/Sound$Category;)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setLoop (Z)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setLoopDelay (I)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setPitch (F)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setPosition (DDD)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setVolume (F)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setX (D)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setY (D)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun setZ (D)Lcom/chattriggers/ctjs/api/client/Sound; - public final fun stop ()V -} - -public final class com/chattriggers/ctjs/api/client/Sound$AttenuationType : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType$Companion; - public static final field LINEAR Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; - public static final field NONE Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; - public static final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; - public static final fun fromMC (Lnet/minecraft/client/sound/SoundInstance$AttenuationType;)Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/client/sound/SoundInstance$AttenuationType; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/client/sound/SoundInstance$AttenuationType; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; - public static fun values ()[Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; -} - -public final class com/chattriggers/ctjs/api/client/Sound$AttenuationType$Companion { - public final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; - public final fun fromMC (Lnet/minecraft/client/sound/SoundInstance$AttenuationType;)Lcom/chattriggers/ctjs/api/client/Sound$AttenuationType; -} - -public final class com/chattriggers/ctjs/api/client/Sound$Category : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field AMBIENT Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field BLOCKS Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field Companion Lcom/chattriggers/ctjs/api/client/Sound$Category$Companion; - public static final field HOSTILE Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field MASTER Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field MUSIC Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field NEUTRAL Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field PLAYERS Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field RECORDS Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field VOICE Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final field WEATHER Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static final fun fromMC (Lnet/minecraft/sound/SoundCategory;)Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/sound/SoundCategory; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/sound/SoundCategory; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/client/Sound$Category; - public static fun values ()[Lcom/chattriggers/ctjs/api/client/Sound$Category; -} - -public final class com/chattriggers/ctjs/api/client/Sound$Category$Companion { - public final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/client/Sound$Category; - public final fun fromMC (Lnet/minecraft/sound/SoundCategory;)Lcom/chattriggers/ctjs/api/client/Sound$Category; -} - -public final class com/chattriggers/ctjs/api/client/V5MainMenuScreen : net/minecraft/client/gui/screen/Screen { - public fun ()V - public fun mouseClicked (Lnet/minecraft/client/gui/Click;Z)Z - public fun render (Lnet/minecraft/client/gui/DrawContext;IIF)V - public fun renderBackground (Lnet/minecraft/client/gui/DrawContext;IIF)V - public fun shouldCloseOnEsc ()Z -} - -public final class com/chattriggers/ctjs/api/client/WelcomeScreen : net/minecraft/client/gui/screen/Screen { - public static final field Companion Lcom/chattriggers/ctjs/api/client/WelcomeScreen$Companion; - public fun ()V - public fun mouseClicked (Lnet/minecraft/client/gui/Click;Z)Z - public fun mouseReleased (Lnet/minecraft/client/gui/Click;)Z - public static final fun open ()V - public fun render (Lnet/minecraft/client/gui/DrawContext;IIF)V - public fun shouldCloseOnEsc ()Z -} - -public final class com/chattriggers/ctjs/api/client/WelcomeScreen$Companion { - public final fun open ()V -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands : com/chattriggers/ctjs/internal/commands/CommandCollection { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/commands/DynamicCommands; - public static final fun angle ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun argument (Ljava/lang/String;Lcom/mojang/brigadier/arguments/ArgumentType;Lorg/mozilla/javascript/Function;)V - public static final fun blockPos ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun blockPredicate ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun blockState ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun bool ()Lcom/mojang/brigadier/arguments/BoolArgumentType; - public static final fun buildCommand (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/commands/RootCommand; - public static final fun buildCommand (Ljava/lang/String;Lorg/mozilla/javascript/Function;)Lcom/chattriggers/ctjs/api/commands/RootCommand; - public static synthetic fun buildCommand$default (Ljava/lang/String;Lorg/mozilla/javascript/Function;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/RootCommand; - public static final fun choices ([Ljava/lang/String;)Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun color ()Lnet/minecraft/command/argument/ColorArgumentType; - public static final fun columnPos ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun custom (Lorg/mozilla/javascript/NativeObject;)Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun dimension ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun double ()Lcom/mojang/brigadier/arguments/DoubleArgumentType; - public static final fun double (D)Lcom/mojang/brigadier/arguments/DoubleArgumentType; - public static final fun double (DD)Lcom/mojang/brigadier/arguments/DoubleArgumentType; - public static synthetic fun double$default (DDILjava/lang/Object;)Lcom/mojang/brigadier/arguments/DoubleArgumentType; - public static final fun entities ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun entity ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun error (Lcom/mojang/brigadier/ImmutableStringReader;Lcom/chattriggers/ctjs/api/message/TextComponent;)Ljava/lang/Void; - public static final fun error (Lcom/mojang/brigadier/ImmutableStringReader;Ljava/lang/String;)Ljava/lang/Void; - public static final fun exec (Lorg/mozilla/javascript/Function;)V - public static final fun float ()Lcom/mojang/brigadier/arguments/FloatArgumentType; - public static final fun float (F)Lcom/mojang/brigadier/arguments/FloatArgumentType; - public static final fun float (FF)Lcom/mojang/brigadier/arguments/FloatArgumentType; - public static synthetic fun float$default (FFILjava/lang/Object;)Lcom/mojang/brigadier/arguments/FloatArgumentType; - public static final fun floatRange ()Lnet/minecraft/command/argument/NumberRangeArgumentType$FloatRangeArgumentType; - public static final fun gameMode ()Lnet/minecraft/command/argument/GameModeArgumentType; - public static final fun gameProfile ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun getDispatcherRoot ()Lcom/mojang/brigadier/tree/RootCommandNode; - public static final fun greedyString ()Lcom/mojang/brigadier/arguments/StringArgumentType; - public static final fun intRange ()Lnet/minecraft/command/argument/NumberRangeArgumentType$IntRangeArgumentType; - public static final fun integer ()Lcom/mojang/brigadier/arguments/IntegerArgumentType; - public static final fun integer (I)Lcom/mojang/brigadier/arguments/IntegerArgumentType; - public static final fun integer (II)Lcom/mojang/brigadier/arguments/IntegerArgumentType; - public static synthetic fun integer$default (IIILjava/lang/Object;)Lcom/mojang/brigadier/arguments/IntegerArgumentType; - public static final fun itemPredicate ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun itemSlot ()Lnet/minecraft/command/argument/ItemSlotArgumentType; - public static final fun itemStack ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun literal (Ljava/lang/String;Lorg/mozilla/javascript/Function;)V - public static final fun long ()Lcom/mojang/brigadier/arguments/LongArgumentType; - public static final fun long (J)Lcom/mojang/brigadier/arguments/LongArgumentType; - public static final fun long (JJ)Lcom/mojang/brigadier/arguments/LongArgumentType; - public static synthetic fun long$default (JJILjava/lang/Object;)Lcom/mojang/brigadier/arguments/LongArgumentType; - public static final fun message ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun nbtCompoundTag ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun nbtPath ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun nbtTag ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun player ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun players ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun redirect (Lcom/chattriggers/ctjs/api/commands/RootCommand;)V - public static final fun redirect (Lcom/mojang/brigadier/tree/CommandNode;)V - public static final fun registerCommand (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/commands/RootCommand; - public static final fun registerCommand (Ljava/lang/String;Lorg/mozilla/javascript/Function;)Lcom/chattriggers/ctjs/api/commands/RootCommand; - public static synthetic fun registerCommand$default (Ljava/lang/String;Lorg/mozilla/javascript/Function;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/RootCommand; - public static final fun resource ()Lnet/minecraft/command/argument/IdentifierArgumentType; - public static final fun rotation ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun string ()Lcom/mojang/brigadier/arguments/StringArgumentType; - public static final fun swizzle ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun time ()Lnet/minecraft/command/argument/TimeArgumentType; - public static final fun time (I)Lnet/minecraft/command/argument/TimeArgumentType; - public static synthetic fun time$default (IILjava/lang/Object;)Lnet/minecraft/command/argument/TimeArgumentType; - public static final fun uuid ()Lnet/minecraft/command/argument/UuidArgumentType; - public static final fun vec2 ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun vec2 (Z)Lcom/mojang/brigadier/arguments/ArgumentType; - public static synthetic fun vec2$default (ZILjava/lang/Object;)Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun vec3 ()Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun vec3 (Z)Lcom/mojang/brigadier/arguments/ArgumentType; - public static synthetic fun vec3$default (ZILjava/lang/Object;)Lcom/mojang/brigadier/arguments/ArgumentType; - public static final fun word ()Lcom/mojang/brigadier/arguments/StringArgumentType; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$AngleArgumentWrapper { - public fun (Lnet/minecraft/command/argument/AngleArgumentType$Angle;)V - public final fun component1 ()Lnet/minecraft/command/argument/AngleArgumentType$Angle; - public final fun copy (Lnet/minecraft/command/argument/AngleArgumentType$Angle;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$AngleArgumentWrapper; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$AngleArgumentWrapper;Lnet/minecraft/command/argument/AngleArgumentType$Angle;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$AngleArgumentWrapper; - public fun equals (Ljava/lang/Object;)Z - public final fun getAngle ()F - public final fun getAngle ()Lnet/minecraft/command/argument/AngleArgumentType$Angle; - public final fun getAngle (Lcom/chattriggers/ctjs/api/entity/Entity;)F - public static synthetic fun getAngle$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$AngleArgumentWrapper;Lcom/chattriggers/ctjs/api/entity/Entity;ILjava/lang/Object;)F - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$BlockPredicateWrapper { - public fun (Lnet/minecraft/command/argument/BlockPredicateArgumentType$BlockPredicate;)V - public final fun component1 ()Lnet/minecraft/command/argument/BlockPredicateArgumentType$BlockPredicate; - public final fun copy (Lnet/minecraft/command/argument/BlockPredicateArgumentType$BlockPredicate;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$BlockPredicateWrapper; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$BlockPredicateWrapper;Lnet/minecraft/command/argument/BlockPredicateArgumentType$BlockPredicate;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$BlockPredicateWrapper; - public fun equals (Ljava/lang/Object;)Z - public final fun getImpl ()Lnet/minecraft/command/argument/BlockPredicateArgumentType$BlockPredicate; - public fun hashCode ()I - public final fun test (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Z - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$BlockStateArgumentWrapper { - public fun (Lnet/minecraft/command/argument/BlockStateArgument;)V - public final fun component1 ()Lnet/minecraft/command/argument/BlockStateArgument; - public final fun copy (Lnet/minecraft/command/argument/BlockStateArgument;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$BlockStateArgumentWrapper; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$BlockStateArgumentWrapper;Lnet/minecraft/command/argument/BlockStateArgument;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$BlockStateArgumentWrapper; - public fun equals (Ljava/lang/Object;)Z - public final fun getImpl ()Lnet/minecraft/command/argument/BlockStateArgument; - public fun hashCode ()I - public final fun test (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Z - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$EntitySelectorWrapper { - public fun (Lnet/minecraft/command/EntitySelector;)V - public final fun getEntities ()Ljava/util/List; - public final fun getEntity ()Lcom/chattriggers/ctjs/api/entity/Entity; - public final fun getPlayers ()Ljava/util/List; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$ItemStackArgumentWrapper : java/util/function/Predicate { - public fun (Lnet/minecraft/command/argument/ItemStackArgument;)V - public final fun copy (Lnet/minecraft/command/argument/ItemStackArgument;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$ItemStackArgumentWrapper; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$ItemStackArgumentWrapper;Lnet/minecraft/command/argument/ItemStackArgument;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$ItemStackArgumentWrapper; - public fun equals (Ljava/lang/Object;)Z - public final fun getItemType ()Lcom/chattriggers/ctjs/api/inventory/ItemType; - public fun hashCode ()I - public fun test (Lcom/chattriggers/ctjs/api/inventory/Item;)Z - public final fun test (Lcom/chattriggers/ctjs/api/inventory/ItemType;)Z - public synthetic fun test (Ljava/lang/Object;)Z - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$MessageFormatArgumentWrapper { - public fun (Lnet/minecraft/command/argument/MessageArgumentType$MessageFormat;)V - public final fun copy (Lnet/minecraft/command/argument/MessageArgumentType$MessageFormat;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$MessageFormatArgumentWrapper; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$MessageFormatArgumentWrapper;Lnet/minecraft/command/argument/MessageArgumentType$MessageFormat;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$MessageFormatArgumentWrapper; - public fun equals (Ljava/lang/Object;)Z - public final fun format ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun getText ()Ljava/lang/String; - public fun hashCode ()I - public final fun setText (Ljava/lang/String;)V - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$NbtPathWrapper { - public fun (Lnet/minecraft/command/argument/NbtPathArgumentType$NbtPath;)V - public final fun copy (Lnet/minecraft/command/argument/NbtPathArgumentType$NbtPath;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$NbtPathWrapper; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$NbtPathWrapper;Lnet/minecraft/command/argument/NbtPathArgumentType$NbtPath;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$NbtPathWrapper; - public final fun count (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)I - public fun equals (Ljava/lang/Object;)Z - public final fun get (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)Ljava/util/List; - public final fun getOrInit (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;Lkotlin/jvm/functions/Function0;)Ljava/util/List; - public fun hashCode ()I - public final fun insert (ILcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound;Ljava/util/List;)I - public final fun put (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)I - public final fun remove (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/commands/DynamicCommands$PosArgumentWrapper : net/minecraft/command/argument/PosArgument { - public fun (Lnet/minecraft/command/argument/PosArgument;)V - public final fun component1 ()Lnet/minecraft/command/argument/PosArgument; - public final fun copy (Lnet/minecraft/command/argument/PosArgument;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$PosArgumentWrapper; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/commands/DynamicCommands$PosArgumentWrapper;Lnet/minecraft/command/argument/PosArgument;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/commands/DynamicCommands$PosArgumentWrapper; - public fun equals (Ljava/lang/Object;)Z - public final fun getImpl ()Lnet/minecraft/command/argument/PosArgument; - public fun getPos (Lnet/minecraft/server/command/ServerCommandSource;)Lnet/minecraft/util/math/Vec3d; - public fun getRotation (Lnet/minecraft/server/command/ServerCommandSource;)Lnet/minecraft/util/math/Vec2f; - public fun hashCode ()I - public fun isXRelative ()Z - public fun isYRelative ()Z - public fun isZRelative ()Z - public final fun toAbsoluteBlockPos ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun toAbsolutePos ()Lnet/minecraft/util/math/Vec3d; - public final fun toAbsoluteRotation ()Lnet/minecraft/util/math/Vec2f; - public fun toString ()Ljava/lang/String; -} - -public abstract interface class com/chattriggers/ctjs/api/commands/RootCommand { - public abstract fun register ()V -} - -public final class com/chattriggers/ctjs/api/entity/BlockEntity : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/block/entity/BlockEntity;)V - public final fun getBlock ()Lcom/chattriggers/ctjs/api/world/block/Block; - public final fun getBlockPos ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun getBlockType ()Lcom/chattriggers/ctjs/api/world/block/BlockType; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/block/entity/BlockEntity; - public final fun getX ()I - public final fun getY ()I - public final fun getZ ()I - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/block/entity/BlockEntity; - public fun toString ()Ljava/lang/String; -} - -public class com/chattriggers/ctjs/api/entity/Entity : com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/entity/Entity$Companion; - public fun (Lnet/minecraft/entity/Entity;)V - public final fun canBeCollidedWith ()Z - public final fun canBePushed ()Z - public final fun distanceTo (DDD)D - public final fun distanceTo (Lcom/chattriggers/ctjs/api/entity/Entity;)F - public final fun distanceTo (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)D - public final fun distanceTo (Lnet/minecraft/entity/Entity;)F - public static final fun fromMC (Lnet/minecraft/entity/Entity;)Lcom/chattriggers/ctjs/api/entity/Entity; - public final fun getAir ()I - public final fun getChunk ()Lcom/chattriggers/ctjs/api/world/Chunk; - public final fun getClassName ()Ljava/lang/String; - public final fun getDimension ()Lcom/chattriggers/ctjs/api/entity/Entity$DimensionType; - public final fun getDistanceWalked ()F - public final fun getEyeHeight ()F - public final fun getEyePosition ()Lnet/minecraft/util/math/Vec3d; - public final fun getEyePosition (F)Lnet/minecraft/util/math/Vec3d; - public static synthetic fun getEyePosition$default (Lcom/chattriggers/ctjs/api/entity/Entity;FILjava/lang/Object;)Lnet/minecraft/util/math/Vec3d; - public final fun getFireResistance ()I - public final fun getHeight ()F - public final fun getLastX ()D - public final fun getLastY ()D - public final fun getLastZ ()D - public final fun getLookVector ()Lnet/minecraft/util/math/Vec3d; - public final fun getLookVector (F)Lnet/minecraft/util/math/Vec3d; - public static synthetic fun getLookVector$default (Lcom/chattriggers/ctjs/api/entity/Entity;FILjava/lang/Object;)Lnet/minecraft/util/math/Vec3d; - public final fun getMaxInPortalTime ()I - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/entity/Entity; - public final fun getMotionX ()D - public final fun getMotionY ()D - public final fun getMotionZ ()D - public final fun getName ()Ljava/lang/String; - public final fun getNameComponent ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun getPitch ()F - public final fun getPos ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun getRenderX ()D - public final fun getRenderY ()D - public final fun getRenderZ ()D - public final fun getRiders ()Ljava/util/List; - public final fun getRiding ()Lcom/chattriggers/ctjs/api/entity/Entity; - public final fun getRotation ()Lnet/minecraft/util/math/Vec2f; - public final fun getStepHeight ()F - public final fun getTicksExisted ()I - public final fun getUUID ()Ljava/util/UUID; - public final fun getWidth ()F - public final fun getWorld ()Lnet/minecraft/world/World; - public final fun getX ()D - public final fun getY ()D - public final fun getYaw ()F - public final fun getZ ()D - public final fun hasNoClip ()Z - public final fun isBurning ()Z - public final fun isCollided ()Z - public final fun isDead ()Z - public final fun isImmuneToFire ()Z - public final fun isInLava ()Z - public final fun isInWater ()Z - public final fun isInvisible ()Z - public final fun isOnGround ()Z - public final fun isOutsideBorder ()Z - public final fun isSilent ()Z - public final fun isSneaking ()Z - public final fun isSprinting ()Z - public final fun isWet ()Z - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/entity/Entity; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/entity/Entity$Companion { - public final fun fromMC (Lnet/minecraft/entity/Entity;)Lcom/chattriggers/ctjs/api/entity/Entity; -} - -public final class com/chattriggers/ctjs/api/entity/Entity$DimensionType : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field END Lcom/chattriggers/ctjs/api/entity/Entity$DimensionType; - public static final field NETHER Lcom/chattriggers/ctjs/api/entity/Entity$DimensionType; - public static final field OVERWORLD Lcom/chattriggers/ctjs/api/entity/Entity$DimensionType; - public static final field OVERWORLD_CAVES Lcom/chattriggers/ctjs/api/entity/Entity$DimensionType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/registry/RegistryKey; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/registry/RegistryKey; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/entity/Entity$DimensionType; - public static fun values ()[Lcom/chattriggers/ctjs/api/entity/Entity$DimensionType; -} - -public class com/chattriggers/ctjs/api/entity/LivingEntity : com/chattriggers/ctjs/api/entity/Entity { - public fun (Lnet/minecraft/entity/LivingEntity;)V - public final fun canSeeEntity (Lcom/chattriggers/ctjs/api/entity/Entity;)Z - public final fun canSeeEntity (Lnet/minecraft/entity/Entity;)Z - public final fun getAbsorption ()F - public final fun getActivePotionEffects ()Ljava/util/List; - public final fun getAge ()I - public final fun getArmorValue ()I - public final fun getHP ()F - public final fun getMaxHP ()F - public synthetic fun getMcValue ()Ljava/lang/Object; - public synthetic fun getMcValue ()Lnet/minecraft/entity/Entity; - public fun getMcValue ()Lnet/minecraft/entity/LivingEntity; - public final fun getStackInSlot (I)Lcom/chattriggers/ctjs/api/inventory/Item; - public final fun isPotionActive (I)Z - public final fun isPotionActive (Lcom/chattriggers/ctjs/api/world/PotionEffect;)Z - public final fun isPotionActive (Lcom/chattriggers/ctjs/api/world/PotionEffectType;)Z -} - -public final class com/chattriggers/ctjs/api/entity/Particle : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/client/particle/Particle;)V - public final fun getAge ()I - public final fun getColor ()Lkotlin/jvm/functions/Function0; - public final fun getDead ()Z - public final fun getLastX ()D - public final fun getLastY ()D - public final fun getLastZ ()D - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/client/particle/Particle; - public final fun getMotionX ()D - public final fun getMotionY ()D - public final fun getMotionZ ()D - public final fun getRenderX ()D - public final fun getRenderY ()D - public final fun getRenderZ ()D - public final fun getX ()D - public final fun getY ()D - public final fun getZ ()D - public final fun remove ()Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun scale (F)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun setAge (I)V - public final fun setAlpha (F)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun setColor (FFF)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun setColor (FFFF)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun setColor (J)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun setColor (Ljava/awt/Color;)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun setDead (Z)V - public final fun setLastX (D)V - public final fun setLastY (D)V - public final fun setLastZ (D)V - public final fun setMaxAge (I)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun setMotionX (D)V - public final fun setMotionY (D)V - public final fun setMotionZ (D)V - public final fun setX (D)V - public final fun setY (D)V - public final fun setZ (D)V - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/client/particle/Particle; - public fun toString ()Ljava/lang/String; -} - -public abstract class com/chattriggers/ctjs/api/entity/PlayerInteraction { - public synthetic fun (Ljava/lang/String;ZLkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getMainHand ()Z - public final fun getName ()Ljava/lang/String; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/entity/PlayerInteraction$AttackBlock : com/chattriggers/ctjs/api/entity/PlayerInteraction { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/entity/PlayerInteraction$AttackBlock; -} - -public final class com/chattriggers/ctjs/api/entity/PlayerInteraction$AttackEntity : com/chattriggers/ctjs/api/entity/PlayerInteraction { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/entity/PlayerInteraction$AttackEntity; -} - -public final class com/chattriggers/ctjs/api/entity/PlayerInteraction$BreakBlock : com/chattriggers/ctjs/api/entity/PlayerInteraction { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/entity/PlayerInteraction$BreakBlock; -} - -public final class com/chattriggers/ctjs/api/entity/PlayerInteraction$UseBlock : com/chattriggers/ctjs/api/entity/PlayerInteraction { - public fun (Lnet/minecraft/util/Hand;)V -} - -public final class com/chattriggers/ctjs/api/entity/PlayerInteraction$UseEntity : com/chattriggers/ctjs/api/entity/PlayerInteraction { - public fun (Lnet/minecraft/util/Hand;)V -} - -public final class com/chattriggers/ctjs/api/entity/PlayerInteraction$UseItem : com/chattriggers/ctjs/api/entity/PlayerInteraction { - public fun (Lnet/minecraft/util/Hand;)V -} - -public final class com/chattriggers/ctjs/api/entity/PlayerMP : com/chattriggers/ctjs/api/entity/LivingEntity { - public fun (Lnet/minecraft/entity/player/PlayerEntity;)V - public final fun draw (Lorg/mozilla/javascript/NativeObject;)Lcom/chattriggers/ctjs/api/entity/PlayerMP; - public final fun getDisplayName ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public synthetic fun getMcValue ()Ljava/lang/Object; - public synthetic fun getMcValue ()Lnet/minecraft/entity/Entity; - public synthetic fun getMcValue ()Lnet/minecraft/entity/LivingEntity; - public fun getMcValue ()Lnet/minecraft/entity/player/PlayerEntity; - public final fun getPing ()I - public final fun getTeam ()Lcom/chattriggers/ctjs/api/entity/Team; - public final fun isSpectator ()Z - public final fun setNametagName (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public final fun setTabDisplayName (Lcom/chattriggers/ctjs/api/message/TextComponent;)V -} - -public final class com/chattriggers/ctjs/api/entity/Team : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/scoreboard/Team;)V - public final fun canSeeInvisibleTeammates ()Z - public final fun getColor ()Ljava/lang/String; - public final fun getDeathMessageVisibility ()Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public final fun getFriendlyFire ()Z - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/scoreboard/Team; - public final fun getMembers ()Ljava/util/List; - public final fun getName ()Ljava/lang/String; - public final fun getNameTagVisibility ()Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public final fun getPrefix ()Ljava/lang/String; - public final fun getRegisteredName ()Ljava/lang/String; - public final fun getSuffix ()Ljava/lang/String; - public final fun setColor (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/entity/Team; - public final fun setName (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/entity/Team; - public final fun setName (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/entity/Team; - public final fun setPrefix (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/entity/Team; - public final fun setPrefix (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/entity/Team; - public final fun setSuffix (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/entity/Team; - public final fun setSuffix (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/entity/Team; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/scoreboard/Team; -} - -public final class com/chattriggers/ctjs/api/entity/Team$Visibility : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field ALWAYS Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public static final field Companion Lcom/chattriggers/ctjs/api/entity/Team$Visibility$Companion; - public static final field HIDE_FOR_OTHERS_TEAMS Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public static final field HIDE_FOR_OWN_TEAM Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public static final field NEVER Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public static final fun fromMC (Lnet/minecraft/scoreboard/AbstractTeam$VisibilityRule;)Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/scoreboard/AbstractTeam$VisibilityRule; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/scoreboard/AbstractTeam$VisibilityRule; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/entity/Team$Visibility; - public static fun values ()[Lcom/chattriggers/ctjs/api/entity/Team$Visibility; -} - -public final class com/chattriggers/ctjs/api/entity/Team$Visibility$Companion { - public final fun fromMC (Lnet/minecraft/scoreboard/AbstractTeam$VisibilityRule;)Lcom/chattriggers/ctjs/api/entity/Team$Visibility; -} - -public final class com/chattriggers/ctjs/api/inventory/Inventory { - public fun (Lnet/minecraft/client/gui/screen/ingame/HandledScreen;)V - public fun (Lnet/minecraft/inventory/Inventory;)V - public final fun click (I)Lcom/chattriggers/ctjs/api/inventory/Inventory; - public final fun click (IZ)Lcom/chattriggers/ctjs/api/inventory/Inventory; - public final fun click (IZLjava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/Inventory; - public static synthetic fun click$default (Lcom/chattriggers/ctjs/api/inventory/Inventory;IZLjava/lang/String;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/inventory/Inventory; - public final fun contains (I)Z - public final fun contains (Lcom/chattriggers/ctjs/api/inventory/Item;)Z - public final fun drag (Ljava/lang/String;[I)Lcom/chattriggers/ctjs/api/inventory/Inventory; - public final fun drop (IZ)Lcom/chattriggers/ctjs/api/inventory/Inventory; - public final fun getClassName ()Ljava/lang/String; - public final fun getInventory ()Lnet/minecraft/inventory/Inventory; - public final fun getItems ()Ljava/util/List; - public final fun getName ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun getScreen ()Lnet/minecraft/client/gui/screen/ingame/HandledScreen; - public final fun getSize ()I - public final fun getStackInSlot (I)Lcom/chattriggers/ctjs/api/inventory/Item; - public final fun getWindowId ()I - public final fun indexOf (I)I - public final fun indexOf (Lcom/chattriggers/ctjs/api/inventory/Item;)I - public final fun isItemValidForSlot (ILcom/chattriggers/ctjs/api/inventory/Item;)Z - public final fun isScreen ()Z - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/inventory/Item : com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/inventory/Item$Companion; - public fun (Lcom/chattriggers/ctjs/api/inventory/ItemType;)V - public fun (Lnet/minecraft/item/ItemStack;)V - public final fun canHarvest (Lcom/chattriggers/ctjs/api/world/block/Block;)Z - public final fun canHarvest (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Z - public final fun canPlaceOn (Lcom/chattriggers/ctjs/api/world/block/Block;)Z - public final fun canPlaceOn (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Z - public final fun draw ()V - public final fun draw (F)V - public final fun draw (FF)V - public final fun draw (FFF)V - public static synthetic fun draw$default (Lcom/chattriggers/ctjs/api/inventory/Item;FFFILjava/lang/Object;)V - public static final fun fromMC (Lnet/minecraft/item/ItemStack;)Lcom/chattriggers/ctjs/api/inventory/Item; - public final fun getDamage ()I - public final fun getDurability ()I - public final fun getEnchantments ()Ljava/util/Map; - public final fun getHolder ()Lcom/chattriggers/ctjs/api/entity/Entity; - public final fun getLore ()Ljava/util/List; - public final fun getLore (Z)Ljava/util/List; - public static synthetic fun getLore$default (Lcom/chattriggers/ctjs/api/inventory/Item;ZILjava/lang/Object;)Ljava/util/List; - public final fun getMaxDamage ()I - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/item/ItemStack; - public final fun getNBT ()Lnet/minecraft/component/ComponentMap; - public final fun getName ()Ljava/lang/String; - public final fun getStackSize ()I - public final fun getType ()Lcom/chattriggers/ctjs/api/inventory/ItemType; - public final fun isDamageable ()Z - public final fun isEnchantable ()Z - public final fun isEnchanted ()Z - public final fun resetLore ()V - public final fun resetName ()V - public final fun setLore (Ljava/util/List;)V - public final fun setName (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/inventory/Item; - public final fun setStackSize (I)Lcom/chattriggers/ctjs/api/inventory/Item; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/item/ItemStack; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/inventory/Item$Companion { - public final fun fromMC (Lnet/minecraft/item/ItemStack;)Lcom/chattriggers/ctjs/api/inventory/Item; -} - -public final class com/chattriggers/ctjs/api/inventory/ItemType : com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/inventory/ItemType$Companion; - public fun (I)V - public fun (Lcom/chattriggers/ctjs/api/world/block/BlockType;)V - public fun (Ljava/lang/String;)V - public fun (Lnet/minecraft/item/Item;)V - public final fun asItem ()Lcom/chattriggers/ctjs/api/inventory/Item; - public static final fun fromMC (Lnet/minecraft/item/Item;)Lcom/chattriggers/ctjs/api/inventory/ItemType; - public final fun getId ()I - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/item/Item; - public final fun getName ()Ljava/lang/String; - public final fun getNameComponent ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun getRegistryName ()Ljava/lang/String; - public final fun getTranslationKey ()Ljava/lang/String; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/item/Item; -} - -public final class com/chattriggers/ctjs/api/inventory/ItemType$Companion { - public final fun fromMC (Lnet/minecraft/item/Item;)Lcom/chattriggers/ctjs/api/inventory/ItemType; -} - -public final class com/chattriggers/ctjs/api/inventory/Slot : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/screen/slot/Slot;)V - public final fun getDisplayX ()I - public final fun getDisplayY ()I - public final fun getIndex ()I - public final fun getInventory ()Lcom/chattriggers/ctjs/api/inventory/Inventory; - public final fun getItem ()Lcom/chattriggers/ctjs/api/inventory/Item; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/screen/slot/Slot; - public final fun isEnabled ()Z - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/screen/slot/Slot; - public fun toString ()Ljava/lang/String; -} - -public abstract class com/chattriggers/ctjs/api/inventory/action/Action { - public static final field Companion Lcom/chattriggers/ctjs/api/inventory/action/Action$Companion; - public fun (II)V - public abstract fun complete$ctjs ()V - protected final fun doClick (ILnet/minecraft/screen/slot/SlotActionType;)V - public final fun getSlot ()I - public final fun getWindowId ()I - public static final fun of (Lcom/chattriggers/ctjs/api/inventory/Inventory;ILjava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/Action; - public final fun setSlot (I)Lcom/chattriggers/ctjs/api/inventory/action/Action; - public final fun setSlot (I)V - public final fun setWindowId (I)Lcom/chattriggers/ctjs/api/inventory/action/Action; - public final fun setWindowId (I)V -} - -public final class com/chattriggers/ctjs/api/inventory/action/Action$Companion { - public final fun of (Lcom/chattriggers/ctjs/api/inventory/Inventory;ILjava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/Action; -} - -public final class com/chattriggers/ctjs/api/inventory/action/Action$Type : java/lang/Enum { - public static final field CLICK Lcom/chattriggers/ctjs/api/inventory/action/Action$Type; - public static final field DRAG Lcom/chattriggers/ctjs/api/inventory/action/Action$Type; - public static final field DROP Lcom/chattriggers/ctjs/api/inventory/action/Action$Type; - public static final field KEY Lcom/chattriggers/ctjs/api/inventory/action/Action$Type; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/Action$Type; - public static fun values ()[Lcom/chattriggers/ctjs/api/inventory/action/Action$Type; -} - -public final class com/chattriggers/ctjs/api/inventory/action/ClickAction : com/chattriggers/ctjs/api/inventory/action/Action { - public fun (II)V - public fun complete$ctjs ()V - public final fun getClickType ()Lcom/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType; - public final fun getHoldingShift ()Z - public final fun getItemInHand ()Z - public final fun getPickupAll ()Z - public final fun setClickString (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/ClickAction; - public final fun setClickType (Lcom/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType;)Lcom/chattriggers/ctjs/api/inventory/action/ClickAction; - public final fun setHoldingShift (Z)Lcom/chattriggers/ctjs/api/inventory/action/ClickAction; - public final fun setItemInHand (Z)Lcom/chattriggers/ctjs/api/inventory/action/ClickAction; - public final fun setPickupAll (Z)Lcom/chattriggers/ctjs/api/inventory/action/ClickAction; -} - -public final class com/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType : java/lang/Enum { - public static final field LEFT Lcom/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType; - public static final field MIDDLE Lcom/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType; - public static final field RIGHT Lcom/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType; - public final fun getButton ()I - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType; - public static fun values ()[Lcom/chattriggers/ctjs/api/inventory/action/ClickAction$ClickType; -} - -public final class com/chattriggers/ctjs/api/inventory/action/DragAction : com/chattriggers/ctjs/api/inventory/action/Action { - public fun (II)V - public fun complete$ctjs ()V - public final fun getClickType ()Lcom/chattriggers/ctjs/api/inventory/action/DragAction$ClickType; - public final fun getStage ()Lcom/chattriggers/ctjs/api/inventory/action/DragAction$Stage; - public final fun setClickString (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/DragAction; - public final fun setClickType (Lcom/chattriggers/ctjs/api/inventory/action/DragAction$ClickType;)Lcom/chattriggers/ctjs/api/inventory/action/DragAction; - public final fun setStage (Lcom/chattriggers/ctjs/api/inventory/action/DragAction$Stage;)Lcom/chattriggers/ctjs/api/inventory/action/DragAction; - public final fun setStageString (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/DragAction; -} - -public final class com/chattriggers/ctjs/api/inventory/action/DragAction$ClickType : java/lang/Enum { - public static final field LEFT Lcom/chattriggers/ctjs/api/inventory/action/DragAction$ClickType; - public static final field MIDDLE Lcom/chattriggers/ctjs/api/inventory/action/DragAction$ClickType; - public static final field RIGHT Lcom/chattriggers/ctjs/api/inventory/action/DragAction$ClickType; - public final fun getButton ()I - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/DragAction$ClickType; - public static fun values ()[Lcom/chattriggers/ctjs/api/inventory/action/DragAction$ClickType; -} - -public final class com/chattriggers/ctjs/api/inventory/action/DragAction$Stage : java/lang/Enum { - public static final field BEGIN Lcom/chattriggers/ctjs/api/inventory/action/DragAction$Stage; - public static final field END Lcom/chattriggers/ctjs/api/inventory/action/DragAction$Stage; - public static final field SLOT Lcom/chattriggers/ctjs/api/inventory/action/DragAction$Stage; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getStage ()I - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/action/DragAction$Stage; - public static fun values ()[Lcom/chattriggers/ctjs/api/inventory/action/DragAction$Stage; -} - -public final class com/chattriggers/ctjs/api/inventory/action/DropAction : com/chattriggers/ctjs/api/inventory/action/Action { - public fun (II)V - public fun complete$ctjs ()V - public final fun getHoldingCtrl ()Z - public final fun setHoldingCtrl (Z)Lcom/chattriggers/ctjs/api/inventory/action/DropAction; -} - -public final class com/chattriggers/ctjs/api/inventory/action/KeyAction : com/chattriggers/ctjs/api/inventory/action/Action { - public fun (II)V - public fun complete$ctjs ()V - public final fun getKey ()I - public final fun setKey (I)Lcom/chattriggers/ctjs/api/inventory/action/KeyAction; -} - -public final class com/chattriggers/ctjs/api/inventory/nbt/NBT { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/inventory/nbt/NBT; - public static final fun parse (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public static final fun parse (Ljava/lang/Object;Lorg/mozilla/javascript/NativeObject;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public static synthetic fun parse$default (Ljava/lang/Object;Lorg/mozilla/javascript/NativeObject;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public static final fun toArray (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList;)Lorg/mozilla/javascript/NativeArray; - public static final fun toObject (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound;)Lorg/mozilla/javascript/NativeObject; -} - -public class com/chattriggers/ctjs/api/inventory/nbt/NBTBase : com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase$Companion; - public fun (Lnet/minecraft/nbt/NbtElement;)V - public final fun copy ()Lnet/minecraft/nbt/NbtElement; - public fun equals (Ljava/lang/Object;)Z - public static final fun fromMC (Lnet/minecraft/nbt/NbtElement;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public final fun getId ()B - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/nbt/NbtElement; - public final fun hasNoTags ()Z - public final fun hasTags ()Z - public fun hashCode ()I - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/nbt/NbtElement; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/inventory/nbt/NBTBase$Companion { - public final fun fromMC (Lnet/minecraft/nbt/NbtElement;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public final fun toObject (Lnet/minecraft/nbt/NbtCompound;)Lorg/mozilla/javascript/NativeObject; - public final fun toObject (Lnet/minecraft/nbt/NbtElement;)Ljava/lang/Object; - public final fun toObject (Lnet/minecraft/nbt/NbtList;)Lorg/mozilla/javascript/NativeArray; -} - -public final class com/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound : com/chattriggers/ctjs/api/inventory/nbt/NBTBase { - public fun (Lnet/minecraft/nbt/NbtCompound;)V - public final fun get (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public final fun get (Ljava/lang/String;Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType;Ljava/lang/Integer;)Ljava/lang/Object; - public final fun getBoolean (Ljava/lang/String;)Ljava/util/Optional; - public final fun getByte (Ljava/lang/String;)Ljava/util/Optional; - public final fun getByteArray (Ljava/lang/String;)Ljava/util/Optional; - public final fun getCompoundTag (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun getDouble (Ljava/lang/String;)Ljava/util/Optional; - public final fun getFloat (Ljava/lang/String;)Ljava/util/Optional; - public final fun getIntArray (Ljava/lang/String;)Ljava/util/Optional; - public final fun getInteger (Ljava/lang/String;)Ljava/util/Optional; - public final fun getKeySet ()Ljava/util/Set; - public final fun getLong (Ljava/lang/String;)Ljava/util/Optional; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/nbt/NbtCompound; - public synthetic fun getMcValue ()Lnet/minecraft/nbt/NbtElement; - public final fun getShort (Ljava/lang/String;)Ljava/util/Optional; - public final fun getString (Ljava/lang/String;)Ljava/util/Optional; - public final fun getTag (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public final fun getTagId (Ljava/lang/String;)Ljava/lang/Byte; - public final fun getTagList (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun getTagMap ()Ljava/util/Map; - public final fun putLongArray (Ljava/lang/String;[J)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun removeTag (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun set (Ljava/lang/String;Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setBoolean (Ljava/lang/String;Z)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setByte (Ljava/lang/String;B)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setByteArray (Ljava/lang/String;[B)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setDouble (Ljava/lang/String;D)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setFloat (Ljava/lang/String;F)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setIntArray (Ljava/lang/String;[I)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setInteger (Ljava/lang/String;I)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setLong (Ljava/lang/String;J)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setNBTBase (Ljava/lang/String;Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setNBTBase (Ljava/lang/String;Lnet/minecraft/nbt/NbtElement;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setShort (Ljava/lang/String;S)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun setString (Ljava/lang/String;Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun toObject ()Lorg/mozilla/javascript/NativeObject; -} - -public final class com/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType : java/lang/Enum { - public static final field BOOLEAN Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field BYTE Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field BYTE_ARRAY Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field COMPOUND_TAG Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field DOUBLE Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field FLOAT Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field INTEGER Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field INT_ARRAY Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field LONG Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field LONG_ARRAY Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field SHORT Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field STRING Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static final field TAG_LIST Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; - public static fun values ()[Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound$NBTDataType; -} - -public final class com/chattriggers/ctjs/api/inventory/nbt/NBTTagList : com/chattriggers/ctjs/api/inventory/nbt/NBTBase { - public fun (Lnet/minecraft/nbt/NbtList;)V - public final fun appendTag (Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun appendTag (Lnet/minecraft/nbt/NbtElement;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun get (I)Lnet/minecraft/nbt/NbtElement; - public final fun get (IB)Ljava/lang/Object; - public final fun getCompoundTagAt (I)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagCompound; - public final fun getDoubleAt (I)Ljava/util/Optional; - public final fun getFloatAt (I)Ljava/util/Optional; - public final fun getIntArrayAt (I)[I - public final fun getIntAt (I)Ljava/util/Optional; - public final fun getListAt (I)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun getLongArrayAt (I)[J - public synthetic fun getMcValue ()Ljava/lang/Object; - public synthetic fun getMcValue ()Lnet/minecraft/nbt/NbtElement; - public fun getMcValue ()Lnet/minecraft/nbt/NbtList; - public final fun getShortAt (I)Ljava/util/Optional; - public final fun getStringTagAt (I)Ljava/lang/String; - public final fun getTagCount ()I - public final fun insertTag (ILcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun insertTag (ILnet/minecraft/nbt/NbtElement;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun removeTag (I)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTBase; - public final fun set (ILcom/chattriggers/ctjs/api/inventory/nbt/NBTBase;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun set (ILnet/minecraft/nbt/NbtElement;)Lcom/chattriggers/ctjs/api/inventory/nbt/NBTTagList; - public final fun toArray ()Lorg/mozilla/javascript/NativeArray; -} - -public final class com/chattriggers/ctjs/api/message/Chat { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/message/Chat; - public static final fun sendGradientMsg (Ljava/lang/String;II[Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/message/ChatLib { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/message/ChatLib; - public static final fun actionBar (Ljava/lang/Object;)V - public static final fun addColor (Ljava/lang/String;)Ljava/lang/String; - public static final fun addToSentMessageHistory (ILjava/lang/String;)V - public static final fun addToSentMessageHistory (Ljava/lang/String;)V - public static synthetic fun addToSentMessageHistory$default (ILjava/lang/String;ILjava/lang/Object;)V - public static final fun chat (Ljava/lang/Object;)V - public static final fun clearChat ()V - public static final fun command (Ljava/lang/String;)V - public static final fun command (Ljava/lang/String;Z)V - public static synthetic fun command$default (Ljava/lang/String;ZILjava/lang/Object;)V - public static final fun copyToClipboard (Ljava/lang/String;)V - public static final fun deleteChat (I)V - public static final fun deleteChat (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun deleteChat (Ljava/lang/String;)V - public static final fun deleteChat (Lkotlin/jvm/functions/Function1;)V - public static final fun deleteChat (Lorg/mozilla/javascript/regexp/NativeRegExp;)V - public static final fun editChat (I[Ljava/lang/Object;)V - public static final fun editChat (Lcom/chattriggers/ctjs/api/message/TextComponent;[Ljava/lang/Object;)V - public static final fun editChat (Ljava/lang/String;[Ljava/lang/Object;)V - public static final fun editChat (Lkotlin/jvm/functions/Function1;[Ljava/lang/Object;)V - public static final fun editChat (Lorg/mozilla/javascript/regexp/NativeRegExp;[Ljava/lang/Object;)V - public static final fun getCenteredText (Ljava/lang/String;)Ljava/lang/String; - public static final fun getChatBreak ()Ljava/lang/String; - public static final fun getChatBreak (Ljava/lang/String;)Ljava/lang/String; - public static synthetic fun getChatBreak$default (Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/String; - public static final fun getChatLines ()Ljava/util/List; - public static final fun getChatWidth ()I - public final fun onChatHudClearChat$ctjs ()V - public final fun onChatHudLineRemoved$ctjs (Lnet/minecraft/client/gui/hud/ChatHudLine;)V - public static final fun removeFormatting (Ljava/lang/String;)Ljava/lang/String; - public static final fun replaceFormatting (Ljava/lang/String;)Ljava/lang/String; - public static final fun say (Ljava/lang/String;)Lkotlin/Unit; - public final fun sendMessageWithId$ctjs (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun simulateChat (Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/message/TextComponent : java/lang/Iterable, kotlin/jvm/internal/markers/KMappedMarker, net/minecraft/text/Text { - public static final field Companion Lcom/chattriggers/ctjs/api/message/TextComponent$Companion; - public fun ()V - public fun ([Ljava/lang/Object;)V - public final fun actionBar ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public fun asOrderedText ()Lnet/minecraft/text/OrderedText; - public final fun chat ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun contains (Lorg/mozilla/javascript/NativeObject;)Z - public final fun containsAll (Ljava/util/Collection;)Z - public final fun delete ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun edit (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun edit ([Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun get (I)Lorg/mozilla/javascript/NativeObject; - public final fun getChatLineId ()I - public fun getContent ()Lnet/minecraft/text/TextContent; - public final fun getFormattedText ()Ljava/lang/String; - public fun getSiblings ()Ljava/util/List; - public final fun getSize ()I - public fun getString ()Ljava/lang/String; - public fun getStyle ()Lnet/minecraft/text/Style; - public final fun getUnformattedText ()Ljava/lang/String; - public final fun indexOf (Lorg/mozilla/javascript/NativeObject;)I - public final fun isEmpty ()Z - public final fun isRecursive ()Z - public fun iterator ()Ljava/util/Iterator; - public final fun toMutableText$ctjs ()Lnet/minecraft/text/MutableText; - public fun toString ()Ljava/lang/String; - public final fun withChatLineId ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun withChatLineId (I)Lcom/chattriggers/ctjs/api/message/TextComponent; - public static synthetic fun withChatLineId$default (Lcom/chattriggers/ctjs/api/message/TextComponent;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun withRecursive ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun withRecursive (Z)Lcom/chattriggers/ctjs/api/message/TextComponent; - public static synthetic fun withRecursive$default (Lcom/chattriggers/ctjs/api/message/TextComponent;ZILjava/lang/Object;)Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun withText (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun withTextAt (ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun withoutTextAt (I)Lcom/chattriggers/ctjs/api/message/TextComponent; -} - -public final class com/chattriggers/ctjs/api/message/TextComponent$Companion { - public final fun jsObjectToStyle$ctjs (Lorg/mozilla/javascript/NativeObject;)Lnet/minecraft/text/Style; -} - -public final class com/chattriggers/ctjs/api/render/Book { - public fun ()V - public final fun addPage (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/render/Book; - public final fun addPage (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Book; - public final fun display ()V - public final fun display (I)V - public static synthetic fun display$default (Lcom/chattriggers/ctjs/api/render/Book;IILjava/lang/Object;)V - public final fun getCurrentPage ()I - public final fun insertPage (ILcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/render/Book; - public final fun insertPage (ILjava/lang/String;)Lcom/chattriggers/ctjs/api/render/Book; - public final fun isOpen ()Z - public final fun setPage (ILcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/render/Book; - public final fun setPage (ILjava/lang/String;)Lcom/chattriggers/ctjs/api/render/Book; -} - -public final class com/chattriggers/ctjs/api/render/CTPlayerRenderer : net/minecraft/client/render/entity/PlayerEntityRenderer { - public fun (Lnet/minecraft/client/render/entity/EntityRendererFactory$Context;Z)V - public final fun getShowArmor ()Z - public final fun getShowArrows ()Z - public final fun getShowCape ()Z - public final fun getShowElytra ()Z - public final fun getShowHeldItem ()Z - public final fun getShowNametag ()Z - public final fun getShowParrot ()Z - public final fun getShowStingers ()Z - public synthetic fun renderLabelIfPresent (Lnet/minecraft/client/render/entity/state/EntityRenderState;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/render/state/CameraRenderState;)V - public final fun setOptions (ZZZZZZZZ)V - public static synthetic fun setOptions$default (Lcom/chattriggers/ctjs/api/render/CTPlayerRenderer;ZZZZZZZZILjava/lang/Object;)V - public final fun setShowArmor (Z)V - public final fun setShowArrows (Z)V - public final fun setShowCape (Z)V - public final fun setShowElytra (Z)V - public final fun setShowHeldItem (Z)V - public final fun setShowNametag (Z)V - public final fun setShowParrot (Z)V - public final fun setShowStingers (Z)V -} - -public final class com/chattriggers/ctjs/api/render/Display { - public fun ()V - public fun (Lorg/mozilla/javascript/NativeObject;)V - public final fun addLine (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Display; - public final fun addLines ([Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Display; - public final fun clearLines ()Lcom/chattriggers/ctjs/api/render/Display; - public final fun draw (Lnet/minecraft/client/gui/DrawContext;)V - public final fun getAlign ()Lcom/chattriggers/ctjs/api/render/Text$Align; - public final fun getBackground ()Lcom/chattriggers/ctjs/api/render/Display$Background; - public final fun getBackgroundColor ()J - public final fun getHeight ()I - public final fun getLine (I)Lcom/chattriggers/ctjs/api/render/Text; - public final fun getLines ()Ljava/util/List; - public final fun getMinWidth ()I - public final fun getOrder ()Lcom/chattriggers/ctjs/api/render/Display$Order; - public final fun getTextColor ()J - public final fun getWidth ()I - public final fun getX ()I - public final fun getY ()I - public final fun removeLine (I)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setAlign (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setBackground (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setBackgroundColor (J)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setLine (ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setLines (Ljava/util/List;)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setMinWidth (I)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setOrder (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setTextColor (J)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setX (I)Lcom/chattriggers/ctjs/api/render/Display; - public final fun setY (I)Lcom/chattriggers/ctjs/api/render/Display; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/render/Display$Background : java/lang/Enum { - public static final field FULL Lcom/chattriggers/ctjs/api/render/Display$Background; - public static final field NONE Lcom/chattriggers/ctjs/api/render/Display$Background; - public static final field PER_LINE Lcom/chattriggers/ctjs/api/render/Display$Background; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Display$Background; - public static fun values ()[Lcom/chattriggers/ctjs/api/render/Display$Background; -} - -public final class com/chattriggers/ctjs/api/render/Display$Order : java/lang/Enum { - public static final field NORMAL Lcom/chattriggers/ctjs/api/render/Display$Order; - public static final field REVERSED Lcom/chattriggers/ctjs/api/render/Display$Order; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Display$Order; - public static fun values ()[Lcom/chattriggers/ctjs/api/render/Display$Order; -} - -public final class com/chattriggers/ctjs/api/render/DrawContextHolder { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/DrawContextHolder; - public static final fun getCurrentContext ()Lnet/minecraft/client/gui/DrawContext; - public static final fun setCurrentContext (Lnet/minecraft/client/gui/DrawContext;)V -} - -public final class com/chattriggers/ctjs/api/render/Font { - public fun (Ljava/lang/String;Ljava/io/InputStream;)V - public fun (Ljava/lang/String;Ljava/lang/String;)V - public final fun buffer ()Ljava/nio/ByteBuffer; - public fun equals (Ljava/lang/Object;)Z - public final fun getName ()Ljava/lang/String; - public fun hashCode ()I -} - -public final class com/chattriggers/ctjs/api/render/Gui : gg/essential/universal/UScreen { - public fun ()V - public fun (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public synthetic fun (Lcom/chattriggers/ctjs/api/message/TextComponent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun addButton (IIIILcom/chattriggers/ctjs/api/message/TextComponent;)I - public final fun addButton (IIIILjava/lang/String;)I - public final fun addButton (IIILcom/chattriggers/ctjs/api/message/TextComponent;)I - public final fun addButton (IILcom/chattriggers/ctjs/api/message/TextComponent;)I - public final fun addButton (Lnet/minecraft/client/gui/widget/ButtonWidget;)I - public static synthetic fun addButton$default (Lcom/chattriggers/ctjs/api/render/Gui;IIIILcom/chattriggers/ctjs/api/message/TextComponent;ILjava/lang/Object;)I - public static synthetic fun addButton$default (Lcom/chattriggers/ctjs/api/render/Gui;IIIILjava/lang/String;ILjava/lang/Object;)I - public final fun clearButtons ()Lcom/chattriggers/ctjs/api/render/Gui; - public fun close ()V - public final fun getButtonEnabled (I)Z - public final fun getButtonHeight (I)I - public final fun getButtonVisibility (I)Z - public final fun getButtonWidth (I)I - public final fun getButtonX (I)I - public final fun getButtonY (I)I - public fun initScreen (II)V - public final fun isOpen ()Z - public fun onDrawScreen (Lgg/essential/universal/UMatrixStack;IIF)V - public fun onKeyPressed (ICLgg/essential/universal/UKeyboard$Modifiers;)V - public fun onMouseClicked (DDI)V - public fun onMouseDragged (DDIJ)V - public fun onMouseReleased (DDI)V - public fun onScreenClose ()V - public final fun open ()V - public final fun registerActionPerformed (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerClicked (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerClosed (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerDraw (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerKeyTyped (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerMouseDragged (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerMouseReleased (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerOpened (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun registerScrolled (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun removeButton (I)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonEnabled (IZ)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonHeight (II)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonLoc (III)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonText (ILcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonText (ILjava/lang/String;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonVisibility (IZ)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonWidth (II)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonX (II)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setButtonY (II)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setDoesPauseGame (Z)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setTooltip (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/render/Gui; - public final fun setTooltip (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Gui; - public fun shouldPause ()Z - public final fun unregisterActionPerformed ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterClicked ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterClosed ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterDraw ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterKeyTyped ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterMouseDragged ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterMouseReleased ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterOpened ()Lcom/chattriggers/ctjs/api/render/Gui; - public final fun unregisterScrolled ()Lcom/chattriggers/ctjs/api/render/Gui; -} - -public final class com/chattriggers/ctjs/api/render/Image { - public static final field Companion Lcom/chattriggers/ctjs/api/render/Image$Companion; - public fun (Ljava/awt/image/BufferedImage;)V - public final fun destroy ()V - public final fun draw (FF)Lcom/chattriggers/ctjs/api/render/Image; - public final fun draw (FFLjava/lang/Float;)Lcom/chattriggers/ctjs/api/render/Image; - public final fun draw (FFLjava/lang/Float;Ljava/lang/Float;)Lcom/chattriggers/ctjs/api/render/Image; - public static synthetic fun draw$default (Lcom/chattriggers/ctjs/api/render/Image;FFLjava/lang/Float;Ljava/lang/Float;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Image; - public static final fun fromAsset (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public static final fun fromFile (Ljava/io/File;)Lcom/chattriggers/ctjs/api/render/Image; - public static final fun fromFile (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public static final fun fromUrl (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public static final fun fromUrl (Ljava/lang/String;Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public final fun getIdOrRegister$ctjs ()Lnet/minecraft/util/Identifier; - public final fun getImage ()Ljava/awt/image/BufferedImage; - public final fun getTexture ()Lnet/minecraft/client/texture/NativeImageBackedTexture; - public final fun getTextureHeight ()I - public final fun getTextureWidth ()I - public final fun setImage (Ljava/awt/image/BufferedImage;)V -} - -public final class com/chattriggers/ctjs/api/render/Image$Companion { - public final fun fromAsset (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public final fun fromFile (Ljava/io/File;)Lcom/chattriggers/ctjs/api/render/Image; - public final fun fromFile (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public final fun fromUrl (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public final fun fromUrl (Ljava/lang/String;Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Image; - public static synthetic fun fromUrl$default (Lcom/chattriggers/ctjs/api/render/Image$Companion;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Image; -} - -public final class com/chattriggers/ctjs/api/render/LegacyPipelineBuilder { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun begin (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet;)Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public static synthetic fun begin$default (Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder;Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun build ()Lcom/mojang/blaze3d/pipeline/RenderPipeline; - public final fun disableBlend ()Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun disableCull ()Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun disableDepth ()Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun enableCull ()Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun enableDepth ()Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun enabledBlend ()Lcom/chattriggers/ctjs/api/render/LegacyPipelineBuilder; - public final fun layer ()Lnet/minecraft/client/render/RenderLayer; - public final fun state ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/render/NVGRenderer { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/NVGRenderer; - public static field vg J - public static final fun beginFrame (FF)V - public static final fun clearImageCache ()V - public static final fun destroy ()V - public static final fun drawCheckerboard (FFFFF)V - public static final fun drawCheckerboard (FFFFFF)V - public static synthetic fun drawCheckerboard$default (FFFFFFILjava/lang/Object;)V - public static final fun drawCircle (FFFI)V - public static final fun drawDropShadow (FFFFFFFI)V - public static final fun drawGLTexture (IIIFFFF)V - public static final fun drawGLTexture (IIIFFFFF)V - public static final fun drawGLTexture (IIIFFFFFF)V - public static synthetic fun drawGLTexture$default (IIIFFFFFFILjava/lang/Object;)V - public static final fun drawGLTextureRegion (IIIIIIIFFFF)V - public static final fun drawGLTextureRegion (IIIIIIIFFFFF)V - public static final fun drawGLTextureRegion (IIIIIIIFFFFFF)V - public static synthetic fun drawGLTextureRegion$default (IIIIIIIFFFFFFILjava/lang/Object;)V - public static final fun drawGif (Ljava/lang/String;FFFFI)V - public static final fun drawGif (Ljava/lang/String;FFFFIF)V - public static final fun drawGif (Ljava/lang/String;FFFFIFF)V - public static synthetic fun drawGif$default (Ljava/lang/String;FFFFIFFILjava/lang/Object;)V - public static final fun drawGradientRect (FFFFIILjava/lang/Object;)V - public static final fun drawGradientRect (FFFFIILjava/lang/Object;F)V - public static synthetic fun drawGradientRect$default (FFFFIILjava/lang/Object;FILjava/lang/Object;)V - public static final fun drawHollowGradientRect (FFFFFIILjava/lang/Object;)V - public static final fun drawHollowGradientRect (FFFFFIILjava/lang/Object;F)V - public static synthetic fun drawHollowGradientRect$default (FFFFFIILjava/lang/Object;FILjava/lang/Object;)V - public static final fun drawHollowRect (FFFFFI)V - public static final fun drawHollowRect (FFFFFIF)V - public static synthetic fun drawHollowRect$default (FFFFFIFILjava/lang/Object;)V - public static final fun drawHueBar (FFFFF)V - public static final fun drawImage (Ljava/lang/String;FFFF)V - public static final fun drawImage (Ljava/lang/String;FFFFF)V - public static final fun drawImage (Ljava/lang/String;FFFFFF)V - public static synthetic fun drawImage$default (Ljava/lang/String;FFFFFFILjava/lang/Object;)V - public static final fun drawImageFromUrl (Ljava/lang/String;FFFF)V - public static final fun drawImageFromUrl (Ljava/lang/String;FFFFF)V - public static final fun drawImageFromUrl (Ljava/lang/String;FFFFFF)V - public static synthetic fun drawImageFromUrl$default (Ljava/lang/String;FFFFFFILjava/lang/Object;)V - public static final fun drawLine (FFFFFI)V - public static final fun drawRect (FFFFI)V - public static final fun drawRoundedRect (FFFFFI)V - public static final fun drawRoundedRectVaried (FFFFIFFFF)V - public static final fun endFrame ()V - public static final fun getCacheStats ()Ljava/lang/String; - public final fun getDefaultFont ()Lcom/chattriggers/ctjs/api/render/Font; - public static final fun globalAlpha (F)V - public static final fun invalidateGLTexture (I)V - public static final fun isImageLoaded (Ljava/lang/String;)Z - public static final fun linearGradient (FFFFII)V - public static final fun loadGif (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/NVGRenderer$GifData; - public static final fun loadImage (Ljava/lang/String;)Ljava/lang/String; - public static final fun popScissor ()V - public static final fun pushScissor (FFFF)V - public static final fun registerV5Render (Ljava/lang/Runnable;)V - public static final fun resetScissor ()V - public static final fun restore ()V - public static final fun rotate (F)V - public static final fun runDrawables ()V - public static final fun save ()V - public static final fun scale (FF)V - public static final fun scissor (FFFF)V - public static final fun setGlobalCompositeOperation (I)V - public static final fun text (Ljava/lang/String;FFFII)V - public static final fun text (Ljava/lang/String;FFFILcom/chattriggers/ctjs/api/render/Font;I)V - public static synthetic fun text$default (Ljava/lang/String;FFFILcom/chattriggers/ctjs/api/render/Font;IILjava/lang/Object;)V - public static final fun textWidth (Ljava/lang/String;F)F - public static final fun textWidth (Ljava/lang/String;FLcom/chattriggers/ctjs/api/render/Font;)F - public static synthetic fun textWidth$default (Ljava/lang/String;FLcom/chattriggers/ctjs/api/render/Font;ILjava/lang/Object;)F - public static final fun translate (FF)V - public static final fun unloadGif (Ljava/lang/String;)V - public static final fun unloadImage (Ljava/lang/String;)V - public static final fun unregisterV5Render (Ljava/lang/Runnable;)V -} - -public final class com/chattriggers/ctjs/api/render/NVGRenderer$GifData { - public fun (III[I)V - public final fun component1 ()I - public final fun component2 ()I - public final fun component3 ()I - public final fun component4 ()[I - public final fun copy (III[I)Lcom/chattriggers/ctjs/api/render/NVGRenderer$GifData; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/render/NVGRenderer$GifData;III[IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/NVGRenderer$GifData; - public fun equals (Ljava/lang/Object;)Z - public final fun getDelays ()[I - public final fun getFrameCount ()I - public final fun getHeight ()I - public final fun getWidth ()I - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/render/Rectangle { - public fun (JFFFF)V - public final fun draw ()Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun getColor ()J - public final fun getHeight ()F - public final fun getOutline ()Z - public final fun getOutlineColor ()J - public final fun getShadowColor ()J - public final fun getShadowOffset ()Lcom/chattriggers/ctjs/api/vec/Vec2f; - public final fun getShadowOffsetX ()F - public final fun getShadowOffsetY ()F - public final fun getThickness ()F - public final fun getWidth ()F - public final fun getX ()F - public final fun getY ()F - public final fun isShadow ()Z - public final fun setColor (J)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setHeight (F)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setOutline (JF)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setOutline (Z)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setOutlineColor (J)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setShadow (JFF)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setShadow (Z)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setShadowColor (J)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setShadowOffset (FF)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setShadowOffsetX (F)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setShadowOffsetY (F)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setThickness (F)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setWidth (F)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setX (F)Lcom/chattriggers/ctjs/api/render/Rectangle; - public final fun setY (F)Lcom/chattriggers/ctjs/api/render/Rectangle; -} - -public final class com/chattriggers/ctjs/api/render/RenderLayers { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/RenderLayers; - public static final field LINE_LIST Lnet/minecraft/client/render/RenderLayer; - public static final field LINE_LIST_ESP Lnet/minecraft/client/render/RenderLayer; - public static final field TRIANGLE_STRIP Lnet/minecraft/client/render/RenderLayer; - public static final field TRIANGLE_STRIP_ESP Lnet/minecraft/client/render/RenderLayer; -} - -public final class com/chattriggers/ctjs/api/render/RenderPipelines { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/RenderPipelines; - public static final field LINE_LIST Lcom/mojang/blaze3d/pipeline/RenderPipeline; - public static final field LINE_LIST_ESP Lcom/mojang/blaze3d/pipeline/RenderPipeline; - public static final field TRIANGLE_STRIP Lcom/mojang/blaze3d/pipeline/RenderPipeline; - public static final field TRIANGLE_STRIP_ESP Lcom/mojang/blaze3d/pipeline/RenderPipeline; -} - -public final class com/chattriggers/ctjs/api/render/RenderUtils { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/RenderUtils; - public static final fun drawBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;F)V - public static final fun drawBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZ)V - public static synthetic fun drawBox$default (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZILjava/lang/Object;)V - public static final fun drawFilledBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawFilledBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;Z)V - public static final fun drawFilledBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawFilledBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;Z)V - public static synthetic fun drawFilledBox$default (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;ZILjava/lang/Object;)V - public static synthetic fun drawFilledBox$default (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;ZILjava/lang/Object;)V - public static final fun drawHitbox (Lnet/minecraft/entity/Entity;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawHitbox (Lnet/minecraft/entity/Entity;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;F)V - public static final fun drawHitbox (Lnet/minecraft/entity/Entity;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZ)V - public static synthetic fun drawHitbox$default (Lnet/minecraft/entity/Entity;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZILjava/lang/Object;)V - public static final fun drawLine (Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawLine (Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;F)V - public static final fun drawLine (Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZ)V - public static synthetic fun drawLine$default (Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZILjava/lang/Object;)V - public static final fun drawSizedBox (Lnet/minecraft/util/math/Vec3d;DDDLcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawSizedBox (Lnet/minecraft/util/math/Vec3d;DDDLcom/chattriggers/ctjs/api/render/RenderUtils$Color;Z)V - public static final fun drawSizedBox (Lnet/minecraft/util/math/Vec3d;DDDLcom/chattriggers/ctjs/api/render/RenderUtils$Color;ZF)V - public static final fun drawSizedBox (Lnet/minecraft/util/math/Vec3d;DDDLcom/chattriggers/ctjs/api/render/RenderUtils$Color;ZFZ)V - public static synthetic fun drawSizedBox$default (Lnet/minecraft/util/math/Vec3d;DDDLcom/chattriggers/ctjs/api/render/RenderUtils$Color;ZFZILjava/lang/Object;)V - public static final fun drawStyledBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawStyledBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;F)V - public static final fun drawStyledBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZ)V - public static synthetic fun drawStyledBox$default (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZILjava/lang/Object;)V - public static final fun drawText (Ljava/lang/String;Lnet/minecraft/util/math/Vec3d;)V - public static final fun drawText (Ljava/lang/String;Lnet/minecraft/util/math/Vec3d;F)V - public static final fun drawText (Ljava/lang/String;Lnet/minecraft/util/math/Vec3d;FZ)V - public static final fun drawText (Ljava/lang/String;Lnet/minecraft/util/math/Vec3d;FZZ)V - public static final fun drawText (Ljava/lang/String;Lnet/minecraft/util/math/Vec3d;FZZZ)V - public static final fun drawText (Ljava/lang/String;Lnet/minecraft/util/math/Vec3d;FZZZZ)V - public static synthetic fun drawText$default (Ljava/lang/String;Lnet/minecraft/util/math/Vec3d;FZZZZILjava/lang/Object;)V - public static final fun drawTracer (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawTracer (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;F)V - public static final fun drawTracer (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZ)V - public static synthetic fun drawTracer$default (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZILjava/lang/Object;)V - public static final fun drawWireFrameBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawWireFrameBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;F)V - public static final fun drawWireFrameBox (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZ)V - public static final fun drawWireFrameBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;)V - public static final fun drawWireFrameBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;F)V - public static final fun drawWireFrameBox (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZ)V - public static synthetic fun drawWireFrameBox$default (Lnet/minecraft/util/math/Box;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZILjava/lang/Object;)V - public static synthetic fun drawWireFrameBox$default (Lnet/minecraft/util/math/Vec3d;Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;FZILjava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/render/RenderUtils$Color { - public fun (IIII)V - public final fun component1 ()I - public final fun component2 ()I - public final fun component3 ()I - public final fun component4 ()I - public final fun copy (IIII)Lcom/chattriggers/ctjs/api/render/RenderUtils$Color; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/render/RenderUtils$Color;IIIIILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/RenderUtils$Color; - public fun equals (Ljava/lang/Object;)Z - public final fun getA ()I - public final fun getAf ()F - public final fun getB ()I - public final fun getBf ()F - public final fun getG ()I - public final fun getGf ()F - public final fun getPacked ()I - public final fun getR ()I - public final fun getRf ()F - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/render/Renderer { - public static final field AQUA J - public static final field BLACK J - public static final field BLUE J - public static final field DARK_AQUA J - public static final field DARK_BLUE J - public static final field DARK_GRAY J - public static final field DARK_GREEN J - public static final field DARK_PURPLE J - public static final field DARK_RED J - public static final field GOLD J - public static final field GRAY J - public static final field GREEN J - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/Renderer; - public static final field LIGHT_PURPLE J - public static final field RED J - public static final field WHITE J - public static final field YELLOW J - public static field colorized Ljava/lang/Long; - public static field matrixStack Lgg/essential/universal/UMatrixStack; - public static final field screen Lcom/chattriggers/ctjs/api/render/Renderer$ScreenWrapper; - public static final fun begin ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun begin (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun begin (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun begin (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun begin$default (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun bindTexture (Lcom/chattriggers/ctjs/api/render/Image;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun bindTexture (Lcom/chattriggers/ctjs/api/render/Image;I)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun bindTexture$default (Lcom/chattriggers/ctjs/api/render/Image;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun blendFunc (I)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun color (FFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun color (FFFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun color (I)J - public static final fun color (III)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun color (IIII)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun color (J)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun color$default (FFFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun color$default (IIIIILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun colorize (FFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun colorize (FFFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun colorize (III)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun colorize (IIII)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun colorize$default (FFFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun colorize$default (IIIIILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun deleteTexture (Lcom/chattriggers/ctjs/api/render/Image;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun depthFunc (I)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun depthMask (Z)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun disableBlend ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun disableCull ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun disableDepth ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun disableLighting ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun draw ()V - public static final fun drawCircle (JFFFI)V - public static final fun drawImage (Lcom/chattriggers/ctjs/api/render/Image;FFFF)V - public static final fun drawLine (JFFFFF)V - public static final fun drawPlayer (Lorg/mozilla/javascript/NativeObject;)V - public static final fun drawRect (JFFFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun drawString (Ljava/lang/String;FF)V - public static final fun drawString (Ljava/lang/String;FFJ)V - public static final fun drawString (Ljava/lang/String;FFJZ)V - public static synthetic fun drawString$default (Ljava/lang/String;FFJZILjava/lang/Object;)V - public static final fun drawStringWithShadow (Ljava/lang/String;FF)V - public static final fun drawStringWithShadow (Ljava/lang/String;FFJ)V - public static synthetic fun drawStringWithShadow$default (Ljava/lang/String;FFJILjava/lang/Object;)V - public static final fun enableBlend ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun enableCull ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun enableDepth ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun enableLighting ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun fixAlpha (J)J - public static final fun getColor (III)J - public static final fun getColor (IIII)J - public static synthetic fun getColor$default (IIIIILjava/lang/Object;)J - public static final fun getFontRenderer ()Lnet/minecraft/client/font/TextRenderer; - public final fun getMatrixPushCounter$ctjs ()I - public final fun getMatrixStack$ctjs ()Lgg/essential/universal/UMatrixStack; - public static final fun getPartialTicks ()F - public static final fun getRainbow (F)J - public static final fun getRainbow (FF)J - public static synthetic fun getRainbow$default (FFILjava/lang/Object;)J - public static final fun getRainbowColors (F)[I - public static final fun getRainbowColors (FF)[I - public static synthetic fun getRainbowColors$default (FFILjava/lang/Object;)[I - public static final fun getRenderManager ()Lnet/minecraft/client/render/WorldRenderer; - public static final fun getRenderPos (FFF)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public static final fun getStringWidth (Ljava/lang/String;)I - public static final fun initializePlayerRenderers$ctjs (Lnet/minecraft/client/render/entity/EntityRendererFactory$Context;)V - public static final fun light (II)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun lineWidth (F)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun multiply (Lorg/joml/Quaternionf;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun normal (FFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun overlay (II)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun popMatrix ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun pos (FF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun pos (FFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun pos$default (FFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun pushMatrix ()Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun pushMatrix (Lgg/essential/universal/UMatrixStack;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun pushMatrix$default (Lgg/essential/universal/UMatrixStack;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun rotate (F)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun rotate (FF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun rotate (FFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun rotate (FFFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun rotate$default (FFFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun scale (F)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun scale (FF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun scale (FFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun scale$default (FFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public final fun setMatrixPushCounter$ctjs (I)V - public final fun setMatrixStack$ctjs (Lgg/essential/universal/UMatrixStack;)V - public static final fun setPartialTicks$ctjs (F)V - public final fun splitText$ctjs (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Renderer$TextLines; - public static final fun tex (FF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun translate (FF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun translate (FFF)Lcom/chattriggers/ctjs/api/render/Renderer; - public static synthetic fun translate$default (FFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer; - public static final fun tryBlendFuncSeparate (IIII)Lcom/chattriggers/ctjs/api/render/Renderer; - public final fun withMatrix$ctjs (Lnet/minecraft/client/util/math/MatrixStack;FLkotlin/jvm/functions/Function0;)V - public static synthetic fun withMatrix$ctjs$default (Lcom/chattriggers/ctjs/api/render/Renderer;Lnet/minecraft/client/util/math/MatrixStack;FLkotlin/jvm/functions/Function0;ILjava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/render/Renderer$DrawMode : java/lang/Enum { - public static final field Companion Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode$Companion; - public static final field LINES Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static final field LINE_STRIP Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static final field QUADS Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static final field TRIANGLES Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static final field TRIANGLE_FAN Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static final field TRIANGLE_STRIP Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static final fun fromUC (Lgg/essential/universal/UGraphics$DrawMode;)Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun toUC ()Lgg/essential/universal/UGraphics$DrawMode; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public static fun values ()[Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; -} - -public final class com/chattriggers/ctjs/api/render/Renderer$DrawMode$Companion { - public final fun fromUC (Lgg/essential/universal/UGraphics$DrawMode;)Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; -} - -public final class com/chattriggers/ctjs/api/render/Renderer$RenderSnippet : java/lang/Enum { - public static final field ENTITY_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field GUI_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field PARTICLE_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field POSITION_COLOR_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field POSITION_TEX_COLOR_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field POST_EFFECT_PROCESSOR_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field RENDERTYPE_BEACON_BEAM_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field RENDERTYPE_CLOUDS_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field RENDERTYPE_END_PORTAL_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field RENDERTYPE_LINES_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field RENDERTYPE_OUTLINE_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field TERRAIN_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field TEXT_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static final field WEATHER_SNIPPET Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getMcSnippet ()Lcom/mojang/blaze3d/pipeline/RenderPipeline$Snippet; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; - public static fun values ()[Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet; -} - -public final class com/chattriggers/ctjs/api/render/Renderer$ScreenWrapper { - public fun ()V - public final fun getHeight ()I - public final fun getScale ()D - public final fun getWidth ()I -} - -public final class com/chattriggers/ctjs/api/render/Renderer$TextLines { - public fun (Ljava/util/List;FF)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()F - public final fun component3 ()F - public final fun copy (Ljava/util/List;FF)Lcom/chattriggers/ctjs/api/render/Renderer$TextLines; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/render/Renderer$TextLines;Ljava/util/List;FFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer$TextLines; - public fun equals (Ljava/lang/Object;)Z - public final fun getHeight ()F - public final fun getLines ()Ljava/util/List; - public final fun getWidth ()F - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/render/Renderer$VertexFormat : java/lang/Enum { - public static final field Companion Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat$Companion; - public static final field LINES Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION_COLOR Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION_COLOR_TEXTURE_LIGHT Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION_TEXTURE Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION_TEXTURE_COLOR Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION_TEXTURE_COLOR_LIGHT Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION_TEXTURE_COLOR_NORMAL Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final field POSITION_TEXTURE_LIGHT_COLOR Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static final fun fromMC (Lcom/mojang/blaze3d/vertex/VertexFormat;)Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun toMC ()Lcom/mojang/blaze3d/vertex/VertexFormat; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; - public static fun values ()[Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; -} - -public final class com/chattriggers/ctjs/api/render/Renderer$VertexFormat$Companion { - public final fun fromMC (Lcom/mojang/blaze3d/vertex/VertexFormat;)Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat; -} - -public final class com/chattriggers/ctjs/api/render/Renderer3d { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun begin ()Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun begin (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun begin (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun begin (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet;)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static synthetic fun begin$default (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;Lcom/chattriggers/ctjs/api/render/Renderer$VertexFormat;Lcom/chattriggers/ctjs/api/render/Renderer$RenderSnippet;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun color (FFF)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun color (FFFF)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun color (III)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun color (IIII)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun color (J)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static synthetic fun color$default (FFFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static synthetic fun color$default (IIIIILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun draw ()V - public static final fun drawLine (JFFFFFFF)V - public static final fun drawString (Ljava/lang/String;FFF)V - public static final fun drawString (Ljava/lang/String;FFFJ)V - public static final fun drawString (Ljava/lang/String;FFFJZ)V - public static final fun drawString (Ljava/lang/String;FFFJZF)V - public static final fun drawString (Ljava/lang/String;FFFJZFZ)V - public static final fun drawString (Ljava/lang/String;FFFJZFZZ)V - public static final fun drawString (Ljava/lang/String;FFFJZFZZZ)V - public static final fun drawString (Lorg/mozilla/javascript/NativeObject;)V - public static synthetic fun drawString$default (Ljava/lang/String;FFFJZFZZZILjava/lang/Object;)V - public static final fun light (II)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun lineWidth (F)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun normal (FFF)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun overlay (II)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun pos (FFF)Lcom/chattriggers/ctjs/api/render/Renderer3d; - public static final fun tex (FF)Lcom/chattriggers/ctjs/api/render/Renderer3d; -} - -public final class com/chattriggers/ctjs/api/render/ShaderUtils { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/render/ShaderUtils; - public static final fun currentBackgroundShaderName ()Ljava/lang/String; - public static final fun cycleBackgroundShader ()Ljava/lang/String; - public static final fun renderBackground (DD)Z -} - -public final class com/chattriggers/ctjs/api/render/Shape { - public fun (J)V - public final fun addVertex (FF)Lcom/chattriggers/ctjs/api/render/Shape; - public final fun clearVertices ()Lcom/chattriggers/ctjs/api/render/Shape; - public final fun clone ()Lcom/chattriggers/ctjs/api/render/Shape; - public final fun copy ()Lcom/chattriggers/ctjs/api/render/Shape; - public final fun draw ()Lcom/chattriggers/ctjs/api/render/Shape; - public final fun getColor ()J - public final fun getDrawMode ()Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode; - public final fun getVertexes ()Ljava/util/List; - public final fun insertVertex (IFF)Lcom/chattriggers/ctjs/api/render/Shape; - public final fun removeVertex (I)Lcom/chattriggers/ctjs/api/render/Shape; - public final fun setCircle (FFFI)Lcom/chattriggers/ctjs/api/render/Shape; - public final fun setColor (J)Lcom/chattriggers/ctjs/api/render/Shape; - public final fun setDrawMode (Lcom/chattriggers/ctjs/api/render/Renderer$DrawMode;)Lcom/chattriggers/ctjs/api/render/Shape; - public final fun setLine (FFFFF)Lcom/chattriggers/ctjs/api/render/Shape; -} - -public final class com/chattriggers/ctjs/api/render/Text { - public fun (Ljava/lang/String;)V - public fun (Ljava/lang/String;I)V - public fun (Ljava/lang/String;II)V - public synthetic fun (Ljava/lang/String;IIILkotlin/jvm/internal/DefaultConstructorMarker;)V - public fun (Ljava/lang/String;Lorg/mozilla/javascript/NativeObject;)V - public final fun draw (Lnet/minecraft/client/gui/DrawContext;)Lcom/chattriggers/ctjs/api/render/Text; - public final fun draw (Lnet/minecraft/client/gui/DrawContext;Ljava/lang/Integer;)Lcom/chattriggers/ctjs/api/render/Text; - public final fun draw (Lnet/minecraft/client/gui/DrawContext;Ljava/lang/Integer;Ljava/lang/Integer;)Lcom/chattriggers/ctjs/api/render/Text; - public final fun draw$ctjs (Lnet/minecraft/client/gui/DrawContext;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)Lcom/chattriggers/ctjs/api/render/Text; - public static synthetic fun draw$ctjs$default (Lcom/chattriggers/ctjs/api/render/Text;Lnet/minecraft/client/gui/DrawContext;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Text; - public static synthetic fun draw$default (Lcom/chattriggers/ctjs/api/render/Text;Lnet/minecraft/client/gui/DrawContext;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Text; - public final fun exceedsMaxLines ()Z - public final fun getAlign ()Lcom/chattriggers/ctjs/api/render/Text$Align; - public final fun getBackground ()Z - public final fun getBackgroundColor ()J - public final fun getColor ()J - public final fun getFormatted ()Z - public final fun getHeight ()F - public final fun getLines ()Ljava/util/List; - public final fun getMaxLines ()I - public final fun getMaxWidth ()I - public final fun getScale ()F - public final fun getShadow ()Z - public final fun getString ()Ljava/lang/String; - public final fun getWidth ()I - public final fun getX ()I - public final fun getY ()I - public final fun setAlign (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setBackground (Z)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setBackgroundColor (J)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setColor (J)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setFormatted (Z)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setMaxLines (I)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setMaxWidth (I)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setScale (F)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setShadow (Z)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setString (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setX (I)Lcom/chattriggers/ctjs/api/render/Text; - public final fun setY (I)Lcom/chattriggers/ctjs/api/render/Text; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/render/Text$Align : java/lang/Enum { - public static final field CENTER Lcom/chattriggers/ctjs/api/render/Text$Align; - public static final field LEFT Lcom/chattriggers/ctjs/api/render/Text$Align; - public static final field RIGHT Lcom/chattriggers/ctjs/api/render/Text$Align; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/render/Text$Align; - public static fun values ()[Lcom/chattriggers/ctjs/api/render/Text$Align; -} - -public final class com/chattriggers/ctjs/api/render/Toast : net/minecraft/client/toast/Toast { - public fun (Lorg/mozilla/javascript/NativeObject;)V - public fun draw (Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/client/font/TextRenderer;J)V - public final fun getBackground ()Ljava/lang/Object; - public final fun getDescription ()Ljava/lang/Object; - public final fun getDisplayTime ()J - public fun getHeight ()I - public final fun getIcon ()Ljava/lang/Object; - public final fun getTitle ()Ljava/lang/Object; - public fun getVisibility ()Lnet/minecraft/client/toast/Toast$Visibility; - public fun getWidth ()I - public final fun setBackground (Ljava/lang/Object;)V - public final fun setDescription (Ljava/lang/Object;)V - public final fun setDisplayTime (J)V - public final fun setIcon (Ljava/lang/Object;)V - public final fun setTitle (Ljava/lang/Object;)V - public final fun show ()Lcom/chattriggers/ctjs/api/render/Toast; - public fun update (Lnet/minecraft/client/toast/ToastManager;J)V -} - -public class com/chattriggers/ctjs/api/triggers/CancellableEvent { - public fun ()V - public final fun isCancelable ()Z - public final fun isCanceled ()Z - public final fun isCancellable ()Z - public final fun isCancelled ()Z - public final fun setCanceled ()V - public final fun setCanceled (Z)V - public static synthetic fun setCanceled$default (Lcom/chattriggers/ctjs/api/triggers/CancellableEvent;ZILjava/lang/Object;)V - public final fun setCancelled ()V - public final fun setCancelled (Z)V - public static synthetic fun setCancelled$default (Lcom/chattriggers/ctjs/api/triggers/CancellableEvent;ZILjava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/ChatTrigger : com/chattriggers/ctjs/api/triggers/Trigger { - public fun (Ljava/lang/Object;Lcom/chattriggers/ctjs/api/triggers/ITriggerType;)V - public final fun addParameter (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun addParameters ([Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setCaseInsensitive ()Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setChatCriteria (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setContains ()Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setCriteria (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setEnd ()Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setExact ()Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setFormatted ()V - public final fun setFormatted (Z)V - public static synthetic fun setFormatted$default (Lcom/chattriggers/ctjs/api/triggers/ChatTrigger;ZILjava/lang/Object;)V - public final fun setParameter (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setParameters ([Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public final fun setStart ()Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; - public fun trigger$ctjs ([Ljava/lang/Object;)V - public final fun triggerIfCanceled (Z)Lcom/chattriggers/ctjs/api/triggers/ChatTrigger; -} - -public final class com/chattriggers/ctjs/api/triggers/ChatTrigger$Event : com/chattriggers/ctjs/api/triggers/CancellableEvent { - public final field message Lcom/chattriggers/ctjs/api/message/TextComponent; - public fun (Lcom/chattriggers/ctjs/api/message/TextComponent;)V -} - -public abstract class com/chattriggers/ctjs/api/triggers/ClassFilterTrigger : com/chattriggers/ctjs/api/triggers/Trigger { - public synthetic fun (Ljava/lang/Object;Lcom/chattriggers/ctjs/api/triggers/ITriggerType;Ljava/lang/Class;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun setFilteredClass (Ljava/lang/Class;)Lcom/chattriggers/ctjs/api/triggers/ClassFilterTrigger; - public final fun setFilteredClasses (Ljava/util/List;)Lcom/chattriggers/ctjs/api/triggers/ClassFilterTrigger; - public fun trigger$ctjs ([Ljava/lang/Object;)V - protected abstract fun unwrap (Ljava/lang/Object;)Ljava/lang/Object; -} - -public final class com/chattriggers/ctjs/api/triggers/CommandTrigger : com/chattriggers/ctjs/api/triggers/Trigger { - public fun (Ljava/lang/Object;)V - public final fun setAliases ([Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public final fun setCommandName (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public final fun setCommandName (Ljava/lang/String;Z)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public static synthetic fun setCommandName$default (Lcom/chattriggers/ctjs/api/triggers/CommandTrigger;Ljava/lang/String;ZILjava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public final fun setName (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public final fun setName (Ljava/lang/String;Z)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public static synthetic fun setName$default (Lcom/chattriggers/ctjs/api/triggers/CommandTrigger;Ljava/lang/String;ZILjava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public final fun setTabCompletions (Lkotlin/jvm/functions/Function1;)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public final fun setTabCompletions ([Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/CommandTrigger; - public fun trigger$ctjs ([Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/CustomTriggerType : com/chattriggers/ctjs/api/triggers/ITriggerType { - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/CustomTriggerType; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/triggers/CustomTriggerType;Ljava/lang/String;ILjava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/CustomTriggerType; - public fun equals (Ljava/lang/Object;)Z - public fun getName ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; - public fun triggerAll ()V - public fun triggerAll (Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll ([Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/EventTrigger : com/chattriggers/ctjs/api/triggers/Trigger { - public fun (Ljava/lang/Object;Lcom/chattriggers/ctjs/api/triggers/ITriggerType;)V - public fun trigger$ctjs ([Ljava/lang/Object;)V - public final fun triggerIfCanceled (Z)Lcom/chattriggers/ctjs/api/triggers/EventTrigger; -} - -public abstract interface class com/chattriggers/ctjs/api/triggers/ITriggerType { - public abstract fun getName ()Ljava/lang/String; - public abstract fun triggerAll ()V - public abstract fun triggerAll (Ljava/lang/Object;)V - public abstract fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;)V - public abstract fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public abstract fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public abstract fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public abstract fun triggerAll ([Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/ITriggerType$DefaultImpls { - public static fun triggerAll (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;)V - public static fun triggerAll (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;Ljava/lang/Object;)V - public static fun triggerAll (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;Ljava/lang/Object;Ljava/lang/Object;)V - public static fun triggerAll (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public static fun triggerAll (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public static fun triggerAll (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public static fun triggerAll (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;[Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/PacketEvent { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/triggers/PacketEvent; - public static final field RECEIVE Lnet/fabricmc/fabric/api/event/Event; -} - -public abstract interface class com/chattriggers/ctjs/api/triggers/PacketEvent$ReceiveEvent { - public abstract fun trigger (Lnet/minecraft/network/packet/Packet;)V -} - -public final class com/chattriggers/ctjs/api/triggers/PacketTrigger : com/chattriggers/ctjs/api/triggers/ClassFilterTrigger { - public fun (Ljava/lang/Object;Lcom/chattriggers/ctjs/api/triggers/ITriggerType;)V - public synthetic fun unwrap (Ljava/lang/Object;)Ljava/lang/Object; -} - -public final class com/chattriggers/ctjs/api/triggers/RegularTrigger : com/chattriggers/ctjs/api/triggers/Trigger { - public fun (Ljava/lang/Object;Lcom/chattriggers/ctjs/api/triggers/ITriggerType;)V - public fun trigger$ctjs ([Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/RenderBlockEntityTrigger : com/chattriggers/ctjs/api/triggers/ClassFilterTrigger { - public fun (Ljava/lang/Object;)V - public synthetic fun unwrap (Ljava/lang/Object;)Ljava/lang/Object; -} - -public final class com/chattriggers/ctjs/api/triggers/RenderEntityTrigger : com/chattriggers/ctjs/api/triggers/ClassFilterTrigger { - public fun (Ljava/lang/Object;)V - public synthetic fun unwrap (Ljava/lang/Object;)Ljava/lang/Object; -} - -public final class com/chattriggers/ctjs/api/triggers/SoundPlayTrigger : com/chattriggers/ctjs/api/triggers/Trigger { - public fun (Ljava/lang/Object;)V - public final fun setCriteria (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/SoundPlayTrigger; - public fun trigger$ctjs ([Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/StepTrigger : com/chattriggers/ctjs/api/triggers/Trigger { - public static final field Companion Lcom/chattriggers/ctjs/api/triggers/StepTrigger$Companion; - public fun (Ljava/lang/Object;)V - public fun register ()Lcom/chattriggers/ctjs/api/triggers/Trigger; - public final fun setDelay (J)Lcom/chattriggers/ctjs/api/triggers/StepTrigger; - public final fun setFps (J)Lcom/chattriggers/ctjs/api/triggers/StepTrigger; - public fun trigger$ctjs ([Ljava/lang/Object;)V -} - -public final class com/chattriggers/ctjs/api/triggers/StepTrigger$Companion { -} - -public abstract class com/chattriggers/ctjs/api/triggers/Trigger : java/lang/Comparable { - protected fun (Ljava/lang/Object;Lcom/chattriggers/ctjs/api/triggers/ITriggerType;)V - protected final fun callMethod ([Ljava/lang/Object;)V - public fun compareTo (Lcom/chattriggers/ctjs/api/triggers/Trigger;)I - public synthetic fun compareTo (Ljava/lang/Object;)I - public final fun getMethod ()Ljava/lang/Object; - public final fun getType ()Lcom/chattriggers/ctjs/api/triggers/ITriggerType; - public final fun isRegistered ()Z - public fun register ()Lcom/chattriggers/ctjs/api/triggers/Trigger; - public final fun setMethod (Ljava/lang/Object;)V - public final fun setPriority (Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public final fun setType (Lcom/chattriggers/ctjs/api/triggers/ITriggerType;)V - public abstract fun trigger$ctjs ([Ljava/lang/Object;)V - public fun unregister ()Lcom/chattriggers/ctjs/api/triggers/Trigger; -} - -public final class com/chattriggers/ctjs/api/triggers/Trigger$Priority : java/lang/Enum { - public static final field HIGH Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority; - public static final field HIGHEST Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority; - public static final field LOW Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority; - public static final field LOWEST Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority; - public static final field NORMAL Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority; - public static fun values ()[Lcom/chattriggers/ctjs/api/triggers/Trigger$Priority; -} - -public final class com/chattriggers/ctjs/api/triggers/TriggerType : java/lang/Enum, com/chattriggers/ctjs/api/triggers/ITriggerType { - public static final field ACTION_BAR Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field BLOCK_HIGHLIGHT Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field CHAT Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field CLICKED Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field COMMAND Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field DRAGGED Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field DROP_ITEM Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field ENTITY_DAMAGE Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field ENTITY_DEATH Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GAME_LOAD Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GAME_UNLOAD Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GUI_CLOSED Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GUI_KEY Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GUI_MOUSE_CLICK Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GUI_MOUSE_DRAG Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GUI_OPENED Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field GUI_RENDER Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field ITEM_TOOLTIP Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field MESSAGE_SENT Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field OTHER Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field PACKET_RECEIVED Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field PACKET_SENT Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field PLAYER_INTERACT Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field POST_GUI_RENDER Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field POST_RENDER_WORLD Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field PRE_RENDER_WORLD Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field RENDER_BLOCK_ENTITY Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field RENDER_ENTITY Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field RENDER_OVERLAY Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field RENDER_PLAYER_LIST Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field SCROLLED Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field SERVER_CONNECT Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field SERVER_DISCONNECT Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field SOUND_PLAY Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field SPAWN_PARTICLE Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field STEP Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field TICK Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field WORLD_LOAD Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static final field WORLD_UNLOAD Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getName ()Ljava/lang/String; - public fun triggerAll ()V - public fun triggerAll (Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V - public fun triggerAll ([Ljava/lang/Object;)V - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/triggers/TriggerType; - public static fun values ()[Lcom/chattriggers/ctjs/api/triggers/TriggerType; -} - -public final class com/chattriggers/ctjs/api/vec/Vec2f { - public fun ()V - public fun (F)V - public fun (FF)V - public synthetic fun (FFILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun angleTo (Lcom/chattriggers/ctjs/api/vec/Vec2f;)F - public final fun component1 ()F - public final fun component2 ()F - public final fun copy (FF)Lcom/chattriggers/ctjs/api/vec/Vec2f; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/vec/Vec2f;FFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/vec/Vec2f; - public final fun dotProduct (Lcom/chattriggers/ctjs/api/vec/Vec2f;)F - public fun equals (Ljava/lang/Object;)Z - public final fun getX ()F - public final fun getY ()F - public fun hashCode ()I - public final fun magnitude ()F - public final fun magnitudeSquared ()F - public final fun minus (Lcom/chattriggers/ctjs/api/vec/Vec2f;)Lcom/chattriggers/ctjs/api/vec/Vec2f; - public final fun normalized ()Lcom/chattriggers/ctjs/api/vec/Vec2f; - public final fun plus (Lcom/chattriggers/ctjs/api/vec/Vec2f;)Lcom/chattriggers/ctjs/api/vec/Vec2f; - public final fun scaled (F)Lcom/chattriggers/ctjs/api/vec/Vec2f; - public final fun scaled (FF)Lcom/chattriggers/ctjs/api/vec/Vec2f; - public fun toString ()Ljava/lang/String; - public final fun translated (FF)Lcom/chattriggers/ctjs/api/vec/Vec2f; - public final fun unaryMinus ()Lcom/chattriggers/ctjs/api/vec/Vec2f; -} - -public final class com/chattriggers/ctjs/api/vec/Vec3f { - public fun ()V - public fun (F)V - public fun (FF)V - public fun (FFF)V - public synthetic fun (FFFILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun angleTo (Lcom/chattriggers/ctjs/api/vec/Vec3f;)F - public final fun component1 ()F - public final fun component2 ()F - public final fun component3 ()F - public final fun copy (FFF)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/vec/Vec3f;FFFILjava/lang/Object;)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public final fun crossProduct (Lcom/chattriggers/ctjs/api/vec/Vec3f;)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public final fun dotProduct (Lcom/chattriggers/ctjs/api/vec/Vec3f;)F - public fun equals (Ljava/lang/Object;)Z - public final fun getX ()F - public final fun getY ()F - public final fun getZ ()F - public fun hashCode ()I - public final fun magnitude ()F - public final fun magnitudeSquared ()F - public final fun minus (Lcom/chattriggers/ctjs/api/vec/Vec3f;)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public final fun normalized ()Lcom/chattriggers/ctjs/api/vec/Vec3f; - public final fun plus (Lcom/chattriggers/ctjs/api/vec/Vec3f;)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public final fun scaled (F)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public final fun scaled (FFF)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public fun toString ()Ljava/lang/String; - public final fun translated (FFF)Lcom/chattriggers/ctjs/api/vec/Vec3f; - public final fun unaryMinus ()Lcom/chattriggers/ctjs/api/vec/Vec3f; -} - -public class com/chattriggers/ctjs/api/vec/Vec3i { - public fun ()V - public fun (I)V - public fun (II)V - public fun (III)V - public synthetic fun (IIIILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun angleTo (Lcom/chattriggers/ctjs/api/vec/Vec3i;)F - public fun crossProduct (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public final fun dotProduct (Lcom/chattriggers/ctjs/api/vec/Vec3i;)I - public fun equals (Ljava/lang/Object;)Z - public final fun getX ()I - public final fun getY ()I - public final fun getZ ()I - public fun hashCode ()I - public final fun magnitude ()F - public final fun magnitudeSquared ()I - public fun minus (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public final fun normalized ()Lcom/chattriggers/ctjs/api/vec/Vec3f; - public fun plus (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun scaled (I)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun scaled (III)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun toString ()Ljava/lang/String; - public fun translated (III)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun unaryMinus ()Lcom/chattriggers/ctjs/api/vec/Vec3i; -} - -public final class com/chattriggers/ctjs/api/world/BossBars { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/BossBars; - public static final fun addBossBar (Lorg/mozilla/javascript/NativeObject;)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public static final fun clearBossBars ()V - public static final fun getBossBars ()Ljava/util/List; - public static final fun getBossBarsByName (Ljava/lang/String;)Ljava/util/List; - public static final fun removeBossBar (Lcom/chattriggers/ctjs/api/world/BossBars$BossBar;)V - public static final fun removeBossBarsByName (Ljava/lang/String;)V - public static final fun toMC ()Lnet/minecraft/client/gui/hud/BossBarHud; -} - -public final class com/chattriggers/ctjs/api/world/BossBars$BossBar : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/client/gui/hud/ClientBossBar;)V - public final fun getColor ()Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/client/gui/hud/ClientBossBar; - public final fun getName ()Ljava/lang/String; - public final fun getPercent ()F - public final fun getStyle ()Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public final fun getUUID ()Ljava/util/UUID; - public final fun hasDragonMusic ()Z - public final fun setColor (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public final fun setHasDragonMusic (Z)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public final fun setName (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public final fun setPercent (F)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public final fun setShouldDarkenSky (Z)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public final fun setShouldThickenFog (Z)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public final fun setStyle (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/world/BossBars$BossBar; - public final fun shouldDarkenSky ()Z - public final fun shouldThickenFog ()Z - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/client/gui/hud/ClientBossBar; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/world/BossBars$Color : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field BLUE Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final field Companion Lcom/chattriggers/ctjs/api/world/BossBars$Color$Companion; - public static final field GREEN Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final field PINK Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final field PURPLE Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final field RED Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final field WHITE Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final field YELLOW Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static final fun fromMC (Lnet/minecraft/entity/boss/BossBar$Color;)Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/entity/boss/BossBar$Color; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/entity/boss/BossBar$Color; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public static fun values ()[Lcom/chattriggers/ctjs/api/world/BossBars$Color; -} - -public final class com/chattriggers/ctjs/api/world/BossBars$Color$Companion { - public final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/world/BossBars$Color; - public final fun fromMC (Lnet/minecraft/entity/boss/BossBar$Color;)Lcom/chattriggers/ctjs/api/world/BossBars$Color; -} - -public final class com/chattriggers/ctjs/api/world/BossBars$Style : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/world/BossBars$Style$Companion; - public static final field ONE Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static final field SIX Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static final field TEN Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static final field TWELVE Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static final field TWENTY Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static final fun fromMC (Lnet/minecraft/entity/boss/BossBar$Style;)Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/entity/boss/BossBar$Style; - public final fun getSections ()I - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/entity/boss/BossBar$Style; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public static fun values ()[Lcom/chattriggers/ctjs/api/world/BossBars$Style; -} - -public final class com/chattriggers/ctjs/api/world/BossBars$Style$Companion { - public final fun from (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/world/BossBars$Style; - public final fun fromMC (Lnet/minecraft/entity/boss/BossBar$Style;)Lcom/chattriggers/ctjs/api/world/BossBars$Style; -} - -public final class com/chattriggers/ctjs/api/world/Chunk : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/world/chunk/Chunk;)V - public final fun getAllBlockEntities ()Ljava/util/List; - public final fun getAllBlockEntitiesOfType (Ljava/lang/Class;)Ljava/util/List; - public final fun getAllEntities ()Ljava/util/List; - public final fun getAllEntitiesOfType (Ljava/lang/Class;)Ljava/util/List; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/world/chunk/Chunk; - public final fun getMinBlockX ()I - public final fun getMinBlockZ ()I - public final fun getX ()I - public final fun getZ ()I - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/world/chunk/Chunk; -} - -public final class com/chattriggers/ctjs/api/world/PotionEffect { - public fun (Lnet/minecraft/entity/effect/StatusEffectInstance;)V - public final fun getAmbient ()Z - public final fun getAmplifier ()I - public final fun getDuration ()I - public final fun getEffect ()Lnet/minecraft/entity/effect/StatusEffectInstance; - public final fun getId ()I - public final fun getLocalizedName ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public final fun getShowsParticles ()Z - public final fun getType ()Lcom/chattriggers/ctjs/api/world/PotionEffectType; - public final fun isInfinite ()Z - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/world/PotionEffectType { - public fun (Lnet/minecraft/entity/effect/StatusEffect;)V - public final fun getCategory ()Lnet/minecraft/entity/effect/StatusEffectCategory; - public final fun getColor ()Ljava/awt/Color; - public final fun getName ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun getRawId ()I - public final fun getTranslationKey ()Ljava/lang/String; - public final fun getType ()Lnet/minecraft/entity/effect/StatusEffect; - public final fun isInstant ()Z -} - -public final class com/chattriggers/ctjs/api/world/Scoreboard { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/Scoreboard; - public static final fun addLine (ILcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun addLine (ILjava/lang/String;)V - public final fun clearCustom$ctjs ()V - public static final fun createTeam (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/entity/Team; - public final fun getCustomTitle$ctjs ()Z - public static final fun getLineByIndex (I)Lcom/chattriggers/ctjs/api/world/Scoreboard$Score; - public static final fun getLines ()Ljava/util/List; - public static final fun getLines (Z)Ljava/util/List; - public static synthetic fun getLines$default (ZILjava/lang/Object;)Ljava/util/List; - public static final fun getLinesByScore (I)Ljava/util/List; - public static final fun getScoreboard ()Lnet/minecraft/scoreboard/Scoreboard; - public static final fun getShouldRender ()Z - public static final fun getSidebar ()Lnet/minecraft/scoreboard/ScoreboardObjective; - public static final fun getTitle ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public static final fun removeIndex (I)V - public static final fun removeIndex (IZ)V - public static synthetic fun removeIndex$default (IZILjava/lang/Object;)V - public static final fun removeScores (I)V - public final fun resetCache$ctjs ()V - public final fun setCustomTitle$ctjs (Z)V - public static final fun setLine (ILcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun setLine (ILcom/chattriggers/ctjs/api/message/TextComponent;Z)V - public static final fun setLine (ILjava/lang/String;)V - public static final fun setLine (ILjava/lang/String;Z)V - public static synthetic fun setLine$default (ILcom/chattriggers/ctjs/api/message/TextComponent;ZILjava/lang/Object;)V - public static synthetic fun setLine$default (ILjava/lang/String;ZILjava/lang/Object;)V - public static final fun setShouldRender (Z)V - public static final fun setTitle (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun setTitle (Ljava/lang/String;)V - public static final fun toMC ()Lnet/minecraft/scoreboard/Scoreboard; -} - -public final class com/chattriggers/ctjs/api/world/Scoreboard$Score : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/scoreboard/ScoreAccess;)V - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/scoreboard/ScoreAccess; - public final fun getName ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun getNumberFormat ()Lnet/minecraft/scoreboard/number/NumberFormat; - public final fun getScore ()I - public final fun getTeam ()Lcom/chattriggers/ctjs/api/entity/Team; - public final fun remove ()V - public final fun setName (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/world/Scoreboard$Score; - public final fun setNumberFormat (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/world/Scoreboard$Score; - public final fun setScore (I)Lcom/chattriggers/ctjs/api/world/Scoreboard$Score; - public final fun setTeam (Lcom/chattriggers/ctjs/api/entity/Team;)Lcom/chattriggers/ctjs/api/world/Scoreboard$Score; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/scoreboard/ScoreAccess; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/world/Server { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/Server; - public static final fun getIP ()Ljava/lang/String; - public static final fun getMOTD ()Ljava/lang/String; - public static final fun getName ()Ljava/lang/String; - public static final fun getPing ()J - public static final fun isSingleplayer ()Z - public static final fun toMC ()Lnet/minecraft/client/network/ServerInfo; -} - -public final class com/chattriggers/ctjs/api/world/StructureFinder { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/StructureFinder; - public static final fun clear ()V - public static final fun getRenderBlocksArray ()[I - public static final fun shutdown ()V - public static final fun submitBlockUpdate (III)V - public static final fun submitChunkScan (II)V -} - -public final class com/chattriggers/ctjs/api/world/TabList { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/TabList; - public static final fun addName (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun addName (Lcom/chattriggers/ctjs/api/message/TextComponent;Z)V - public static final fun addName (Ljava/lang/String;)V - public static final fun addName (Ljava/lang/String;Z)V - public static synthetic fun addName$default (Lcom/chattriggers/ctjs/api/message/TextComponent;ZILjava/lang/Object;)V - public static synthetic fun addName$default (Ljava/lang/String;ZILjava/lang/Object;)V - public final fun clearCustom$ctjs ()V - public static final fun clearFooter ()V - public static final fun clearHeader ()V - public final fun getCustomFooter$ctjs ()Z - public final fun getCustomHeader$ctjs ()Z - public static final fun getFooter ()Ljava/lang/String; - public static final fun getFooterComponent ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public static final fun getHeader ()Ljava/lang/String; - public static final fun getHeaderComponent ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public static final fun getNames ()Ljava/util/List; - public static final fun getNamesByObjectives ()Ljava/util/List; - public static final fun getObjective ()Lnet/minecraft/scoreboard/ScoreboardObjective; - public static final fun getUnformattedNames ()Ljava/util/List; - public static final fun removeNames (Lcom/chattriggers/ctjs/api/message/TextComponent;)V - public static final fun removeNames (Ljava/lang/String;)V - public final fun resetCache$ctjs ()V - public final fun setCustomFooter$ctjs (Z)V - public final fun setCustomHeader$ctjs (Z)V - public static final fun setFooter (Ljava/lang/Object;)V - public static final fun setHeader (Ljava/lang/Object;)V - public static final fun toMC ()Lnet/minecraft/client/gui/hud/PlayerListHud; -} - -public final class com/chattriggers/ctjs/api/world/TabList$Name : com/chattriggers/ctjs/api/CTWrapper { - public fun (Lnet/minecraft/client/network/PlayerListEntry;)V - public final fun getLatency ()I - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/client/network/PlayerListEntry; - public final fun getName ()Lcom/chattriggers/ctjs/api/message/TextComponent; - public final fun getTeam ()Lcom/chattriggers/ctjs/api/entity/Team; - public final fun remove ()V - public final fun setLatency (I)Lcom/chattriggers/ctjs/api/world/TabList$Name; - public final fun setName (Lcom/chattriggers/ctjs/api/message/TextComponent;)Lcom/chattriggers/ctjs/api/world/TabList$Name; - public final fun setTeam (Lcom/chattriggers/ctjs/api/entity/Team;)Lcom/chattriggers/ctjs/api/world/TabList$Name; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/client/network/PlayerListEntry; - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/world/TabList$PlayerComparator : java/util/Comparator { - public fun ()V - public synthetic fun compare (Ljava/lang/Object;Ljava/lang/Object;)I - public fun compare (Lnet/minecraft/client/network/PlayerListEntry;Lnet/minecraft/client/network/PlayerListEntry;)I -} - -public final class com/chattriggers/ctjs/api/world/World { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/World; - public static final field border Lcom/chattriggers/ctjs/api/world/World$BorderWrapper; - public static final field particle Lcom/chattriggers/ctjs/api/world/World$ParticleWrapper; - public static final field spawn Lcom/chattriggers/ctjs/api/world/World$SpawnWrapper; - public static final fun getAllBlockEntities ()Ljava/util/List; - public static final fun getAllBlockEntitiesOfType (Ljava/lang/Class;)Ljava/util/List; - public static final fun getAllEntities ()Ljava/util/List; - public static final fun getAllEntitiesOfType (Ljava/lang/Class;)Ljava/util/List; - public static final fun getAllPlayers ()Ljava/util/List; - public static final fun getBlockAt (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Lcom/chattriggers/ctjs/api/world/block/Block; - public static final fun getBlockAt (Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;)Lcom/chattriggers/ctjs/api/world/block/Block; - public static final fun getBlockLightLevel (III)I - public static final fun getBlockLightLevel (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)I - public static final fun getBlockStateAt (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Lnet/minecraft/block/BlockState; - public static final fun getChunk (III)Lcom/chattriggers/ctjs/api/world/Chunk; - public static final fun getDifficulty ()Lcom/chattriggers/ctjs/api/client/Settings$Difficulty; - public static final fun getMoonPhase ()I - public static final fun getPlayerByName (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/entity/PlayerMP; - public static final fun getRainingStrength ()F - public static final fun getSkyLightLevel (III)I - public static final fun getSkyLightLevel (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)I - public static final fun getTicksPerSecond ()I - public static final fun getTime ()J - public static final fun getWorld ()Lnet/minecraft/client/world/ClientWorld; - public static final fun hasPlayer (Ljava/lang/String;)Z - public static final fun isLoaded ()Z - public static final fun isRaining ()Z - public static final fun toMC ()Lnet/minecraft/client/world/ClientWorld; -} - -public final class com/chattriggers/ctjs/api/world/World$BorderWrapper { - public fun ()V - public final fun getCenterX ()D - public final fun getCenterZ ()D - public final fun getSize ()D - public final fun getTargetSize ()D - public final fun getTimeUntilTarget ()J -} - -public final class com/chattriggers/ctjs/api/world/World$ParticleWrapper { - public fun ()V - public final fun getParticleNames ()Ljava/util/List; - public final fun spawnParticle (Ljava/lang/String;DDDDDD)Lcom/chattriggers/ctjs/api/entity/Particle; - public final fun spawnParticle (Lnet/minecraft/client/particle/Particle;)Lcom/chattriggers/ctjs/api/entity/Particle; -} - -public final class com/chattriggers/ctjs/api/world/World$SpawnWrapper { - public fun ()V - public final fun getX ()I - public final fun getY ()I - public final fun getZ ()I -} - -public class com/chattriggers/ctjs/api/world/block/Block { - public fun (Lcom/chattriggers/ctjs/api/world/block/BlockType;Lcom/chattriggers/ctjs/api/world/block/BlockPos;Lcom/chattriggers/ctjs/api/world/block/BlockFace;)V - public synthetic fun (Lcom/chattriggers/ctjs/api/world/block/BlockType;Lcom/chattriggers/ctjs/api/world/block/BlockPos;Lcom/chattriggers/ctjs/api/world/block/BlockFace;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun canBeHarvested ()Z - public final fun canBeHarvestedWith (Lcom/chattriggers/ctjs/api/inventory/Item;)Z - public final fun getEmittingPower ()I - public final fun getEmittingPower (Lcom/chattriggers/ctjs/api/world/block/BlockFace;)I - public static synthetic fun getEmittingPower$default (Lcom/chattriggers/ctjs/api/world/block/Block;Lcom/chattriggers/ctjs/api/world/block/BlockFace;ILjava/lang/Object;)I - public final fun getFace ()Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public final fun getPos ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun getReceivingPower ()I - public final fun getState ()Lnet/minecraft/block/BlockState; - public final fun getType ()Lcom/chattriggers/ctjs/api/world/block/BlockType; - public final fun getX ()I - public final fun getY ()I - public final fun getZ ()I - public final fun isEmittingPower ()Z - public final fun isEmittingPower (Lcom/chattriggers/ctjs/api/world/block/BlockFace;)Z - public static synthetic fun isEmittingPower$default (Lcom/chattriggers/ctjs/api/world/block/Block;Lcom/chattriggers/ctjs/api/world/block/BlockFace;ILjava/lang/Object;)Z - public final fun isReceivingPower ()Z - public fun toString ()Ljava/lang/String; - public final fun withFace (Lcom/chattriggers/ctjs/api/world/block/BlockFace;)Lcom/chattriggers/ctjs/api/world/block/Block; - public final fun withPos (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Lcom/chattriggers/ctjs/api/world/block/Block; - public final fun withType (Lcom/chattriggers/ctjs/api/world/block/BlockType;)Lcom/chattriggers/ctjs/api/world/block/Block; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockFace : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper, net/minecraft/util/StringIdentifiable { - public static final field Companion Lcom/chattriggers/ctjs/api/world/block/BlockFace$Companion; - public static final field DOWN Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public static final field EAST Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public static final field NORTH Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public static final field SOUTH Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public static final field UP Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public static final field WEST Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public fun asString ()Ljava/lang/String; - public static final fun fromMC (Lnet/minecraft/util/math/Direction;)Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public final fun getAxis ()Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; - public final fun getAxisDirection ()Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection; - public final fun getDirectionVec ()Lcom/chattriggers/ctjs/api/vec/Vec3i; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/util/math/Direction; - public final fun getOffsetX ()I - public final fun getOffsetY ()I - public final fun getOffsetZ ()I - public final fun getOpposite ()Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public final fun rotateAround (Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis;)Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public final fun rotateX ()Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public final fun rotateY ()Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public final fun rotateZ ()Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/util/math/Direction; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public static fun values ()[Lcom/chattriggers/ctjs/api/world/block/BlockFace; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockFace$Axis : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper, java/util/function/Predicate, net/minecraft/util/StringIdentifiable { - public static final field Companion Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis$Companion; - public static final field X Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; - public static final field Y Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; - public static final field Z Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; - public fun asString ()Ljava/lang/String; - public static final fun fromMC (Lnet/minecraft/util/math/Direction$Axis;)Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/util/math/Direction$Axis; - public final fun getPlane ()Lcom/chattriggers/ctjs/api/world/block/BlockFace$Plane; - public final fun isHorizontal ()Z - public final fun isVertical ()Z - public fun test (Lcom/chattriggers/ctjs/api/world/block/BlockFace;)Z - public synthetic fun test (Ljava/lang/Object;)Z - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/util/math/Direction$Axis; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; - public static fun values ()[Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockFace$Axis$Companion { - public final fun fromMC (Lnet/minecraft/util/math/Direction$Axis;)Lcom/chattriggers/ctjs/api/world/block/BlockFace$Axis; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection : java/lang/Enum, com/chattriggers/ctjs/api/CTWrapper { - public static final field Companion Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection$Companion; - public static final field NEGATIVE Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection; - public static final field POSITIVE Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection; - public static final fun fromMC (Lnet/minecraft/util/math/Direction$AxisDirection;)Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/util/math/Direction$AxisDirection; - public final fun getOffset ()I - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/util/math/Direction$AxisDirection; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection; - public static fun values ()[Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection$Companion { - public final fun fromMC (Lnet/minecraft/util/math/Direction$AxisDirection;)Lcom/chattriggers/ctjs/api/world/block/BlockFace$AxisDirection; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockFace$Companion { - public final fun fromMC (Lnet/minecraft/util/math/Direction;)Lcom/chattriggers/ctjs/api/world/block/BlockFace; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockFace$Plane : java/lang/Enum, java/lang/Iterable, java/util/function/Predicate, kotlin/jvm/internal/markers/KMappedMarker { - public static final field HORIZONTAL Lcom/chattriggers/ctjs/api/world/block/BlockFace$Plane; - public static final field VERTICAL Lcom/chattriggers/ctjs/api/world/block/BlockFace$Plane; - public final fun facings ()[Lcom/chattriggers/ctjs/api/world/block/BlockFace; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public fun iterator ()Ljava/util/Iterator; - public fun test (Lcom/chattriggers/ctjs/api/world/block/BlockFace;)Z - public synthetic fun test (Ljava/lang/Object;)Z - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/api/world/block/BlockFace$Plane; - public static fun values ()[Lcom/chattriggers/ctjs/api/world/block/BlockFace$Plane; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockPos : com/chattriggers/ctjs/api/vec/Vec3i, com/chattriggers/ctjs/api/CTWrapper { - public fun (III)V - public fun (Lcom/chattriggers/ctjs/api/entity/Entity;)V - public fun (Lcom/chattriggers/ctjs/api/vec/Vec3i;)V - public fun (Ljava/lang/Number;Ljava/lang/Number;Ljava/lang/Number;)V - public fun (Lnet/minecraft/util/math/BlockPos;)V - public synthetic fun crossProduct (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun crossProduct (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun distanceTo (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)D - public final fun down ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun down (I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static synthetic fun down$default (Lcom/chattriggers/ctjs/api/world/block/BlockPos;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun east ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun east (I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static synthetic fun east$default (Lcom/chattriggers/ctjs/api/world/block/BlockPos;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/util/math/BlockPos; - public synthetic fun minus (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun minus (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun north ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun north (I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static synthetic fun north$default (Lcom/chattriggers/ctjs/api/world/block/BlockPos;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun offset (Lcom/chattriggers/ctjs/api/world/block/BlockFace;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun offset (Lcom/chattriggers/ctjs/api/world/block/BlockFace;I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static synthetic fun offset$default (Lcom/chattriggers/ctjs/api/world/block/BlockPos;Lcom/chattriggers/ctjs/api/world/block/BlockFace;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public synthetic fun plus (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun plus (Lcom/chattriggers/ctjs/api/vec/Vec3i;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public synthetic fun scaled (I)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun scaled (I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public synthetic fun scaled (III)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun scaled (III)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun south ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun south (I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static synthetic fun south$default (Lcom/chattriggers/ctjs/api/world/block/BlockPos;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/util/math/BlockPos; - public final fun toVec3d ()Lnet/minecraft/util/math/Vec3d; - public synthetic fun translated (III)Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun translated (III)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public synthetic fun unaryMinus ()Lcom/chattriggers/ctjs/api/vec/Vec3i; - public fun unaryMinus ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun up ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun up (I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static synthetic fun up$default (Lcom/chattriggers/ctjs/api/world/block/BlockPos;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun west ()Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public final fun west (I)Lcom/chattriggers/ctjs/api/world/block/BlockPos; - public static synthetic fun west$default (Lcom/chattriggers/ctjs/api/world/block/BlockPos;IILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/block/BlockPos; -} - -public final class com/chattriggers/ctjs/api/world/block/BlockType : com/chattriggers/ctjs/api/CTWrapper { - public fun (I)V - public fun (Lcom/chattriggers/ctjs/api/inventory/Item;)V - public fun (Lcom/chattriggers/ctjs/api/world/block/BlockType;)V - public fun (Ljava/lang/String;)V - public fun (Lnet/minecraft/block/Block;)V - public final fun canProvidePower ()Z - public final fun getDefaultState ()Lnet/minecraft/block/BlockState; - public final fun getID ()I - public final fun getLightValue ()I - public synthetic fun getMcValue ()Ljava/lang/Object; - public fun getMcValue ()Lnet/minecraft/block/Block; - public final fun getName ()Ljava/lang/String; - public final fun getRegistryName ()Ljava/lang/String; - public final fun getTranslationKey ()Ljava/lang/String; - public final fun isTranslucent ()Z - public synthetic fun toMC ()Ljava/lang/Object; - public fun toMC ()Lnet/minecraft/block/Block; - public fun toString ()Ljava/lang/String; - public final fun withBlockPos (Lcom/chattriggers/ctjs/api/world/block/BlockPos;)Lcom/chattriggers/ctjs/api/world/block/Block; -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/CachedChunk { - public static final field AIR_FLAGS S - public static final field Companion Lcom/chattriggers/ctjs/api/world/pathfinding/CachedChunk$Companion; - public final field maxY I - public final field minY I - public field ready Z - public fun (II)V - public final fun copySectionFlags (I[SI)V - public final fun getFlags (III)S - public final fun hasSection (I)Z - public final fun setFlags (IIIS)V - public final fun setSection (I[S)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/CachedChunk$Companion { -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/CachedWorld { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/CachedWorld; - public final fun clear ()V - public static final fun getBlockFlags (III)Ljava/lang/Short; - public final fun getCacheStats ()Ljava/lang/String; - public static final fun getChunk (II)Lcom/chattriggers/ctjs/api/world/pathfinding/CachedChunk; - public final fun load (Ljava/lang/String;)V - public final fun onPacketReceive (Lnet/minecraft/network/packet/Packet;)V - public final fun processPendingChunks ()V - public final fun saveAndClear (Ljava/lang/String;)V - public final fun setUnlimitedChunkCache (Z)V - public final fun setWorldKey (Ljava/lang/String;)V - public final fun waitForLoad ()V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/EtherwarpLandingCandidatesResult { - public final field centers [D - public final field goals [I - public fun ([I[D)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/HypixelManager { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/HypixelManager; - public final fun init ()V - public final fun onDisconnect ()V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativeEtherwarpResult { - public final field angles [F - public final field nanosecondsPerNode D - public final field nodesExplored I - public final field path [I - public final field timeMs J - public fun ([I[FJID)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativePathResult { - public final field keyNodeFlags [I - public final field keyNodeMetrics [I - public final field keyPath [I - public final field nanosecondsPerNode D - public final field nodesExplored I - public final field path [I - public final field pathFlags [I - public final field pathSignature Ljava/lang/String; - public final field selectedStartIndex I - public final field timeMs J - public fun ([I[IJIDI[I[I[ILjava/lang/String;)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge; - public static final fun applyBlockUpdates ([I)V - public static final fun cancelSearch ()V - public static final fun clearWorld ()V - public static final fun findEtherwarpPath (Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativeEtherwarpSearchRequest;)Lcom/chattriggers/ctjs/api/world/pathfinding/NativeEtherwarpResult; - public static final fun findPath (Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativePathSearchRequest;)Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathResult; - public static final fun getLastError ()Ljava/lang/String; - public static final fun isAvailable ()Z - public static final fun setWorld (Ljava/lang/String;II)V - public static final fun upsertChunk (IIIIJ[S)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativeEtherwarpSearchRequest { - public fun (IIIDDDIIDDDDDDD)V - public final fun component1 ()I - public final fun component10 ()D - public final fun component11 ()D - public final fun component12 ()D - public final fun component13 ()D - public final fun component14 ()D - public final fun component15 ()D - public final fun component2 ()I - public final fun component3 ()I - public final fun component4 ()D - public final fun component5 ()D - public final fun component6 ()D - public final fun component7 ()I - public final fun component8 ()I - public final fun component9 ()D - public final fun copy (IIIDDDIIDDDDDDD)Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativeEtherwarpSearchRequest; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativeEtherwarpSearchRequest;IIIDDDIIDDDDDDDILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativeEtherwarpSearchRequest; - public fun equals (Ljava/lang/Object;)Z - public final fun getEyeHeight ()D - public final fun getGoalX ()I - public final fun getGoalY ()I - public final fun getGoalZ ()I - public final fun getHeuristicWeight ()D - public final fun getMaxIterations ()I - public final fun getNewNodeCost ()D - public final fun getPitchStep ()D - public final fun getRayLength ()D - public final fun getRewireEpsilon ()D - public final fun getStartEyeX ()D - public final fun getStartEyeY ()D - public final fun getStartEyeZ ()D - public final fun getThreadCount ()I - public final fun getYawStep ()D - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativePathSearchRequest { - public fun ([I[IZIDDI[I[D)V - public final fun component1 ()[I - public final fun component2 ()[I - public final fun component3 ()Z - public final fun component4 ()I - public final fun component5 ()D - public final fun component6 ()D - public final fun component7 ()I - public final fun component8 ()[I - public final fun component9 ()[D - public final fun copy ([I[IZIDDI[I[D)Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativePathSearchRequest; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativePathSearchRequest;[I[IZIDDI[I[DILjava/lang/Object;)Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderBridge$NativePathSearchRequest; - public fun equals (Ljava/lang/Object;)Z - public final fun getAvoidMeta ()[I - public final fun getAvoidPenalty ()[D - public final fun getEndPoints ()[I - public final fun getHeuristicWeight ()D - public final fun getMaxIterations ()I - public final fun getMoveOrderOffset ()I - public final fun getNonPrimaryStartPenalty ()D - public final fun getStartPoints ()[I - public fun hashCode ()I - public final fun isFly ()Z - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativePathfinderJNI { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathfinderJNI; - public static final fun applyBlockUpdates ([I)V - public static final fun cancelSearch ()V - public static final fun clearWorld ()V - public static final fun findEtherwarpPath (IIIDDDIIDDDDDDD)Lcom/chattriggers/ctjs/api/world/pathfinding/NativeEtherwarpResult; - public static final fun findPath ([I[IZIDDI[I[D)Lcom/chattriggers/ctjs/api/world/pathfinding/NativePathResult; - public static final fun getLoadError ()Ljava/lang/String; - public static final fun initNative ()Z - public static final fun initialize ()Z - public static final fun isAvailable ()Z - public static final fun setWorld (Ljava/lang/String;II)V - public static final fun upsertChunk (IIIIJ[S)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativeStateEncoder { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/NativeStateEncoder; - public static final fun flagsForState (Lnet/minecraft/block/BlockState;)I - public static final fun flagsForStateId (I)I - public static final fun flagsShortForState (Lnet/minecraft/block/BlockState;)S - public static final fun flagsShortForStateId (I)S -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/NativeVoxelFlags { - public static final field BLOCKING_WALL I - public static final field CARPET_LIKE I - public static final field ETHER_FEET_BLOCKER I - public static final field ETHER_PASSABLE I - public static final field ETHER_TELEPORT_CLEAR I - public static final field FENCE_LIKE I - public static final field FLUID I - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/NativeVoxelFlags; - public static final field PASSABLE I - public static final field PASSABLE_FLY I - public static final field SLAB_BOTTOM I - public static final field SLAB_TOP I - public static final field SOLID I - public static final field STAIRS_BOTTOM I -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/PathManager { - public static final field ETHERWARP_VOXEL_FEET_BLOCKER I - public static final field ETHERWARP_VOXEL_FENCE_LIKE I - public static final field ETHERWARP_VOXEL_SOLID I - public static final field ETHERWARP_VOXEL_TELEPORT_CLEAR I - public static final field FLAG_DROP_NEXT I - public static final field FLAG_FLUID_FEET I - public static final field FLAG_FLUID_HEAD I - public static final field FLAG_LOW_HEADROOM I - public static final field FLAG_NEAR_EDGE I - public static final field FLAG_NEAR_WALL I - public static final field FLAG_STEP_UP_NEXT I - public static final field FLAG_TIGHT_CORRIDOR I - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/PathManager; - public static final fun addTransientAvoidPoint (III)V - public static final fun addTransientAvoidPoint (IIII)V - public static final fun addTransientAvoidPoint (IIIID)V - public static final fun addTransientAvoidPoint (IIIIDI)V - public static synthetic fun addTransientAvoidPoint$default (IIIIDIILjava/lang/Object;)V - public static final fun addTransientAvoidPoints ([I)V - public static final fun addTransientAvoidPoints ([II)V - public static final fun addTransientAvoidPoints ([IID)V - public static final fun addTransientAvoidPoints ([IIDI)V - public static synthetic fun addTransientAvoidPoints$default ([IIDIILjava/lang/Object;)V - public static final fun cancelSearch ()V - public static final fun clear ()V - public static final fun clearTransientAvoidPoints ()V - public static final fun findEtherwarpPath (III)Z - public static final fun findEtherwarpPath (IIII)Z - public static final fun findEtherwarpPath (IIIII)Z - public static final fun findEtherwarpPath (IIIIID)Z - public static final fun findEtherwarpPath (IIIIIDD)Z - public static final fun findEtherwarpPath (IIIIIDDD)Z - public static final fun findEtherwarpPath (IIIIIDDDD)Z - public static final fun findEtherwarpPath (IIIIIDDDDD)Z - public static final fun findEtherwarpPath (IIIIIDDDDDD)Z - public static final fun findEtherwarpPath (IIIIIDDDDDDD)Z - public static synthetic fun findEtherwarpPath$default (IIIIIDDDDDDDILjava/lang/Object;)Z - public static final fun findFlyPath ([[I[[I)Z - public static final fun findFlyPath ([[I[[II)Z - public static synthetic fun findFlyPath$default ([[I[[IIILjava/lang/Object;)Z - public static final fun findPath (IIIIII)Z - public static final fun findPath (IIIIIII)Z - public static final fun findPath (IIIIIIIZ)Z - public static final fun findPath ([[I[[I)Z - public static final fun findPath ([[I[[II)Z - public static final fun findPath ([[I[[IIZ)Z - public static synthetic fun findPath$default (IIIIIIIZILjava/lang/Object;)Z - public static synthetic fun findPath$default ([[I[[IIZILjava/lang/Object;)Z - public static final fun findPathMultipleGoals (III[I)Z - public static final fun findPathMultipleGoals (III[II)Z - public static final fun findPathMultipleGoals (III[IIZ)Z - public static synthetic fun findPathMultipleGoals$default (III[IIZILjava/lang/Object;)Z - public static final fun getCurrentEtherwarpEyeHeight ()D - public static final fun getCurrentEtherwarpSneakOffset ()D - public static final fun getEtherwarpAnglesArray ()[F - public static final fun getEtherwarpLandingCandidates (DDDIDDDD)Lcom/chattriggers/ctjs/api/world/pathfinding/EtherwarpLandingCandidatesResult; - public static final fun getEtherwarpLandingCenter (III)[D - public static final fun getEtherwarpLastTimeMs ()J - public static final fun getEtherwarpNanosecondsPerNode ()D - public static final fun getEtherwarpNodesExplored ()I - public static final fun getEtherwarpPathArray ()[I - public static final fun getEtherwarpPathSize ()I - public static final fun getEtherwarpStandOffsetForFlags (I)I - public static final fun getEtherwarpVoxelFlagsAt (III)I - public static final fun getKeyNodeCount ()I - public static final fun getKeyNodeFlagsArray ()[I - public static final fun getKeyNodeMetricsArray ()[I - public static final fun getKeyNodesArray ()[I - public static final fun getLastError ()Ljava/lang/String; - public static final fun getLastTimeMs ()J - public static final fun getNanosecondsPerNode ()D - public static final fun getNodesExplored ()I - public static final fun getPathArray ()[I - public static final fun getPathFlagBits ()[I - public static final fun getPathFlagsArray ()[I - public static final fun getPathSignature ()Ljava/lang/String; - public static final fun getPathSize ()I - public static final fun getSelectedStartIndex ()I - public static final fun hasEtherwarpPath ()Z - public static final fun hasPath ()Z - public static final fun isEtherwarpSupportSolid (I)Z - public static final fun isEtherwarpTeleportSpaceClearFlags (I)Z - public static final fun isSearching ()Z - public static final fun isValidEtherwarpLanding (III)Z - public static final fun setSearchVariantSeed (I)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/Swift : net/fabricmc/api/ClientModInitializer { - public static final field CHUNKS_PER_TICK I - public static final field Companion Lcom/chattriggers/ctjs/api/world/pathfinding/Swift$Companion; - public static final field MAXIMUM_CACHED_CHUNKS I - public static final field executor Ljava/util/concurrent/ExecutorService; - public fun ()V - public fun onInitializeClient ()V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/Swift$Companion { -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/WorldSerializer { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/WorldSerializer; - public final fun load (Ljava/lang/String;)Ljava/util/concurrent/ConcurrentHashMap; - public final fun save (Ljava/lang/String;Ljava/util/Map;)V -} - -public final class com/chattriggers/ctjs/api/world/pathfinding/WynncraftManager { - public static final field INSTANCE Lcom/chattriggers/ctjs/api/world/pathfinding/WynncraftManager; - public final fun init ()V - public final fun onDisconnect ()V -} - -public final class com/chattriggers/ctjs/engine/Console { - public static final field INSTANCE Lcom/chattriggers/ctjs/engine/Console; - public final fun clear ()V - public final fun close ()V - public final fun onConsoleSettingsChanged (Lcom/chattriggers/ctjs/api/Config$ConsoleSettings;)V - public final fun printStackTrace (Ljava/lang/Throwable;)V - public final fun println (Ljava/lang/Object;)V - public final fun println (Ljava/lang/Object;Lcom/chattriggers/ctjs/engine/LogType;)V - public final fun println (Ljava/lang/Object;Lcom/chattriggers/ctjs/engine/LogType;Ljava/lang/String;)V - public final fun println (Ljava/lang/Object;Lcom/chattriggers/ctjs/engine/LogType;Ljava/lang/String;Ljava/awt/Color;)V - public final fun show ()V -} - -public final class com/chattriggers/ctjs/engine/ConsoleKt { - public static final fun printToConsole (Ljava/lang/Object;Lcom/chattriggers/ctjs/engine/LogType;)V - public static synthetic fun printToConsole$default (Ljava/lang/Object;Lcom/chattriggers/ctjs/engine/LogType;ILjava/lang/Object;)V - public static final fun printTraceToConsole (Ljava/lang/Throwable;)V -} - -public final class com/chattriggers/ctjs/engine/LogType : java/lang/Enum { - public static final field Companion Lcom/chattriggers/ctjs/engine/LogType$Companion; - public static final field ERROR Lcom/chattriggers/ctjs/engine/LogType; - public static final field INFO Lcom/chattriggers/ctjs/engine/LogType; - public static final field WARN Lcom/chattriggers/ctjs/engine/LogType; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public static fun valueOf (Ljava/lang/String;)Lcom/chattriggers/ctjs/engine/LogType; - public static fun values ()[Lcom/chattriggers/ctjs/engine/LogType; -} - -public final class com/chattriggers/ctjs/engine/LogType$Companion { - public final fun serializer ()Lkotlinx/serialization/KSerializer; -} - -public final class com/chattriggers/ctjs/engine/MixinCallback { - public fun (ILcom/chattriggers/ctjs/internal/launch/IInjector;)V - public final fun attach (Ljava/lang/Object;)V - public final fun component1$ctjs ()I - public final fun component2$ctjs ()Lcom/chattriggers/ctjs/internal/launch/IInjector; - public final fun copy (ILcom/chattriggers/ctjs/internal/launch/IInjector;)Lcom/chattriggers/ctjs/engine/MixinCallback; - public static synthetic fun copy$default (Lcom/chattriggers/ctjs/engine/MixinCallback;ILcom/chattriggers/ctjs/internal/launch/IInjector;ILjava/lang/Object;)Lcom/chattriggers/ctjs/engine/MixinCallback; - public fun equals (Ljava/lang/Object;)Z - public final fun getHandle$ctjs ()Ljava/lang/invoke/MethodHandle; - public final fun getId$ctjs ()I - public final fun getInjector$ctjs ()Lcom/chattriggers/ctjs/internal/launch/IInjector; - public final fun getInvalidator$ctjs ()Ljava/lang/invoke/SwitchPoint; - public final fun getMethod$ctjs ()Ljava/lang/Object; - public fun hashCode ()I - public final fun setHandle$ctjs (Ljava/lang/invoke/MethodHandle;)V - public final fun setInvalidator$ctjs (Ljava/lang/invoke/SwitchPoint;)V - public final fun setMethod$ctjs (Ljava/lang/Object;)V - public fun toString ()Ljava/lang/String; -} - -public final class com/chattriggers/ctjs/engine/Register { - public static final field INSTANCE Lcom/chattriggers/ctjs/engine/Register; - public final fun clearCustomTriggers$ctjs ()V - public static final fun createCustomTrigger (Ljava/lang/String;)Ljava/lang/Object; - public static final fun register (Ljava/lang/String;Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerActionBar (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerChat (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerClicked (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerCommand (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerDragged (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerDrawBlockHighlight (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerDropItem (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerEntityDamage (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerEntityDeath (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGameLoad (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGameUnload (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGuiClosed (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGuiKey (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGuiMouseClick (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGuiMouseDrag (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGuiOpened (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerGuiRender (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerItemTooltip (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerMessageSent (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerPacketReceived (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerPacketSent (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerPlayerInteract (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerPostGuiRender (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerPostRenderWorld (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerPreRenderWorld (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerRenderBlockEntity (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerRenderEntity (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerRenderOverlay (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerRenderPlayerList (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerRenderWorld (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerScrolled (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerServerConnect (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerServerDisconnect (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerSoundPlay (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerSpawnParticle (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerStep (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerTick (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerWorldLoad (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; - public static final fun registerWorldUnload (Ljava/lang/Object;)Lcom/chattriggers/ctjs/api/triggers/Trigger; -} - -public final class com/chattriggers/ctjs/engine/WrappedThread { - public static final field Companion Lcom/chattriggers/ctjs/engine/WrappedThread$Companion; - public fun (Ljava/lang/Runnable;)V - public static final fun currentThread ()Ljava/lang/Thread; - public final fun destroy ()V - public final fun getId ()J - public final fun interrupt ()V - public final fun isAlive ()Z - public final fun isInterrupted ()Z - public final fun resume ()V - public final fun run ()V - public final fun setDaemon (Z)V - public static final fun sleep (J)V - public static final fun sleep (JI)V - public final fun start ()V - public final fun stop ()V - public final fun suspend ()V -} - -public final class com/chattriggers/ctjs/engine/WrappedThread$Companion { - public final fun currentThread ()Ljava/lang/Thread; - public final fun sleep (J)V - public final fun sleep (JI)V - public static synthetic fun sleep$default (Lcom/chattriggers/ctjs/engine/WrappedThread$Companion;JIILjava/lang/Object;)V -} - -public class com/v5/mixins/AbstractBlockStateMixin { - public fun ()V -} - -public abstract class com/v5/mixins/AbstractTerrainRenderContextMixin { - protected field blockInfo Lnet/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo; - public fun ()V -} - -public class com/v5/mixins/BlockMixin { - public fun ()V -} - -public class com/v5/mixins/BlockModelRendererMixin { - public fun ()V -} - -public abstract class com/v5/mixins/BlockRenderLayersMixin { - public fun ()V -} - -public abstract class com/v5/mixins/CameraMixin { - public fun ()V - protected abstract fun setPos (Lnet/minecraft/util/math/Vec3d;)V -} - -public class com/v5/mixins/ChatHudMixin { - public fun ()V -} - -public class com/v5/mixins/ChunkOcclusionDataBuilderMixin { - public fun ()V -} - -public class com/v5/mixins/ClientConnectionMixin { - public fun ()V -} - -public abstract class com/v5/mixins/ClientConnectionProxyMixin { - public fun ()V -} - -public class com/v5/mixins/DrawContextCapture { - public fun ()V -} - -public class com/v5/mixins/EntityRendererMixin { - public fun ()V -} - -public class com/v5/mixins/FirmamentModAnnouncerMixin { - public fun ()V -} - -public class com/v5/mixins/GameRendererMixin { - public fun ()V -} - -public abstract class com/v5/mixins/KeyboardInputMixin : net/minecraft/client/input/Input { - public fun ()V -} - -public class com/v5/mixins/LightTextureManagerMixin { - public fun ()V -} - -public class com/v5/mixins/MinecraftClientMixin { - public field options Lnet/minecraft/client/option/GameOptions; - public fun ()V -} - -public class com/v5/mixins/MouseMixin { - public fun ()V -} - -public abstract class com/v5/mixins/MultiplayerScreenMixin : net/minecraft/client/gui/screen/Screen { - protected fun (Lnet/minecraft/text/Text;)V - public fun render (Lnet/minecraft/client/gui/DrawContext;IIF)V -} - -public class com/v5/mixins/PlayerListHudMixin { - public fun ()V -} - -public abstract class com/v5/mixins/ScreenPanoramaMixin { - public fun ()V -} - -public abstract class com/v5/mixins/TitleScreenRedirectMixin { - public fun ()V -} - -public class com/v5/mixins/TranslationMixin { - public fun ()V -} - -public class com/v5/mixins/WorldRendererMixin { - public fun ()V -} - -public class com/v5/mixins/YggdrasilServicesKeyInfoMixin { - public fun ()V -} - -public final class com/v5/storage/V5MixinStorage { - public static fun applyMethod (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object; - public static fun get (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; - public static fun getBoolean (Ljava/lang/String;Z)Z - public static fun getString (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; - public static fun set (Ljava/lang/String;Ljava/lang/Object;)V -} diff --git a/build.gradle.kts b/build.gradle.kts index 7b3b069..212f267 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,6 @@ plugins { alias(libs.plugins.serialization) alias(libs.plugins.ksp) alias(libs.plugins.loom) - alias(libs.plugins.validator) id("io.github.izhangzhihao.unmeta") version "1.0.3" } @@ -94,18 +93,7 @@ java { targetCompatibility = JavaVersion.VERSION_25 } -apiValidation { - ignoredProjects += "typing-generator" - ignoredPackages += "com.chattriggers.ctjs.internal" -} - tasks { - named("apiCheck") { - enabled = false - } - named("apiBuild") { - enabled = false - } processResources { val mcVersion = libs.versions.minecraft.get() val flkVersion = libs.versions.fabric.kotlin.get() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8d4fbaf..c6345f9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,6 @@ hypixel-modrinth-api = "1.0.2+build.1+mc26.1" # Plugin Versions kotlin = "2.3.10" loom = "1.17-SNAPSHOT" -validator = "0.18.1" ksp = "2.3.9" [libraries] @@ -61,5 +60,4 @@ included = ["mapping-io", "rhino", "jackson-core", "textarea", "serialization", kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } loom = { id = "net.fabricmc.fabric-loom", version.ref = "loom" } -validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "validator" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } From 004d386ffc52ddd3e31aed60032561e8456fff57 Mon Sep 17 00:00:00 2001 From: EpsilonPhoenix <129551402+EpsilonPhoenix@users.noreply.github.com> Date: Mon, 6 Jul 2026 22:43:29 -0400 Subject: [PATCH 06/15] I'm sorry rdbt, you were right. I am a chud. --- src/main/java/com/v5/mixins/TranslationMixin.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/v5/mixins/TranslationMixin.java b/src/main/java/com/v5/mixins/TranslationMixin.java index 8f4f4fb..1687c84 100644 --- a/src/main/java/com/v5/mixins/TranslationMixin.java +++ b/src/main/java/com/v5/mixins/TranslationMixin.java @@ -10,7 +10,8 @@ public class TranslationMixin { @Inject(method = "getOrDefault", at = @At("HEAD"), cancellable = true) private void onGet(String key, String fallback, CallbackInfoReturnable cir) { - if (key.equals("key.category.v5.v5_modules")) { + if (key.equals("key.category.v5.v5_modules") || + key.equals("key.category.minecraft.v5_modules")) { cir.setReturnValue("V5"); return; } From c429da4d8307550bff3035b1b2b507d20a0e64e8 Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Tue, 7 Jul 2026 03:51:04 +0100 Subject: [PATCH 07/15] fix the translation keys properly --- .../java/com/v5/mixins/TranslationMixin.java | 24 ------------------- .../resources/assets/ctjs/lang/en_us.json | 4 +++- src/main/resources/assets/v5/lang/en_us.json | 4 ---- src/main/resources/v5.mixins.json | 1 - 4 files changed, 3 insertions(+), 30 deletions(-) delete mode 100644 src/main/java/com/v5/mixins/TranslationMixin.java delete mode 100644 src/main/resources/assets/v5/lang/en_us.json diff --git a/src/main/java/com/v5/mixins/TranslationMixin.java b/src/main/java/com/v5/mixins/TranslationMixin.java deleted file mode 100644 index 1687c84..0000000 --- a/src/main/java/com/v5/mixins/TranslationMixin.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.v5.mixins; - -import net.minecraft.client.resources.language.ClientLanguage; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(value = ClientLanguage.class, priority = 1000) -public class TranslationMixin { - @Inject(method = "getOrDefault", at = @At("HEAD"), cancellable = true) - private void onGet(String key, String fallback, CallbackInfoReturnable cir) { - if (key.equals("key.category.v5.v5_modules") || - key.equals("key.category.minecraft.v5_modules")) { - cir.setReturnValue("V5"); - return; - } - - if (key.startsWith("v5.key.")) { - String humanReadable = key.substring("v5.key.".length()); - cir.setReturnValue(humanReadable); - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/ctjs/lang/en_us.json b/src/main/resources/assets/ctjs/lang/en_us.json index 9fd617b..8e482db 100644 --- a/src/main/resources/assets/ctjs/lang/en_us.json +++ b/src/main/resources/assets/ctjs/lang/en_us.json @@ -1,4 +1,6 @@ { + "key.category.minecraft.ctjs.key.category": "ChatTriggers", + "key.category.minecraft.v5_modules": "V5", "ctjs.key.binding.console": "Console", "ctjs.key.category": "ChatTriggers" -} + } \ No newline at end of file diff --git a/src/main/resources/assets/v5/lang/en_us.json b/src/main/resources/assets/v5/lang/en_us.json deleted file mode 100644 index 5a7ba56..0000000 --- a/src/main/resources/assets/v5/lang/en_us.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "key.category.minecraft.ctjs.key.category": "ChatTriggers", - "key.category.chattriggers.v5": "V5" -} \ No newline at end of file diff --git a/src/main/resources/v5.mixins.json b/src/main/resources/v5.mixins.json index 2708199..177dc7e 100644 --- a/src/main/resources/v5.mixins.json +++ b/src/main/resources/v5.mixins.json @@ -17,7 +17,6 @@ "MouseHandlerMixin", "JoinMultiplayerScreenMixin", "PlayerTabOverlayMixin", - "TranslationMixin", "LevelRendererMixin", "YggdrasilServicesKeyInfoMixin" ], From c8d8fb55ea8535fef8c5e400a2e3c71e0eb16b20 Mon Sep 17 00:00:00 2001 From: EpsilonPhoenix <129551402+EpsilonPhoenix@users.noreply.github.com> Date: Tue, 7 Jul 2026 00:54:07 -0400 Subject: [PATCH 08/15] fix: prevent rendering from persisting between reloads - fixes the duplicate hud issue --- src/main/kotlin/com/chattriggers/ctjs/CTJS.kt | 2 ++ .../kotlin/com/chattriggers/ctjs/api/render/NVGRenderer.kt | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt b/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt index 9339672..e1b727f 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt @@ -8,6 +8,7 @@ import com.chattriggers.ctjs.api.client.WelcomeScreen import com.chattriggers.ctjs.api.commands.DynamicCommands import com.chattriggers.ctjs.api.message.ChatLib import com.chattriggers.ctjs.api.render.Image +import com.chattriggers.ctjs.api.render.NVGRenderer import com.chattriggers.ctjs.api.triggers.TriggerType import com.chattriggers.ctjs.api.world.Scoreboard import com.chattriggers.ctjs.api.world.World @@ -94,6 +95,7 @@ class CTJS : ClientModInitializer { Register.clearCustomTriggers() StaticCommand.unregisterAll() DynamicCommands.unregisterAll() + NVGRenderer.clearCallbacks() if (Config.clearConsoleOnLoad) Console.clear() diff --git a/src/main/kotlin/com/chattriggers/ctjs/api/render/NVGRenderer.kt b/src/main/kotlin/com/chattriggers/ctjs/api/render/NVGRenderer.kt index 0c4ed50..f0317cb 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/api/render/NVGRenderer.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/api/render/NVGRenderer.kt @@ -137,6 +137,11 @@ object NVGRenderer { preRenderCallbacks.remove(runnable) } + fun clearCallbacks() { + renderCallbacks.clear() + preRenderCallbacks.clear() + } + @JvmStatic fun runPreDrawables() { runCallbacks(preRenderCallbacks) From da700c3e0b8b6f44b567dd13d62194c5912190da Mon Sep 17 00:00:00 2001 From: EpsilonPhoenix <129551402+EpsilonPhoenix@users.noreply.github.com> Date: Tue, 7 Jul 2026 01:13:32 -0400 Subject: [PATCH 09/15] getBlocksInBox rdbt was talking about --- .../com/chattriggers/ctjs/api/world/World.kt | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt b/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt index 8e5301c..4229829 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt @@ -33,6 +33,8 @@ import net.minecraft.core.particles.VibrationParticleOption import net.minecraft.core.registries.BuiltInRegistries import net.minecraft.world.level.LightLayer import net.minecraft.world.level.gameevent.BlockPositionSource +import java.util.function.Predicate +import kotlin.math.floor import kotlin.math.roundToInt object World { @@ -88,6 +90,43 @@ object World { return Block(BlockType(getBlockStateAt(pos).block), pos) } + @JvmOverloads + @JvmStatic + fun getBlocksInBox( + minX: Number, + minY: Number, + minZ: Number, + maxX: Number, + maxY: Number, + maxZ: Number, + filter: Predicate? = null, + ): Array { + val world = toMC() ?: return emptyArray() + val xRange = sortedRange(minX, maxX) + val yRange = sortedRange(minY, maxY) + val zRange = sortedRange(minZ, maxZ) + val blocks = ArrayList() + + for (x in xRange) { + for (y in yRange) { + for (z in zRange) { + val pos = BlockPos(x, y, z) + val block = Block(BlockType(world.getBlockState(pos.toMC()).block), pos) + if (filter?.test(block) != false) + blocks.add(block) + } + } + } + + return blocks.toTypedArray() + } + + private fun sortedRange(a: Number, b: Number): IntRange { + val first = floor(a.toDouble()).toInt() + val second = floor(b.toDouble()).toInt() + return minOf(first, second)..maxOf(first, second) + } + /** * Gets the [BlockState] at a location in the world. * From 4ebffd5d0f78a8cf6a1095afcd598690a63e68d1 Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Tue, 7 Jul 2026 09:42:22 +0100 Subject: [PATCH 10/15] Optimise getBlocksInBox filter and ignore air --- .../com/chattriggers/ctjs/api/world/World.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt b/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt index 4229829..00560d6 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/api/world/World.kt @@ -99,21 +99,25 @@ object World { maxX: Number, maxY: Number, maxZ: Number, - filter: Predicate? = null, + types: List = emptyList(), ): Array { val world = toMC() ?: return emptyArray() val xRange = sortedRange(minX, maxX) val yRange = sortedRange(minY, maxY) val zRange = sortedRange(minZ, maxZ) val blocks = ArrayList() + val typeSet = types.mapTo(hashSetOf()) { it.mcValue } for (x in xRange) { for (y in yRange) { for (z in zRange) { - val pos = BlockPos(x, y, z) - val block = Block(BlockType(world.getBlockState(pos.toMC()).block), pos) - if (filter?.test(block) != false) - blocks.add(block) + val mcPos = MCBlockPos(x, y, z) + val blockState = world.getBlockState(mcPos) + if (blockState.isAir) continue + val mcBlock = blockState.block + if (typeSet.isEmpty() || mcBlock in typeSet) { + blocks.add(Block(BlockType(mcBlock), BlockPos(x, y, z))) + } } } } From 90249161dc25bb525f1686b43d1c035b4e8713ce Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Tue, 7 Jul 2026 09:42:37 +0100 Subject: [PATCH 11/15] remove typings from gradlew build --- build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 212f267..c4503fc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -45,8 +45,6 @@ dependencies { } compileOnly(libs.sponge.mixin) - ksp(project(":typing-generator")) - implementation(kotlin("stdlib-jdk8")) implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.10.2") From 617adc1c45c26df84e50cc5427e70022326ac693 Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Tue, 7 Jul 2026 09:42:47 +0100 Subject: [PATCH 12/15] generateTypings --- typing-generator/src/main/resources/typings.d.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/typing-generator/src/main/resources/typings.d.ts b/typing-generator/src/main/resources/typings.d.ts index cc38697..2b3474a 100644 --- a/typing-generator/src/main/resources/typings.d.ts +++ b/typing-generator/src/main/resources/typings.d.ts @@ -47221,6 +47221,8 @@ declare global { * @return the [Block] at the location */ getBlockAt(pos: com.chattriggers.ctjs.api.world.block.BlockPos): com.chattriggers.ctjs.api.world.block.Block; + getBlocksInBox(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): Array; + getBlocksInBox(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number, types: Array): Array; /** * Gets the [BlockState] at a location in the world. * @@ -47323,6 +47325,8 @@ declare global { * @return the [Block] at the location */ getBlockAt(pos: com.chattriggers.ctjs.api.world.block.BlockPos): com.chattriggers.ctjs.api.world.block.Block; + getBlocksInBox(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): Array; + getBlocksInBox(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number, types: Array): Array; /** * Gets the [BlockState] at a location in the world. * @@ -51119,6 +51123,7 @@ declare global { destroy(): void; new(): com.chattriggers.ctjs.api.render.NVGRenderer; getDefaultFont(): com.chattriggers.ctjs.api.render.Font | null | undefined; + clearCallbacks(): void; } const NVGRenderer$GifData: { new(width: number, height: number, frameCount: number, delays: Array): com.chattriggers.ctjs.api.render.NVGRenderer$GifData; @@ -53125,11 +53130,6 @@ declare global { } interface JoinMultiplayerScreenMixin extends net.minecraft.client.gui.screens.Screen { } - const TranslationMixin: { - new(): com.v5.mixins.TranslationMixin; - } - interface TranslationMixin { - } const CameraMixin: { new(): com.v5.mixins.CameraMixin; } From c1a6bf01151d634cc9beb289a34cc4621290bfd7 Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Tue, 7 Jul 2026 09:43:39 +0100 Subject: [PATCH 13/15] bump loader version --- src/main/kotlin/com/chattriggers/ctjs/CTJS.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt b/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt index e1b727f..91a0f14 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/CTJS.kt @@ -55,7 +55,7 @@ class CTJS : ClientModInitializer { companion object { const val MOD_ID = "ctjs" const val WEBSITE_ROOT = "https://www.chattriggers.com" - const val MOD_VERSION = "5.0.2" + const val MOD_VERSION = "5.0.3" const val MODULES_FOLDER = "./config/ChatTriggers/modules" val configLocation = File("./config") From 12144b36d82cf8c5406112e8edc0634439f9925c Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:42:53 +0000 Subject: [PATCH 14/15] bump loader version [skip-native-auto] --- .../v5/natives/windows/x86_64/V5PathJNI.dll | Bin 180736 -> 180736 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/v5/natives/windows/x86_64/V5PathJNI.dll b/src/main/resources/assets/v5/natives/windows/x86_64/V5PathJNI.dll index 89747a4c424d4111743a266f6b735b7c703b930f..88ea6459d8d7e2ccbac50d3f6d84c5a0a8014d5e 100644 GIT binary patch delta 36 pcmZo@;cjT*-XOrp%+TZ4EX>$0%*eQ1n2|})9VD<_-Gk|7B>=4S32XoW delta 36 pcmZo@;cjT*-XOrp{6X8NS(ve1n2~Y2Fe8(oJ4j%=x(CzEN&vwH3Wfjx From 6d2e9505b15a0ac292344b6e3440fbc4014dc963 Mon Sep 17 00:00:00 2001 From: rdbtCVS <87152661+rdbtCVS@users.noreply.github.com> Date: Wed, 8 Jul 2026 19:36:07 +0100 Subject: [PATCH 15/15] make it work --- .../ctjs/internal/launch/SecureLoader.kt | 2 +- .../ctjs/internal/launch/V5TokenSource.kt | 5 ++-- .../kotlin/com/v5/loader/internal/V5Loader.kt | 26 ++++++++++++------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt index 8018186..ed688f0 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/SecureLoader.kt @@ -289,7 +289,7 @@ internal object SecureLoader { val modulePath = getV5ModuleDir() if (modulePath.exists() && isLocalDeveloperModeEnabled()) { isDevMode = true - println("[V5] Developer mode with existing V5 module path. Skipping V5 module download.") + println("[V5] Developer mode is active. Skipping V5 module download.") isPluginLoaded = true return } diff --git a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/V5TokenSource.kt b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/V5TokenSource.kt index 9a51ab2..e9382df 100644 --- a/src/main/kotlin/com/chattriggers/ctjs/internal/launch/V5TokenSource.kt +++ b/src/main/kotlin/com/chattriggers/ctjs/internal/launch/V5TokenSource.kt @@ -4,11 +4,10 @@ internal object V5TokenSource { private val consumeTokenMethod by lazy { runCatching { Class.forName("com.v5.loader.internal.V5Loader").getMethod("consumeToken") - }.getOrNull() ?: runCatching { - Class.forName("com.v5.loader.JNI").getMethod("consumeToken") }.getOrNull() } @JvmStatic - fun consumeToken(): String? = consumeTokenMethod?.invoke(null) as? String + fun consumeToken(): String? = + (consumeTokenMethod?.invoke(null) as? String)?.takeIf { it.isNotBlank() } } diff --git a/src/main/kotlin/com/v5/loader/internal/V5Loader.kt b/src/main/kotlin/com/v5/loader/internal/V5Loader.kt index cce6018..7c979af 100644 --- a/src/main/kotlin/com/v5/loader/internal/V5Loader.kt +++ b/src/main/kotlin/com/v5/loader/internal/V5Loader.kt @@ -22,9 +22,14 @@ import kotlin.io.path.writeText internal object V5Loader { private const val MOD_ID = "ctjs" private val secretLock = Any() + private var initialized = false private var sessionToken = "" + @JvmStatic + @Synchronized fun init() { + if (initialized) return + val gameDirPath = resolveGameDirPath() val sessionFilePath = buildSessionFilePath(gameDirPath) val minecraftVersion = resolveMinecraftVersion() @@ -38,11 +43,8 @@ internal object V5Loader { } synchronized(secretLock) { sessionToken = authSession.accessToken } - if (FabricLoader.getInstance().isDevelopmentEnvironment) { - println("[V5] Development environment detected; skipping self-update check.") - return - } checkSelfUpdate(authSession.accessToken, minecraftVersion, File(gameDirPath)) + initialized = true } @JvmStatic @@ -57,17 +59,23 @@ internal object V5Loader { private fun checkSelfUpdate(token: String, minecraftVersion: String, gameDir: File) { val activeJar = resolveActiveJar() val hash = V5Crypto.calculateFileSha256(activeJar.absolutePath) - if (hash.isEmpty()) throw IllegalStateException("[V5] Failed to hash active loader jar: ${activeJar.absolutePath}") + if (hash.isEmpty()) { + println("[V5] Failed to hash active loader jar; skipping self-update check.") + return + } val response = V5Http.fetchLoaderHash(token, hash, minecraftVersion) val integrity = parseJsonObject(response)?.getStringOrNull("integrity")?.lowercase() - ?: throw IllegalStateException("[V5] Loader integrity check failed.") + ?: run { + println("[V5] Loader self-update check unavailable.") + return + } when (integrity) { - "valid" -> println("[V5] V5-Loader integrity verified.") + "valid" -> println("[V5] V5-Loader is up to date.") + "invalid" -> println("[V5] Custom development V5-Loader jar detected. Disabling auto update. If you have not built this jar yourself, then it means you're ratted. gg gl. https://rdbt.top/docs/rat-detected") "outdated" -> stageSelfUpdate(token, minecraftVersion, gameDir, activeJar) - "invalid" -> throw IllegalStateException("[V5] V5-Loader integrity is invalid; refusing to run a modified jar.") - else -> throw IllegalStateException("[V5] Unknown V5-Loader integrity state: $integrity") + else -> println("[V5] Unknown V5-Loader update state: $integrity") } }