Those which still use separate .txt files for xteas
Code:
import com.eclipsesource.json.Json
import com.eclipsesource.json.JsonObject
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
import java.net.URL
import java.nio.charset.StandardCharsets
import java.nio.file.Files
import java.nio.file.Paths
import java.util.stream.Collectors
object Main {
@Throws(IOException::class)
@JvmStatic
fun main(args: Array<String>) {
val xteaFolder = Paths.get("./xteas/").toFile()
if (!xteaFolder.exists() && !xteaFolder.mkdir()) {
return
}
val url = URL("https://api.runelite.net/runelite-1.2.5/xtea")
val conn = url.openConnection()
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36")
var text = ""
BufferedReader(InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)).use { reader -> text = reader.lines().collect(Collectors.joining("\n")) }
val parent = Json.parse(text).asArray()
for (jsonValue in parent) {
val child = jsonValue as JsonObject
if (child.get("region") == null || child.get("keys") == null) {
continue
}
val regionId = child.get("region").asInt()
val arr = child.get("keys").asArray()
if (arr.size() != 4) {
continue
}
val keys = StringBuilder()
for (i in 0 until arr.size()) {
keys.append(arr.get(i).toString())
if (i < arr.size() - 1) {
keys.append(System.lineSeparator())
}
}
Files.write(Paths.get("./xteas/", regionId.toString() + ".txt"), keys.toString().toByteArray())
}
}
}
Code:
<dependencies>
<dependency>
<groupId>com.eclipsesource.minimal-json</groupId>
<artifactId>minimal-json</artifactId>
<version>0.9.4</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test</artifactId>
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>