1
0
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:
NGnius (Graham)
2025-04-02 20:59:52 -04:00
parent 69d1bfaee0
commit d5f9a4562d
22 changed files with 156 additions and 38 deletions

1
Cargo.lock generated
View File

@@ -1954,6 +1954,7 @@ dependencies = [
name = "rc_static_data"
version = "0.1.0"
dependencies = [
"clap",
"env_logger",
"libfj",
"log",

View File

@@ -1,7 +1,15 @@
[package]
name = "servers"
version.workspace = true
edition.workspace = true
[workspace.package]
version = "0.1.0"
edition = "2021"
repository = "https://git.ngram.ca/OpenJam/servers"
license = "GPLv3"
authors = ["NGnius <ngniusness@gmail.com>"]
readme = "README.md"
[workspace]
members = [

View File

@@ -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.
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.
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
@@ -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'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.

View File

@@ -1,5 +1,5 @@
<servers>
<currentgroup>dev</currentgroup>
<currentgroup>ngram</currentgroup>
<currentsku>robocraft</currentsku>
<robocraft>
<dev>
@@ -14,5 +14,18 @@
<setting name="authUrl">http://127.0.0.1:8001/</setting>
<setting name="S3URL">http://127.0.0.1:8010/live/data.json</setting>
</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>
</servers>

View File

@@ -1,7 +1,11 @@
[package]
name = "auth"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[features]
steam = ["steamworks"]

View File

@@ -6,8 +6,13 @@ mod cardlife;
mod robocraft;
#[rocket::get("/")]
fn index() -> &'static str {
"Hello, world!"
fn index() -> String {
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]

View File

@@ -1,7 +1,11 @@
[package]
name = "polariton_auth"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_chat"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_chat_room"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_core"
version = "0.1.0"
edition = "2024"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_microtransactions"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
rocket.workspace = true

View File

@@ -1,8 +1,13 @@
mod robocraft;
#[rocket::get("/")]
fn index() -> &'static str {
"Hello, world!"
fn index() -> String {
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]

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_services"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_services_room"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_singleplayer"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_singleplayer_room"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_social"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,7 +1,11 @@
[package]
name = "rc_social_room"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
log.workspace = true

View File

@@ -1,10 +1,15 @@
[package]
name = "rc_static_data"
version = "0.1.0"
edition = "2021"
version.workspace = true
edition.workspace = true
readme.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
[dependencies]
rocket.workspace = true
libfj.workspace = true
log.workspace = true
env_logger.workspace = true
clap.workspace = true

18
rc_static_data/src/cli.rs Normal file
View 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()
}
}

View File

@@ -1,14 +1,22 @@
mod robocraft;
mod cli;
#[rocket::get("/")]
fn index() -> &'static str {
"Hello, world!"
fn index() -> String {
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]
fn rocket() -> _ {
env_logger::init();
let args = cli::CliArgs::get();
rocket::build().mount("/", rocket::routes![index])
.attach(robocraft::stage())
.manage(args)
}

View File

@@ -1,7 +1,7 @@
use rocket::{get, routes, serde::json::Json};
use rocket::{get, routes, serde::json::Json, State};
#[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 {
MaintenanceMode: "false".into(),
MaintenanceRegex: "".into(),
@@ -15,8 +15,8 @@ pub fn static_live_data() -> Json<libfj::robocraft::StaticDataRaw> {
PhotonLobbyServer: "rc-backend.servers.robocraftgame.com:4540".into(),
ErrorLogAddress: "logs.freejamgames.com:4561".into(),
ServerErrorLogAddress: "logs.freejamgames.com:4562".into(),
authUrl: "http://127.0.0.1:8001/".into(), // originally "https://auth-backend.freejamgames.com/"
paymentUrl: "http://127.0.0.1:8011/".into(),
authUrl: cli.auth.clone(), // originally "https://auth-backend.freejamgames.com/"
paymentUrl: cli.pay.clone(),
enterBattleLogGenerationTimeout: "60".into(),
GameServerConnectionTestTimeout: 10,
AvatarCdnUrl: "https://rc-cdn-images.robocraftgame.com/customavatar/Live/".into(),