Thread: Dumping xteas easily

Page 1 of 3 123 LastLast
Results 1 to 10 of 29
  1. #1 Dumping xteas easily 
    Renown Programmer
    Bartvh's Avatar
    Join Date
    May 2017
    Posts
    370
    Thanks given
    89
    Thanks received
    208
    Rep Power
    497
    Hi,

    Just wanted to let everyone know that when playing OSRS using the RuneLite client xtea's are dumped to a public repository. Thanks to Ian, Matthew and Adam all XTEA's where gathered on #155. Lets keep them as up to date as possible.

    Runelite is an open source old school runescape client. You can find more info about it at RuneLite Open Source Oldschool RuneScape Client.

    The XTEA repo can be found at https://api.runelite.net/runelite-1.2.18/xtea (if doesn't work change version number). Be aware that not all xteas are verified. XTEA verification only has been added recently to RuneLite.

    To create a map image of all verified XTEAS you can use this cache tool: https://github.com/kfricilone/OpenRS...ageDumper.java. You will need the latest OSRS cache and the XTEAS formatted in .txt format for it to work. See below on how to convert the .json format to .txt files. Also when you make a picture please upload it here so others can see.

    If you can't get it to work try: https://archive.runestats.com/osrs/

    Credits: Polar


    Spoiler for How to convert the .json format to .txt:

    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>
    Credits: Stuart



    Spoiler for Included verified XTEAS 1-07-2018:

    Attached image
    Credits: Rondo
     


  2. #2  
    Registered Member
    Join Date
    Oct 2017
    Posts
    34
    Thanks given
    9
    Thanks received
    14
    Rep Power
    0
    good shit fam
     

  3. #3  
    Respected Member


    Join Date
    Jan 2009
    Posts
    5,743
    Thanks given
    1,162
    Thanks received
    3,603
    Rep Power
    5000
    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>
     

  4. Thankful users:


  5. #4  
    Renown Programmer
    Bartvh's Avatar
    Join Date
    May 2017
    Posts
    370
    Thanks given
    89
    Thanks received
    208
    Rep Power
    497
    Bump, for those who are doing the quests released yesterday, consider doing them with the Runelite client so their XTEA's get dumped.
     

  6. #5  
    Renown Programmer
    Bartvh's Avatar
    Join Date
    May 2017
    Posts
    370
    Thanks given
    89
    Thanks received
    208
    Rep Power
    497
    Bump, link has been updated.
     

  7. #6  
    🎶 As you're falling down 🎶


    uint32_t's Avatar
    Join Date
    Feb 2015
    Posts
    1,396
    Thanks given
    6,177
    Thanks received
    776
    Rep Power
    5000
    Is this updated for 160?
     

  8. #7  
    lol k


    Join Date
    Mar 2016
    Posts
    301
    Thanks given
    114
    Thanks received
    143
    Rep Power
    414
    Quote Originally Posted by TheOneNOnly View Post
    Is this updated for 160?
    Yes, but you will have to check if they're valid by using openRS
     

  9. #8  
    Respected Member


    Join Date
    Jan 2009
    Posts
    5,743
    Thanks given
    1,162
    Thanks received
    3,603
    Rep Power
    5000
    Valid xteas from this repo as of today

    Attached image
     

  10. Thankful users:


  11. #9  
    Donator
    Mr Sandman's Avatar
    Join Date
    Oct 2011
    Posts
    657
    Thanks given
    176
    Thanks received
    26
    Rep Power
    38
    So will this site https://api.runelite.net/runelite-1.2.9/xtea be obsolete now? Or are they going to keep updating it?
     

  12. #10  
    Renown Programmer
    Bartvh's Avatar
    Join Date
    May 2017
    Posts
    370
    Thanks given
    89
    Thanks received
    208
    Rep Power
    497
    Quote Originally Posted by Mr Sandman View Post
    So will this site https://api.runelite.net/runelite-1.2.9/xtea be obsolete now? Or are they going to keep updating it?
    There is no difference, idk why the link went down for the older version though.
     

Page 1 of 3 123 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. Replies: 2
    Last Post: 05-26-2017, 07:55 AM
  2. Replies: 37
    Last Post: 01-14-2016, 08:22 AM
  3. Replies: 3
    Last Post: 08-23-2012, 08:32 PM
  4. Replies: 5
    Last Post: 03-28-2012, 06:08 PM
  5. How to change port without having to recompile
    By .fabian in forum Tutorials
    Replies: 5
    Last Post: 05-31-2008, 10:25 PM
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •