Graham
39d2f18cca
Add tool for unpacking OpenNXT caches
...
This is relatively easy as OpenNXT doesn't use the actual SQLite cache
format - it still uses JS5-compressed containers, rather than ZLIB.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
dbb30e0bd8
Disable fsync in FlatFileStore
...
This improves performance significantly.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
4aa181b91a
Add support for disabling fsync in atomicWrite
...
Sometimes we want to ensure the write is atomic but don't care about
durability.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
4252bf0dbc
Update Gradle
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
c3c240b4e6
Cache the /caches.json endpoint for 15 minutes
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
ef2919761d
Add method for peeking at the version trailer
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
5ac5ae76f3
Update dependencies
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
5e4305b0f3
Refactor more code
...
Mostly focused on refactoring more fields in types.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
d80de942e0
Fix womanWear1/2 naming
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
0d87057ae6
Rename more classes
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
3841d39fe8
Refactor more TextureOps
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
e2ceef0a32
Fix case
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
2abd1d7ea0
Fix CreateAccountCodec padding
...
The padding must be between 1 and 8 bytes inclusive, not 0 and 7.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
76e7e93f3c
Allocate buffer exactly in NameSuggestionsCodec
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
fa41b48f1a
Add all create responses
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
f31b2519f9
Add all login responses except OK
...
OK needs a bit more work as I need to decide where the StaffModLevel
enum will live.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
827e6262a9
Rename 'Display video advertisement' to 'Show video advertisement'
...
This fits better with the 'showingVideoAd' string in the client.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
e84a58a36b
Reformat tables in the glossary
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
4e6f5c360d
Add StaffModLevel to the glossary
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
0a5e2343c1
Disambiguate create invalid password responses
...
While the 550 client doesn't distinguish between these two responses,
the 667 client does.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
851ef8e4e9
Separate LoginResponse and Js5LoginResponse
...
I'm currently working on a CreateResponse class, which is even more
distinct from LoginResponse - so I've decided to separate it. For
consistency, separating the JS5 login responses seems sensible too.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
e4b5f8b850
Check there are no trailing bytes in Rs2Decoder
...
Closes #137
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
0a99813932
Don't use LocalDate to represent date of birth in packets
...
The client's UI makes it easy to submit invalid dates not supported by
LocalDate. Rather than throwing an exception in a codec, it'd be good to
support representing these for:
* Allowing the development of a debugging proxy server that sits between
the client and game server.
* Making it easier to send the invalid date of birth response to the
creation request.
We'll still switch to LocalDate as early as possible in the packet
handler in the future.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
650e298bc9
Add CREATE_ACCOUNT packet
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
fef6441889
Fix encryption of CHECK_WORLD_SUITABILITY packet
...
It was using the private key rather than the public key.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
72e259c8ad
Fix length of CREATE_ACCOUNT packet
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
1bb244b7f7
Move length encoding/decoding from Rs2{Decoder,Encoder} to PacketCodec
...
There are now three additional abstract PacketCodec classes:
FixedPacketCodec, VariableBytePacketCodec and VariableShortPacketCodec.
The PacketLength class has been removed, as it is no longer required.
The main reason for this change is that the create suggested names
packet is a bit of an oddball: its length field measures the size of the
packet in longs, not bytes. The codec for this packet will be able to
inherit from PacketCodec directly to implement the custom length logic.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
431685124a
Escape greater/less than symbols incorrectly interpreted as tags
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
6e41863c58
Add create protocol documentation
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
cc8193eca4
Fix typo
2 years ago
Graham
02d39297cb
Sort protocols
2 years ago
Graham
892a69df03
Fix cell alignment
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
537b158928
Add CREATE_CHECK_NAME packet
2 years ago
Graham
7c6ccbf556
Add CreateCheckDateOfBirthCountry packet
2 years ago
Graham
9e969d8dfa
Add CHECK_WORLD_SUITABILITY packet
2 years ago
Graham
4c309a0f50
Split protocol packages into upstream/downstream packages
2 years ago
Graham
73defefef4
Create codecs with dependency injection
...
This will allow the RSA private key to be injected in the login packet
codec.
2 years ago
Graham
af3477776c
Fix ktor dependency names
2 years ago
Graham
55ecf7a037
Add missing Guice API dependency to the archive module
2 years ago
Graham
48944d6bac
Update login packet field descriptions based on official packet names
2 years ago
Graham
c01933614c
Bind Jackson module consistently with other Guice modules
2 years ago
Graham
4604bc8b81
Add assisted injection extension
2 years ago
Graham
3fe7bdcedc
Optimise CloseableInjector
...
We now avoid provisioning if the binding is not AutoCloseable.
2 years ago
Graham
c43d48f71b
Rename LOGIN_DOWNSTREAM_JS5REMOTE to JS5REMOTE_DOWNSTREAM
...
I've also removed the comment - I'm going to have to do something
similar for CREATE_DOWNSTREAM, and I think it's a bit more obvious with
the more distinctive name.
2 years ago
Graham
92c41d4a19
Update dependencies
2 years ago
Graham
80551adeef
Improve consistency of protocol documentation
2 years ago
Graham
0666df686c
Add Base37 implementation
2 years ago
Graham
0c2108d750
Add separate Protocol for INIT_JS5REMOTE_CONNECTION responses
...
This allows us to deal with a single corner case of the same opcode
being used for two slightly different login response packets, depending
on the request.
2 years ago
Graham
e90513aa36
Update to Ktor 2
...
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago
Graham
b665b9a359
Replace TODO with "Verify ID" in the login protocol documentation
...
We're fairly certain this is what the field is called based on the TFU
leak.
Signed-off-by: Graham <gpe@openrs2.org>
2 years ago