RT4 client originally compiled on Jan 28, 2009 (530)

Overview

Goals

  • Identify all classes
    • Create new static classes by grouping related members
  • Identify all methods
  • Identify all fields
  • Identify all local variables
  • Remove any remaining obfuscation (possibly none left)
  • Fix poor decompiler behavior (fernflower)
  • Replace magic numbers and bitmasks with named final fields
  • Refactor code to improve behavior/readability
  • Modernize code/libraries (High DPI support, modern refresh rates, ...)
  • Support existing servers via global config flags that adjust packet behaviors
  • Organize classes into packages

OpenRS2 annotations are left in the source to build a deob map from, in case some of my changes aren't desirable.
That mapping can be used to generate a new deob with everything renamed for you.

Instructions

Build requirements:

  • Java 8+

Runtime requirements:

  • SD: Java 8+
  • HD on Windows, use Java 15 or lower. There is a JOGL issue on 16+ related to how they grab the WGL context from the window.
  • HD on Linux: Java 8+
  • HD on macOS: Not possible yet on latest macOS. Might work for earlier OS versions.
git clone https://github.com/Pazaz/RT4-Client.git
cd RT4-Client
./gradlew run

You will be connected to a test server automatically.
This server is provided by 2009scape for their own internal developments.

Deviations

Configurable:

  • Packet behaviors to make it compatible with existing servers
  • View distance in HD
  • Bilinear map filtering in HD/SD
  • Tweening enabled by default (existed in client)
  • Shift-click behavior on inventory items enabled by default (existed in client)

Unconfigurable:

  • JOGL was updated to 2.4.0
  • Update/render loop was decoupled to tick indepedently from each other
  • Camera panning input rewritten to use render loop timing
  • Varp array size was extended to 3500 instead of 2500
  • Mouse wheel camera movement (click middle button and move mouse)
  • Render FPS is set to your monitor's refresh rate
Comments
  • Bank interface drag & drop issues

    Bank interface drag & drop issues

    Neither insertion, swapping within nor dropping an item on a bank tab appear to work. The reproduction is included in the video. Item withdrawal from the bank in the beginning of the video is irrelevant.

    There are no logs available, as none were provided by the client.

    https://user-images.githubusercontent.com/4654533/171101493-d1101c4c-3b68-4ead-98b4-c2acdf205f5c.mp4

    bug 
    opened by vddCore 5
  • Sound not working.

    Sound not working.

    errors occur when starting client, terminal also spits them out when attempting to switch audio modes.

    pc specs~

    cpu; AMD Ryzen 5 3600X

    motherboard; msi x570 gaming plus wifi

    ram; 16gb ddr4

    gpu; SAPPHIRE PULSE RX 5600 XT

    Operating system; Pop! Os 22.04

    image

    opened by pandaEatsMeth 2
  • Definition value renaming

    Definition value renaming

    • No fundamental code changes/deletions
    • Method argument renaming related to definitions to improve readability
    • Reorganized ObjType to group similar methods together
    opened by woahscam 2
  • Shift+Scroll does not behave as intended

    Shift+Scroll does not behave as intended

    When Shift+Scrolling the zoom factor of the client does not change, with the "amount of zoom" stuck at around 50%. PgUp/PgDn does not work either.

    Windows 10 21H2, Eclipse Adoptium Java 8 Latest, vddCore launcher

    enhancement 
    opened by bushtail 2
  • Audio/Command API Expansion

    Audio/Command API Expansion

    • Add ability to dispatch commands to the server to the API
    • Add ability to get and set all volume types to the API
    • Add the ability to explicitly play sounds, jingles and music to the API
    • Changed Update() to call every 1000 client update cycles.
    • Add plugin that listens for the tab key and dispatches the "reply" command (tab-to-reply)
    • Add plugin that uses plugin storage to persist audio settings. Should address a common complaint where these settings don't persist correctly on some OSes. This plugin also allows toggling audio mute/unmute with Ctrl+m.
    opened by Ceikry 0
  • Add support for inserting new right click options, add woah's timer plugin

    Add support for inserting new right click options, add woah's timer plugin

    • Adds support for inserting up to 10 right click menu options with custom callbacks at a time, from inside the new OnMiniMenuCreate() callback
    • Added woah's timer plugin that uses this to set the timer mode (as an example)
    opened by Ceikry 0
  • Plugin system, plugin API

    Plugin system, plugin API

    This MR introduces the plugin system and API I have been working on.

    Once this is merged, I will set up a temporary solution for distributing these plugins, until I can think of a good way to do it.

    opened by Ceikry 0
  • Added a default window size to stop annoying bug from happening

    Added a default window size to stop annoying bug from happening

    There's this really annoying bug that keeps happening:

    The window opens at this size, both SD and HD. So I gave it a default size and it fixed the issue.

    image

    opened by Ceikry 0
  • BasicInputQOL compass button to reset view to north misplaced on SD/HDsmall interface

    BasicInputQOL compass button to reset view to north misplaced on SD/HDsmall interface

    Normally, clicking the compass resets the camera view to facing north. It works as intended when using HD interface.

    On SD (and also on the small HD interface) the compass button trigger area appears to be misplaced somewhere INSIDE the minimap (on the uppermost part). So, the view might accidentaly reset when you're using the minimap to move around.

    opened by frognard 0
  • Crash when config.json and/or

    Crash when config.json and/or "pluginsFolder" is missing

    Plugin repository assumes the config entry exists, leading to a crash on fresh installations.

    Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
    Error: plugin.PluginRepository.Init:37 rt4.client.mainInit:1027 rt4.GameShell.run:610 java.base/java.lang.Thread.run:829 | java.lang.NullPointerException
    error_game_crash
    
    bug 
    opened by vddCore 0
  • ClientScript error while hovering over sort buttons on spellbook interface

    ClientScript error while hovering over sort buttons on spellbook interface

    Detailed description Whenever you have any offensive spell with defensive XP enabled set while wielding an elemental staff, the spellbook interface fails to properly process mouse hover and left-click events on the sorting buttons. Right-click opens a menu but the Sort option does not work. The non-defensive setting works properly.

    Steps to reproduce

    1. Wield any elemental staff.
    2. While having proper runes to cast an offensive spell, go to combat styles and set an offensive spell with defensive XP as auto-attack.
    3. Go to spellbook interface.
    4. Hover over the sorting buttons.

    Relevant logs

    Error:
    rt4.ScriptRunner.run:1902 rt4.ScriptRunner.run:4498 rt4.Protocol.method1756:2927 rt4.client.mainLoop:1584 rt4.GameShell.mainLoopWrapper:425 rt4.GameShell.run:580 java.base/java.lang.Thread.run:829 | java.lang.RuntimeException: C3408-1 | CS2 - scr:2060 op:-1
    

    Client version
    1.0.1b | a63bf74

    https://user-images.githubusercontent.com/4654533/175825300-858ee8e7-4d84-49ba-9f07-37f9ff508500.mp4

    bug 
    opened by vddCore 1
Releases(1.1.4)
  • 1.1.4(Dec 13, 2022)

  • 1.1.3(Nov 14, 2022)

  • 1.1.2(Nov 9, 2022)

  • 1.1.1(Sep 26, 2022)

  • 1.1(Sep 25, 2022)

    This is a big change that opens the client to unlimited extensibility. Plugins can modify the client at runtime to add any number of custom features.

    There is a plugin hub underway to distribute plugins for download/installation. See https://gitlab.com/2009scape/tools/client-plugins until then.

    This feature is entirely thanks to @Ceikry!

    What's Changed

    • Definition value renaming by @woahscam in https://github.com/Pazaz/RT4-Client/pull/8
    • Plugin system, plugin API by @Ceikry in https://github.com/Pazaz/RT4-Client/pull/11

    New Contributors

    • @woahscam made their first contribution in https://github.com/Pazaz/RT4-Client/pull/8

    Full Changelog: https://github.com/Pazaz/RT4-Client/compare/1.0.2...1.1

    Source code(tar.gz)
    Source code(zip)
    rt4-client.jar(8.00 MB)
    rt4-client.jar.sha256(64 bytes)
  • 1.0.2(Aug 4, 2022)

    Primarily addresses inventory sprites being slightly offset: image (Reason still unknown - commit identified - but a temp fix was applied in the mean time)

    What's Changed

    • Client commands no longer locked to admin permissions. For example, you can type ::fpsoff to turn off the display now. Or ::tween to toggle tweening off.
    • FPS display rounds up (no more 59, 143, ...)
    • A lot more refactoring.

    Full Changelog: https://github.com/Pazaz/RT4-Client/compare/1.0.1b...1.0.2

    Source code(tar.gz)
    Source code(zip)
    rt4-client.jar(6.37 MB)
    rt4-client.jar.sha256(64 bytes)
  • 1.0.1b(Jun 20, 2022)

    • Fixed shift not getting unpressed on Windows in 1.0.1 release
    • Window is now centered and set to 1024x768 as a default

    What's Changed

    • Refactor Area NPC packet code by @downthecrop in https://github.com/Pazaz/RT4-Client/pull/1
    • Added a default window size to stop annoying bug from happening by @Ceikry in https://github.com/Pazaz/RT4-Client/pull/4
    • Find + Refactor Camera Zoom Var + Add Scrollwheel Zoom :) by @Ceikry in https://github.com/Pazaz/RT4-Client/pull/5
    • Tons of refactoring/reorganizing static classes (not in PRs)

    New Contributors

    • @downthecrop made their first contribution in https://github.com/Pazaz/RT4-Client/pull/1
    • @Ceikry made their first contribution in https://github.com/Pazaz/RT4-Client/pull/4

    Full Changelog: https://github.com/Pazaz/RT4-Client/compare/1.0.0...1.0.1b

    Source code(tar.gz)
    Source code(zip)
    rt4-client.jar(6.50 MB)
    rt4-client.jar.sha256(64 bytes)
  • 1.0.1(Jun 20, 2022)

    What's Changed

    • Refactor Area NPC packet code by @downthecrop in https://github.com/Pazaz/RT4-Client/pull/1
    • Added a default window size to stop annoying bug from happening by @Ceikry in https://github.com/Pazaz/RT4-Client/pull/4
    • Find + Refactor Camera Zoom Var + Add Scrollwheel Zoom :) by @Ceikry in https://github.com/Pazaz/RT4-Client/pull/5
    • Tons of refactoring/reorganizing static classes (not in PRs)

    New Contributors

    • @downthecrop made their first contribution in https://github.com/Pazaz/RT4-Client/pull/1
    • @Ceikry made their first contribution in https://github.com/Pazaz/RT4-Client/pull/4

    Full Changelog: https://github.com/Pazaz/RT4-Client/compare/1.0.0...1.0.1

    Source code(tar.gz)
    Source code(zip)
    rt4-client.jar(6.50 MB)
    rt4-client.jar.sha256(64 bytes)
  • 1.0.0(May 30, 2022)

Owner
Pazaz
Pazaz
Download compiled jar from packages or compile it by yourself from sources

idle_codes Install Download compiled jar from packages or compile it by yourself from sources Put the jar file wherever you want. Make sure you have J

null 8 Dec 31, 2021
Sample serverless application written in Java compiled with GraalVM native-image

Serverless GraalVM Demo This is a simple serverless application built in Java and uses the GraalVM native-image tool. It consists of an Amazon API Gat

AWS Samples 143 Dec 22, 2022
"Some" Utilities you can use for your Java projects "freely"! Files are compiled with Java-8 and above, but mostly Java-11.

✨ Java-SomeUtils ?? "Some" Utilities you can use for your Java projects "freely"! *"Freely"* forcing you to include the license into your program. Fil

JumperBot_ 2 Jan 6, 2023
This is the src of Badlion client 3.0.0, The reason of this repo is badlion client's owner being p e d o

About Badlion Using Gradle instead of the shit mcp uwu Commands Run with random username gradle startGame Run with another username gradle startGame -

Pace 32 Dec 2, 2022
This is the src of Badlion client 3.0.0, The reason of this repo is badlion client's owner being p e d o

About Badlion Using Gradle instead of the shit mcp uwu Commands Run with random username gradle startGame Run with another username gradle startGame -

Pace 32 Dec 2, 2022
ZerotierFix - An unofficial Zerotier Android client patched from official client

Zerotier Fix An unofficial Zerotier Android client patched from official client. Features Self-hosted Moon Support Add custom planet config via file a

KAAAsS 830 Jan 8, 2023
Simple AnimationUtil using Easing functions. Can be used anywhere, Hacked-Client, Mods, etc..

AnimationUtil Simple AnimationUtil using Easing functions. Can be used anywhere, Hacked-Client, Mods, etc.. Render example > https://gyazo.com/780b5d8

null 71 Jan 8, 2023
Official Elasticsearch Java Client

Elasticsearch Java Client The official Java client for Elasticsearch. Note: this project is still a work in progress. This client is meant to replace

elastic 230 Jan 8, 2023
Spring boot microservice example with Eureka Server + Eureka Client + Spring Cloud API Gateway + OAuth2.0 + Circuit Breaker + Resilience4J + FeignClient + RestTemplate

Spring boot microservice example Spring boot microservice example with Eureka Server + Eureka Client + Spring Cloud API Gateway + OAuth2.0 + Circuit B

Subhash Lamba 47 Dec 29, 2022
图书管理;图书管理系统;图书管理系统后端,该项目采用Springboot整合Mybatis对数据持久化以及Api的封装实现,前台项目地址:https://github.com/Nirunfeng/BookSys-Client

System of Book Management(sbm) 项目说明 图书管理系统后台,该项目采用Springboot整合Mybatis对数据持久化以及Api的封装实现,前台项目地址:BookSys-Client 项目启动 数据库:mysql5.6执行以下脚本,项目下脚本文件--sbm.sql 导

null 61 Dec 30, 2022
SpringBoot show case application for reactive-pulsar library (Reactive Streams adapter for Apache Pulsar Java Client)

Reactive Pulsar Client show case application Prerequisites Cloning reactive-pulsar Running this application requires cloning https://github.com/lhotar

Lari Hotari 9 Nov 10, 2022
Shitty, yet simple way to get someone's token right at their discord client's startup.

discord-token-stealer Shitty, yet simple discord injector to add a little spice to their discord client Disclaimer: This is for educational purposes o

Gavin 3 Sep 26, 2022
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

OpenAPI Generator Master (5.4.x): 6.0.x (6.0.x): ⭐ ⭐ ⭐ If you would like to contribute, please refer to guidelines and a list of open tasks. ⭐ ⭐ ⭐ ‼️

OpenAPI Tools 14.8k Dec 30, 2022
Catogram - Experimental telegram client based on official Android sources

Catogram Experimental telegram client based on official Android sources Features: Message translator TGX Style of context menu VKUI Icons and inbuilt

null 188 Dec 17, 2022
Nagram is a third-party Telegram client based on Nekogram with not many but useful modifications

?? Nagram is a third-party Telegram client based on Nekogram with not many but useful modifications. Official site: https://nextalone.xyz Teleg

NextAlone 189 Dec 29, 2022
Aliucord - Discord Android app mod inspired by desktop Discord client mods.

Aliucord Aliucord is a modification for the Android Discord app inspired by desktop client modifications. Unlike other Android Discord app modificatio

null 2k Dec 31, 2022
Echo client-server components to evaluate Project Loom virtual threads.

Overview Project Loom is the OpenJDK initiative to introduce user-mode threads in Java. The purpose of this repository is to compare Project Loom virt

Elliot Barlas 15 Nov 1, 2022
Fixes Minecraft client lag from receiving chat messages, at the expense of not being able to block players in chat.

chat-lag-fix Fixes Minecraft client lag from receiving chat messages, at the expense of not being able to block players in chat. Mojang in their infin

adryd 21 Dec 4, 2022
Restler is a library that automatically generates a client for a web service at run time, by analyzing the respective annotated Spring controller interface

Restler Overview Restler is a library that automatically generates a client for a web service at run time, by analyzing the respective annotated Sprin

Excelsior LLC 29 Oct 24, 2022