A RuneTek3 client (377) that is deobfuscated, converted to Kotlin, and includes QoL improvements.
0

Configure Feed

Select the types of activity you want to include in your feed.

chore: rename src/main/java and src/test/java to src/main/kotlin and src/test/kotlin

The migration to Kotlin completed long ago; the directory names were stale.
No build changes needed — the Kotlin Gradle plugin auto-detects the new path.

src/main/java/com/jagex/runescape/Game.kt src/main/kotlin/com/jagex/runescape/Game.kt
src/main/java/com/jagex/runescape/GameFrame.kt src/main/kotlin/com/jagex/runescape/GameFrame.kt
src/main/java/com/jagex/runescape/GameShell.kt src/main/kotlin/com/jagex/runescape/GameShell.kt
src/main/java/com/jagex/runescape/cache/Archive.kt src/main/kotlin/com/jagex/runescape/cache/Archive.kt
src/main/java/com/jagex/runescape/cache/FileOperations.kt src/main/kotlin/com/jagex/runescape/cache/FileOperations.kt
src/main/java/com/jagex/runescape/cache/Index.kt src/main/kotlin/com/jagex/runescape/cache/Index.kt
src/main/java/com/jagex/runescape/cache/bzip/BZip2Decompressor.kt src/main/kotlin/com/jagex/runescape/cache/bzip/BZip2Decompressor.kt
src/main/java/com/jagex/runescape/cache/bzip/Bzip2Context.kt src/main/kotlin/com/jagex/runescape/cache/bzip/Bzip2Context.kt
src/main/java/com/jagex/runescape/cache/cfg/ChatCensor.kt src/main/kotlin/com/jagex/runescape/cache/cfg/ChatCensor.kt
src/main/java/com/jagex/runescape/cache/cfg/Varbit.kt src/main/kotlin/com/jagex/runescape/cache/cfg/Varbit.kt
src/main/java/com/jagex/runescape/cache/cfg/Varp.kt src/main/kotlin/com/jagex/runescape/cache/cfg/Varp.kt
src/main/java/com/jagex/runescape/cache/def/ActorDefinition.kt src/main/kotlin/com/jagex/runescape/cache/def/ActorDefinition.kt
src/main/java/com/jagex/runescape/cache/def/FloorDefinition.kt src/main/kotlin/com/jagex/runescape/cache/def/FloorDefinition.kt
src/main/java/com/jagex/runescape/cache/def/GameObjectDefinition.kt src/main/kotlin/com/jagex/runescape/cache/def/GameObjectDefinition.kt
src/main/java/com/jagex/runescape/cache/def/ItemDefinition.kt src/main/kotlin/com/jagex/runescape/cache/def/ItemDefinition.kt
src/main/java/com/jagex/runescape/cache/media/AnimationSequence.kt src/main/kotlin/com/jagex/runescape/cache/media/AnimationSequence.kt
src/main/java/com/jagex/runescape/cache/media/IdentityKit.kt src/main/kotlin/com/jagex/runescape/cache/media/IdentityKit.kt
src/main/java/com/jagex/runescape/cache/media/ImageRGB.kt src/main/kotlin/com/jagex/runescape/cache/media/ImageRGB.kt
src/main/java/com/jagex/runescape/cache/media/IndexedImage.kt src/main/kotlin/com/jagex/runescape/cache/media/IndexedImage.kt
src/main/java/com/jagex/runescape/cache/media/SpotAnimation.kt src/main/kotlin/com/jagex/runescape/cache/media/SpotAnimation.kt
src/main/java/com/jagex/runescape/cache/media/TypeFace.kt src/main/kotlin/com/jagex/runescape/cache/media/TypeFace.kt
src/main/java/com/jagex/runescape/cache/media/Widget.kt src/main/kotlin/com/jagex/runescape/cache/media/Widget.kt
src/main/java/com/jagex/runescape/collection/Cache.kt src/main/kotlin/com/jagex/runescape/collection/Cache.kt
src/main/java/com/jagex/runescape/collection/CacheableNode.kt src/main/kotlin/com/jagex/runescape/collection/CacheableNode.kt
src/main/java/com/jagex/runescape/collection/HashTable.kt src/main/kotlin/com/jagex/runescape/collection/HashTable.kt
src/main/java/com/jagex/runescape/collection/Node.kt src/main/kotlin/com/jagex/runescape/collection/Node.kt
src/main/java/com/jagex/runescape/collection/Queue.kt src/main/kotlin/com/jagex/runescape/collection/Queue.kt
src/main/java/com/jagex/runescape/config/Actions.kt src/main/kotlin/com/jagex/runescape/config/Actions.kt
src/main/java/com/jagex/runescape/config/Configuration.kt src/main/kotlin/com/jagex/runescape/config/Configuration.kt
src/main/java/com/jagex/runescape/config/IncomingPacket.kt src/main/kotlin/com/jagex/runescape/config/IncomingPacket.kt
src/main/java/com/jagex/runescape/config/MovementType.kt src/main/kotlin/com/jagex/runescape/config/MovementType.kt
src/main/java/com/jagex/runescape/game/Audio.kt src/main/kotlin/com/jagex/runescape/game/Audio.kt
src/main/java/com/jagex/runescape/game/Camera.kt src/main/kotlin/com/jagex/runescape/game/Camera.kt
src/main/java/com/jagex/runescape/game/Entity.kt src/main/kotlin/com/jagex/runescape/game/Entity.kt
src/main/java/com/jagex/runescape/game/Flames.kt src/main/kotlin/com/jagex/runescape/game/Flames.kt
src/main/java/com/jagex/runescape/game/Input.kt src/main/kotlin/com/jagex/runescape/game/Input.kt
src/main/java/com/jagex/runescape/game/Network.kt src/main/kotlin/com/jagex/runescape/game/Network.kt
src/main/java/com/jagex/runescape/game/Rendering.kt src/main/kotlin/com/jagex/runescape/game/Rendering.kt
src/main/java/com/jagex/runescape/game/Scene.kt src/main/kotlin/com/jagex/runescape/game/Scene.kt
src/main/java/com/jagex/runescape/game/Social.kt src/main/kotlin/com/jagex/runescape/game/Social.kt
src/main/java/com/jagex/runescape/media/Animation.kt src/main/kotlin/com/jagex/runescape/media/Animation.kt
src/main/java/com/jagex/runescape/media/ProducingGraphicsBuffer.kt src/main/kotlin/com/jagex/runescape/media/ProducingGraphicsBuffer.kt
src/main/java/com/jagex/runescape/media/Rasterizer.kt src/main/kotlin/com/jagex/runescape/media/Rasterizer.kt
src/main/java/com/jagex/runescape/media/Rasterizer3D.kt src/main/kotlin/com/jagex/runescape/media/Rasterizer3D.kt
src/main/java/com/jagex/runescape/media/Skins.kt src/main/kotlin/com/jagex/runescape/media/Skins.kt
src/main/java/com/jagex/runescape/media/VertexNormal.kt src/main/kotlin/com/jagex/runescape/media/VertexNormal.kt
src/main/java/com/jagex/runescape/media/renderable/GameAnimableObject.kt src/main/kotlin/com/jagex/runescape/media/renderable/GameAnimableObject.kt
src/main/java/com/jagex/runescape/media/renderable/GameObject.kt src/main/kotlin/com/jagex/runescape/media/renderable/GameObject.kt
src/main/java/com/jagex/runescape/media/renderable/Item.kt src/main/kotlin/com/jagex/runescape/media/renderable/Item.kt
src/main/java/com/jagex/runescape/media/renderable/Model.kt src/main/kotlin/com/jagex/runescape/media/renderable/Model.kt
src/main/java/com/jagex/runescape/media/renderable/ModelHeader.kt src/main/kotlin/com/jagex/runescape/media/renderable/ModelHeader.kt
src/main/java/com/jagex/runescape/media/renderable/Projectile.kt src/main/kotlin/com/jagex/runescape/media/renderable/Projectile.kt
src/main/java/com/jagex/runescape/media/renderable/Renderable.kt src/main/kotlin/com/jagex/runescape/media/renderable/Renderable.kt
src/main/java/com/jagex/runescape/media/renderable/actor/Actor.kt src/main/kotlin/com/jagex/runescape/media/renderable/actor/Actor.kt
src/main/java/com/jagex/runescape/media/renderable/actor/Npc.kt src/main/kotlin/com/jagex/runescape/media/renderable/actor/Npc.kt
src/main/java/com/jagex/runescape/media/renderable/actor/Player.kt src/main/kotlin/com/jagex/runescape/media/renderable/actor/Player.kt
src/main/java/com/jagex/runescape/net/Buffer.kt src/main/kotlin/com/jagex/runescape/net/Buffer.kt
src/main/java/com/jagex/runescape/net/BufferedConnection.kt src/main/kotlin/com/jagex/runescape/net/BufferedConnection.kt
src/main/java/com/jagex/runescape/net/ISAACCipher.kt src/main/kotlin/com/jagex/runescape/net/ISAACCipher.kt
src/main/java/com/jagex/runescape/net/requester/OnDemandNode.kt src/main/kotlin/com/jagex/runescape/net/requester/OnDemandNode.kt
src/main/java/com/jagex/runescape/net/requester/OnDemandRequester.kt src/main/kotlin/com/jagex/runescape/net/requester/OnDemandRequester.kt
src/main/java/com/jagex/runescape/net/requester/Requester.kt src/main/kotlin/com/jagex/runescape/net/requester/Requester.kt
src/main/java/com/jagex/runescape/scene/GroundItemTile.kt src/main/kotlin/com/jagex/runescape/scene/GroundItemTile.kt
src/main/java/com/jagex/runescape/scene/InteractiveObject.kt src/main/kotlin/com/jagex/runescape/scene/InteractiveObject.kt
src/main/java/com/jagex/runescape/scene/MapRegion.kt src/main/kotlin/com/jagex/runescape/scene/MapRegion.kt
src/main/java/com/jagex/runescape/scene/Scene.kt src/main/kotlin/com/jagex/runescape/scene/Scene.kt
src/main/java/com/jagex/runescape/scene/SceneCluster.kt src/main/kotlin/com/jagex/runescape/scene/SceneCluster.kt
src/main/java/com/jagex/runescape/scene/SpawnObjectNode.kt src/main/kotlin/com/jagex/runescape/scene/SpawnObjectNode.kt
src/main/java/com/jagex/runescape/scene/tile/ComplexTile.kt src/main/kotlin/com/jagex/runescape/scene/tile/ComplexTile.kt
src/main/java/com/jagex/runescape/scene/tile/FloorDecoration.kt src/main/kotlin/com/jagex/runescape/scene/tile/FloorDecoration.kt
src/main/java/com/jagex/runescape/scene/tile/GenericTile.kt src/main/kotlin/com/jagex/runescape/scene/tile/GenericTile.kt
src/main/java/com/jagex/runescape/scene/tile/SceneTile.kt src/main/kotlin/com/jagex/runescape/scene/tile/SceneTile.kt
src/main/java/com/jagex/runescape/scene/tile/Wall.kt src/main/kotlin/com/jagex/runescape/scene/tile/Wall.kt
src/main/java/com/jagex/runescape/scene/tile/WallDecoration.kt src/main/kotlin/com/jagex/runescape/scene/tile/WallDecoration.kt
src/main/java/com/jagex/runescape/scene/util/CollisionMap.kt src/main/kotlin/com/jagex/runescape/scene/util/CollisionMap.kt
src/main/java/com/jagex/runescape/scene/util/TiledUtils.kt src/main/kotlin/com/jagex/runescape/scene/util/TiledUtils.kt
src/main/java/com/jagex/runescape/sound/SoundFilter.kt src/main/kotlin/com/jagex/runescape/sound/SoundFilter.kt
src/main/java/com/jagex/runescape/sound/SoundPlayer.kt src/main/kotlin/com/jagex/runescape/sound/SoundPlayer.kt
src/main/java/com/jagex/runescape/sound/SoundTrack.kt src/main/kotlin/com/jagex/runescape/sound/SoundTrack.kt
src/main/java/com/jagex/runescape/sound/SoundTrackEnvelope.kt src/main/kotlin/com/jagex/runescape/sound/SoundTrackEnvelope.kt
src/main/java/com/jagex/runescape/sound/SoundTrackInstrument.kt src/main/kotlin/com/jagex/runescape/sound/SoundTrackInstrument.kt
src/main/java/com/jagex/runescape/util/ChatEncoder.kt src/main/kotlin/com/jagex/runescape/util/ChatEncoder.kt
src/main/java/com/jagex/runescape/util/LinkedList.kt src/main/kotlin/com/jagex/runescape/util/LinkedList.kt
src/main/java/com/jagex/runescape/util/MouseCapturer.kt src/main/kotlin/com/jagex/runescape/util/MouseCapturer.kt
src/main/java/com/jagex/runescape/util/PacketConstants.kt src/main/kotlin/com/jagex/runescape/util/PacketConstants.kt
src/main/java/com/jagex/runescape/util/SignLink.kt src/main/kotlin/com/jagex/runescape/util/SignLink.kt
src/main/java/com/jagex/runescape/util/SkillConstants.kt src/main/kotlin/com/jagex/runescape/util/SkillConstants.kt
src/main/java/com/jagex/runescape/util/TextUtils.kt src/main/kotlin/com/jagex/runescape/util/TextUtils.kt
src/main/java/com/jagex/runescape/world/GroundArray.kt src/main/kotlin/com/jagex/runescape/world/GroundArray.kt
src/test/java/com/jagex/runescape/net/BufferTests.kt src/test/kotlin/com/jagex/runescape/net/BufferTests.kt