Graham
85f497f619
Treat a world list checksum of 0 as 1
...
This fixes a 1 in 2^32 chance that we'll fail to fetch the world list on
startup.
Of course, updating the player counts will still be borked if we get a
collision, but at least the client won't break entirely.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
8ff91b5ee2
Implement world list packet
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
1b83f4b4b3
Add CacheProvider
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
3889c8a034
Terminate all threads if the server fails to bind to a port
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
9b0260a3df
Add GameService
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
2c43930db2
Move Js5Archive and Js5ConfigGroup to cache-550
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
21cf2526c5
Format Http.kt
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
65194fae43
Rename poll to removeFirstOrNull
...
This is more consistent with the Kotlin standard library.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
493886a8bd
Improve error messages in CrossDomainChannelHandler
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
a50e0ea998
Restrict supported HTTP methods
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
a8d048de00
Remove pipelining support from the crossdomain handler
...
It isn't necessary.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
86a84c6986
Serve .jar files with the correct MIME type
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
89f7a192f9
Optimise inbound message matcher creation
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
29693a39cf
Add timeout support for all services on the RS2 port
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
a43e98e8f4
Add HTTP keep-alive support
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
03fc499566
Improve robustness of reference counting in JaggrabChannelHandler
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
620808cb97
Improve the HTTP implementation
...
This commit adds support for:
* Version negotiation.
* HEAD requests.
* Friendly error messages.
* More robust reference counting.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
92a01b6262
Add cross-domain policy support
...
Required by the most recent versions of the Java plugin (before it was
killed).
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
440711def0
Fix JAGGRAB request parsing
...
The paths aren't prefixed with a slash, unlike HTTP.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
7e8883b430
Move Store/Js5MasterIndex providers to the game module
...
This prevents the archive module from failing on a machine without the
cache installed (like the archive.openrs2.org server).
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
080677b45c
Name the shutdown hook thread
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
43b8be3ff3
Add shutdown hook
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
dc4b769f29
Add startup log messages
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
fbb9694feb
Close JS5 connection if an invalid file is requested
...
This mimics the behaviour of the OSRS server.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
bc018a3b0f
Add initial JAGGRAB, JS5 and HTTP servers
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
9e8d1fca1c
Use type-safe project accessors
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
6498d39306
Add Gradle 7 version catalog
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
c5bd044574
Add CloseableInjector
...
I'm going to try to minimise use of this (as per
https://github.com/google/guice/wiki/Avoid-Injecting-Closable-Resources ).
For example, I'm going to inject a pooling DataSource rather than
Connection objects, as per the advice at the end of the page. However,
HikariCP's DataSource implementation is itself Closeable.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
a8c1ecb429
Remove use of deprecated mainClassName property where possible
...
We can't remove it from all/build.gradle.kts yet, as the shadow plugin
still tries to read it.
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
f143eef142
Move Kotlin files from src/{main,test}/java to src/{main,test}/kotlin
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
ce5b76ef0f
Rename dev.openrs2 package to org.openrs2
...
Signed-off-by: Graham <gpe@openrs2.org>
4 years ago
Graham
3ee8005ab7
Update clikt
...
Signed-off-by: Graham <gpe@openrs2.dev>
4 years ago
Graham
232ba32bbd
Enable explicit API mode
...
This already caught some cases of public members that should have been
private and one case where the inferred type was too specific.
Signed-off-by: Graham <gpe@openrs2.dev>
4 years ago
Graham
0c76c610bd
Convert Guice modules to objects
...
Signed-off-by: Graham <gpe@openrs2.dev>
5 years ago
Graham
177326221f
Move cryptographic code to a separate module
...
Signed-off-by: Graham <gpe@openrs2.dev>
5 years ago
Graham
a52d58e8b5
Use Clikt to implement the command-line interface
...
Signed-off-by: Graham <gpe@openrs2.dev>
5 years ago
Graham
54aec42f90
Format .kts files
5 years ago
Graham
ccbbf873af
Switch from Maven to Gradle
5 years ago
Graham
65f0cc0f6e
Add GameServer skeleton
5 years ago
Graham
77e8b0cdc0
Use top-level Kotlin main() functions
5 years ago
Graham
136e43ae82
Convert GameServer to Kotlin
5 years ago
Graham
ae2e2a0d9d
Add common dependency to deob-ast and game
5 years ago
Graham
b32c691148
Remove Project Quasar dependency
...
Kotlin has native coroutine support, so it is no longer required.
5 years ago
Graham
2621e503f2
Add GameServer class
5 years ago
Graham
8ecbe7bb82
Remove unused openrs2.root property
5 years ago
Graham
003b7ecfef
Improve <description> wrapping
5 years ago
Graham
405c33c1a1
Format *.xml files with IDEA's code style
5 years ago
Graham
eec8990481
Add description to all modules
5 years ago
Graham
d293176959
Replace maven.multiModuleProjectDirectory with openrs2.root
...
openrs2.root works correctly even if the root of the reactor is a child
project, at the expense of having to re-define the property in each
module.
5 years ago
Graham
ec823d8c44
Add Quasar to a new game server module
6 years ago