Code Monkey home page Code Monkey logo

refactored-client-435's Introduction

RuneJS Java Client #435

A RuneScape game client from October 2006 which has been modified to work with RuneJS, a RuneScape game server written in NodeJS and TypeScript. This client is not for OldSchool RuneScape - client #435 pre-dates the very first OSRS client by quite some time.

We've no interest in OSRS client hacking, this client exists as a means to develop on RuneJS game servers and will not work with other server emulators.

Usage

Running the client can be done either with the pre-built client JAR file or by building the Java code and running it manually in an IDE.

Pre-Built Client

Running the pre-built client requires having Java installed: https://www.java.com/en/

Once installed, go into the /prebuilt/ and simply double-click the JAR file to run it. Alternatively if executing the JAR does not work, the command java -jar client-435-0.3.jar may be used from within the /prebuilt/ directory.

The client will use a set of default configurations if no file is provided. The default client configuration matches up to the default RuneJS server configuration for quick and easy initial setup. It's highly advised that you generate your own RSA public and private keys for long term use.

To provide your own configurations, create a file named client-435.conf.yaml in your User Home directory with the following content:

net:
  address: 127.0.0.1
  game_port: 43594
cache:
  cacheDir: .filestore_435
rsa:
  rsaPub: YOUR_RSA_PUBLIC_KEY (default dev pair provided in the example file)
  rsaModulus: YOUR_RSA_PRIVATE_KEY (default dev pair provided in the example file)
login:
  useStaticCredentials: true
  username: a
  password: a
game:
  roofsEnabled: true
  freeTeleports: false
  debugContextMenu: true
serverDisplayName: Build 435

Make sure to modify the given configuration for your specific needs.

Gradle

Gradle provides a wrapper script which downloads the build system to a local cache. This allows you to run the client without the help of an IDE such as IntelliJ. Gradle is also configured to automatically download dependencies.

The following examples use the unix executable ./gradlew, however Windows can replace these with ./gradlew.bat.

Running via Gradle

The application gradle plugin provides the run task, which starts up the Main client class. With this option, arguments can be provided via --args.

./gradlew run

Building a Jar

The jar task can be used to build a jar, which is generated in the build/libs directory.

./gradlew jar
java -jar ./build/libs/client-435-0.3.jar

refactored-client-435's People

Contributors

boogie-nights avatar clementop avatar dnauss avatar gruckion avatar hallowatcher avatar hc747 avatar jameskmonger avatar katilith avatar matthewbishop avatar pazaz avatar promises avatar schauwem avatar theblackparade avatar tynarus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

refactored-client-435's Issues

Rename/repackage chatbox functionality

We could get some benefit from renaming and/or repackaging the chatbox functionality as well as adding docs to it

  • Chatbox.inputType
    0 is default
    1 is "Enter amount"
    2 is "Enter name"
    3 is "Enter object name" (is this vanilla?? what is this?)

     should create an enum for this
    
  • Chatbox.messagePromptRaised
    opens some input box without a heading, covering chatbox
    what is this? would be good to add docs explaining usage

  • Chatbox.inputMessage
    this is the currently typed message

Conversion to message-based packet encoding/decoding system

  • write the core of the system

  • convert all outbound messages

    • chat
      • chat message #96
      • private message #96
      • commands #107
      • accept trade (96) #115
      • accept duel (68) #115
      • chat modes (32) #127
      • chat commands (248)
    • console commands #107
    • interactions
    • magic
      • on player (221) #112
      • on npc (253) #112
      • on object (225) #112
      • on world item (168) #112
      • on widget item (21) #112
    • use item
      • on player (110) #113
      • on npc (208) #113
      • on object (24) #113
      • on world item (172) #113
      • on widget item (40) #113
    • examines
      • on npc (247) #117
      • on object (148) #117
      • on world item (151?) #117
      • on widget item (151?) #117
    • friend/ignore
      • add to friends list (114) #116
      • remove from friends list (255) #116
      • add to ignore list (251) #116
      • remove from ignore list (28) #116
    • walking (73, 89, 236) #145
    • widgets
      • click button (64) #128
      • click "please wait..." option (132) #128
      • confirm appearance change (231) #128
      • numeric input (238) #120
      • name input (86) #126
      • report abuse submit (202) #126
      • drag item on widget (83) #128
      • drop item (29) #128
      • maybe closing widgets (176) #128
    • misc
      • click flashing tab icon (44) #129
    • anticheats? telemetry? who knows.. some of this stuff was in 317 and earlier
      • 121
      • 178
      • 13
      • 210
      • 160
      • 216
      • clicking something? is this an anticheat too? (234)
      • sending camera position? (58)
      • idle checker? (216)
    • unknown group, possibly cs2 related
      • 111
      • 9
      • 193
      • 53
      • 94
      • 213
      • 46
      • 130
      • 157
      • 84

  • convert all inbound messages
    • updating
      • player updating #105
        • refactor appearance block to be structured
      • npc updating (128) #125
      • reset actor animations (27) #132
      • set local player position (129) #134
      • clear local player destination (233) #138
    • region loading
      • standard (166) #118
      • constructed (23) #118
      • "clear map chunk" ? (64) #118
      • reference position (254) #118
    • cameras and cutscenes (7, 255, 253, 234) #137
    • varps/varbits (222, 2, 14, 72) #130
    • cs2 (240)
    • widgets
      • set widget to hidden (115) #126
      • containers
        • update items in container (12) #122
        • clear items in container (174) #122
        • update specific items on widget (214) #122
      • set model (250) #120
      • set npc chathead (160) #120
      • set player chathead (210) #120
      • set widget item model (120) #120
      • set widget text (110) #120
      • set widget text color (231) #120
      • move widget child (3) #120
      • set scroll position (182) #120
      • animate widget model (24) #120
      • rotate widget model (142) #120
      • set widget model rotation speed (117) #120
      • show widgets:
        • on screen (118) #120
        • on tab and screen (84) #120
        • unknown permanent chatbox widget (185)
        • fullscreen (195) #120
        • chatbox (208) #120
        • tab overlay (237) #120
        • tab widget (140) #120
        • walkable widget? (56) #120
        • set report abuse widget (130) #126
        • close all widgets (180) #120
      • inputs
        • "enter amount" input (132) #120
        • "enter name" widget (124) #120
    • bulk packets #146
      • main coordinator (63) #146
      • play sound at position (9) #140
      • spawn ground item (175) #139
      • spawn ground item [exclude some players] (19) #139
      • update ground item amount (99) #139
      • remove ground item (74) #139
      • rotate/animate object (49) #144
      • spawn landscape object (241) #144
      • remove landscape object (143) #144
      • projectile (1) #143
      • player to object transformation (229) #141
      • render gfx (202) #142
    • sound
      • play song #94
      • play sound #94
      • play quick song #94
    • chat
      • chatbox message #96
      • private message #96
      • friend log in/out #96
      • chat mode settings #96
      • update ignore list (211) #123
    • console #107
    • misc
      • log out #106
      • carry weight #106
      • run energy #106
      • skill level/xp #106
      • player options (223) #123
      • system update (116) #119
      • set current open tab (6) #119
      • minimap state (235) #119
      • multi combat (48) #119
      • flash sidebar icon (88) #123
      • set hint icon (186) #133
    • unknown
      • anticheat or something? (58)

TODO add more as I find them

is resolution adjustable?

I might just not see it but is there a way to adjust resolution or maximize the screen. I know this was a limitation of the game in that era. But the game is tiny these days. For the future idiot like me how do you adjust resolution. If you can't that's fine though.

Rename the packages

Currently, the package naming is com.jagex.runescape.* - This should probably renamed to org.runejs.client.*.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.