mirror of
https://git.ngram.ca/OpenJam/rc-servers
synced 2026-08-23 23:08:52 +00:00
Update configs for release ready
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -1954,6 +1954,7 @@ dependencies = [
|
|||||||
name = "rc_static_data"
|
name = "rc_static_data"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"clap",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
"libfj",
|
"libfj",
|
||||||
"log",
|
"log",
|
||||||
|
|||||||
@@ -1,7 +1,15 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "servers"
|
name = "servers"
|
||||||
|
version.workspace = true
|
||||||
|
edition.workspace = true
|
||||||
|
|
||||||
|
[workspace.package]
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
repository = "https://git.ngram.ca/OpenJam/servers"
|
||||||
|
license = "GPLv3"
|
||||||
|
authors = ["NGnius <ngniusness@gmail.com>"]
|
||||||
|
readme = "README.md"
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ In most cases, these means no data is collected or logged except some debug log
|
|||||||
Some personal identifiers are sent but only exist ephemerally.
|
Some personal identifiers are sent but only exist ephemerally.
|
||||||
The exception is Robocraft servers, which store the minimum account info possible on disk.
|
The exception is Robocraft servers, which store the minimum account info possible on disk.
|
||||||
This includes a unique user identifier, username, vehicle data, and user configuration data.
|
This includes a unique user identifier, username, vehicle data, and user configuration data.
|
||||||
The current PC's MAC address is also sent to the server (this is a Robocraft client """feature""", it is not recorded by any server).
|
The current PC's MAC address is also sent to the server (this is a Robocraft client feature, it is not recorded by any server).
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
@@ -36,3 +36,10 @@ It is possible to remove the obfuscation from the Robocraft's `Assembly-CSharp.d
|
|||||||
If you can program or are learning Rust, pull requests are appreciated! If you can't and would prefer not to learn, reporting issues is also welcome.
|
If you can program or are learning Rust, pull requests are appreciated! If you can't and would prefer not to learn, reporting issues is also welcome.
|
||||||
|
|
||||||
If you'd like to discuss, contact NGnius on Signal `rfc.1149` or email `ngniusness@gmail.com`. I'll make a Signal group chat if there's enough interest.
|
If you'd like to discuss, contact NGnius on Signal `rfc.1149` or email `ngniusness@gmail.com`. I'll make a Signal group chat if there's enough interest.
|
||||||
|
|
||||||
|
# Acknowledgements
|
||||||
|
|
||||||
|
A big thanks to the RC15 team for their work on deobfuscating Robocraft .NET assemblies and specifically to RandomScientist for hooking me up with a deobfuscated assembly. Without them, progress would have been too slow and frustrating.
|
||||||
|
|
||||||
|
Thanks for the moral support from community members who reached out and the few IRL people who I went into unnecessary detail with.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<servers>
|
<servers>
|
||||||
<currentgroup>dev</currentgroup>
|
<currentgroup>ngram</currentgroup>
|
||||||
<currentsku>robocraft</currentsku>
|
<currentsku>robocraft</currentsku>
|
||||||
<robocraft>
|
<robocraft>
|
||||||
<dev>
|
<dev>
|
||||||
@@ -14,5 +14,18 @@
|
|||||||
<setting name="authUrl">http://127.0.0.1:8001/</setting>
|
<setting name="authUrl">http://127.0.0.1:8001/</setting>
|
||||||
<setting name="S3URL">http://127.0.0.1:8010/live/data.json</setting>
|
<setting name="S3URL">http://127.0.0.1:8010/live/data.json</setting>
|
||||||
</dev>
|
</dev>
|
||||||
|
<ngram>
|
||||||
|
<setting name="WebServicesServerAddress">ws.services.rc.ngram.ca:4532</setting>
|
||||||
|
<setting name="WebServicesServerAddress__note__forwardedTo">:4533</setting>
|
||||||
|
<setting name="SocialServerAddress">s.services.rc.ngram.ca:4534</setting>
|
||||||
|
<setting name="SocialServerAddress__note__forwardedTo">:4535</setting>
|
||||||
|
<setting name="ChatServerAddress">c.services.rc.ngram.ca:4536</setting>
|
||||||
|
<setting name="ChatServerAddress__note__forwardedTo">:4537</setting>
|
||||||
|
<setting name="SinglePlayerServerAddress">sp.services.rc.ngram.ca:4538</setting>
|
||||||
|
<setting name="SinglePlayerServerAddress__note__forwardedTo">:4539</setting>
|
||||||
|
<setting name="authUrl">https://live-auth.rc.ngram.ca/</setting>
|
||||||
|
<setting name="S3URL">https://static.rc.ngram.ca/live/data.json</setting>
|
||||||
|
<setting name="Payment__note__notUsedHere">https://pay.rc.ngram.ca/live/data.json</setting>
|
||||||
|
</ngram>
|
||||||
</robocraft>
|
</robocraft>
|
||||||
</servers>
|
</servers>
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "auth"
|
name = "auth"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
steam = ["steamworks"]
|
steam = ["steamworks"]
|
||||||
|
|||||||
@@ -6,8 +6,13 @@ mod cardlife;
|
|||||||
mod robocraft;
|
mod robocraft;
|
||||||
|
|
||||||
#[rocket::get("/")]
|
#[rocket::get("/")]
|
||||||
fn index() -> &'static str {
|
fn index() -> String {
|
||||||
"Hello, world!"
|
let name = env!("CARGO_PKG_NAME");
|
||||||
|
let version = env!("CARGO_PKG_VERSION");
|
||||||
|
let authors = env!("CARGO_PKG_AUTHORS");
|
||||||
|
let license = env!("CARGO_PKG_LICENSE");
|
||||||
|
let repo = env!("CARGO_PKG_REPOSITORY");
|
||||||
|
format!("{} {} by [{}]\n{}\n{}", name, version, authors, license, repo)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rocket::launch]
|
#[rocket::launch]
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "polariton_auth"
|
name = "polariton_auth"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_chat"
|
name = "rc_chat"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_chat_room"
|
name = "rc_chat_room"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_core"
|
name = "rc_core"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2024"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_microtransactions"
|
name = "rc_microtransactions"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rocket.workspace = true
|
rocket.workspace = true
|
||||||
|
|||||||
@@ -1,8 +1,13 @@
|
|||||||
mod robocraft;
|
mod robocraft;
|
||||||
|
|
||||||
#[rocket::get("/")]
|
#[rocket::get("/")]
|
||||||
fn index() -> &'static str {
|
fn index() -> String {
|
||||||
"Hello, world!"
|
let name = env!("CARGO_PKG_NAME");
|
||||||
|
let version = env!("CARGO_PKG_VERSION");
|
||||||
|
let authors = env!("CARGO_PKG_AUTHORS");
|
||||||
|
let license = env!("CARGO_PKG_LICENSE");
|
||||||
|
let repo = env!("CARGO_PKG_REPOSITORY");
|
||||||
|
format!("{} {} by [{}]\n{}\n{}", name, version, authors, license, repo)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rocket::launch]
|
#[rocket::launch]
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_services"
|
name = "rc_services"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_services_room"
|
name = "rc_services_room"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_singleplayer"
|
name = "rc_singleplayer"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_singleplayer_room"
|
name = "rc_singleplayer_room"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_social"
|
name = "rc_social"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_social_room"
|
name = "rc_social_room"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rc_static_data"
|
name = "rc_static_data"
|
||||||
version = "0.1.0"
|
version.workspace = true
|
||||||
edition = "2021"
|
edition.workspace = true
|
||||||
|
readme.workspace = true
|
||||||
|
license.workspace = true
|
||||||
|
repository.workspace = true
|
||||||
|
authors.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rocket.workspace = true
|
rocket.workspace = true
|
||||||
libfj.workspace = true
|
libfj.workspace = true
|
||||||
log.workspace = true
|
log.workspace = true
|
||||||
env_logger.workspace = true
|
env_logger.workspace = true
|
||||||
|
clap.workspace = true
|
||||||
|
|||||||
18
rc_static_data/src/cli.rs
Normal file
18
rc_static_data/src/cli.rs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
use clap::Parser;
|
||||||
|
|
||||||
|
#[derive(Parser, Debug)]
|
||||||
|
#[command(version, about, long_about = None)]
|
||||||
|
pub struct CliArgs {
|
||||||
|
/// URL of authentication web server
|
||||||
|
#[arg(long, default_value_t = {"http://127.0.0.1:8001/".to_string()})]
|
||||||
|
pub auth: String,
|
||||||
|
/// URL of microtransactions web server
|
||||||
|
#[arg(long, default_value_t = {"http://127.0.0.1:8011/".to_string()})]
|
||||||
|
pub pay: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CliArgs {
|
||||||
|
pub fn get() -> Self {
|
||||||
|
Self::parse()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,14 +1,22 @@
|
|||||||
mod robocraft;
|
mod robocraft;
|
||||||
|
mod cli;
|
||||||
|
|
||||||
#[rocket::get("/")]
|
#[rocket::get("/")]
|
||||||
fn index() -> &'static str {
|
fn index() -> String {
|
||||||
"Hello, world!"
|
let name = env!("CARGO_PKG_NAME");
|
||||||
|
let version = env!("CARGO_PKG_VERSION");
|
||||||
|
let authors = env!("CARGO_PKG_AUTHORS");
|
||||||
|
let license = env!("CARGO_PKG_LICENSE");
|
||||||
|
let repo = env!("CARGO_PKG_REPOSITORY");
|
||||||
|
format!("{} {} by [{}]\n{}\n{}", name, version, authors, license, repo)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rocket::launch]
|
#[rocket::launch]
|
||||||
fn rocket() -> _ {
|
fn rocket() -> _ {
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
let args = cli::CliArgs::get();
|
||||||
rocket::build().mount("/", rocket::routes![index])
|
rocket::build().mount("/", rocket::routes![index])
|
||||||
.attach(robocraft::stage())
|
.attach(robocraft::stage())
|
||||||
|
.manage(args)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
use rocket::{get, routes, serde::json::Json};
|
use rocket::{get, routes, serde::json::Json, State};
|
||||||
|
|
||||||
#[get("/live/data.json")]
|
#[get("/live/data.json")]
|
||||||
pub fn static_live_data() -> Json<libfj::robocraft::StaticDataRaw> {
|
pub fn static_live_data(cli: &State<crate::cli::CliArgs>) -> Json<libfj::robocraft::StaticDataRaw> {
|
||||||
Json(libfj::robocraft::StaticDataRaw {
|
Json(libfj::robocraft::StaticDataRaw {
|
||||||
MaintenanceMode: "false".into(),
|
MaintenanceMode: "false".into(),
|
||||||
MaintenanceRegex: "".into(),
|
MaintenanceRegex: "".into(),
|
||||||
@@ -15,8 +15,8 @@ pub fn static_live_data() -> Json<libfj::robocraft::StaticDataRaw> {
|
|||||||
PhotonLobbyServer: "rc-backend.servers.robocraftgame.com:4540".into(),
|
PhotonLobbyServer: "rc-backend.servers.robocraftgame.com:4540".into(),
|
||||||
ErrorLogAddress: "logs.freejamgames.com:4561".into(),
|
ErrorLogAddress: "logs.freejamgames.com:4561".into(),
|
||||||
ServerErrorLogAddress: "logs.freejamgames.com:4562".into(),
|
ServerErrorLogAddress: "logs.freejamgames.com:4562".into(),
|
||||||
authUrl: "http://127.0.0.1:8001/".into(), // originally "https://auth-backend.freejamgames.com/"
|
authUrl: cli.auth.clone(), // originally "https://auth-backend.freejamgames.com/"
|
||||||
paymentUrl: "http://127.0.0.1:8011/".into(),
|
paymentUrl: cli.pay.clone(),
|
||||||
enterBattleLogGenerationTimeout: "60".into(),
|
enterBattleLogGenerationTimeout: "60".into(),
|
||||||
GameServerConnectionTestTimeout: 10,
|
GameServerConnectionTestTimeout: 10,
|
||||||
AvatarCdnUrl: "https://rc-cdn-images.robocraftgame.com/customavatar/Live/".into(),
|
AvatarCdnUrl: "https://rc-cdn-images.robocraftgame.com/customavatar/Live/".into(),
|
||||||
|
|||||||
Reference in New Issue
Block a user