1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00

Stub out payment store web server #9, implement/fix last of login process #8

This commit is contained in:
NGnius (Graham)
2025-03-02 09:52:44 -05:00
parent 7e31f6fe1d
commit f004ca8565
15 changed files with 123 additions and 21 deletions

10
Cargo.lock generated
View File

@@ -1781,6 +1781,16 @@ dependencies = [
"tokio", "tokio",
] ]
[[package]]
name = "rc_microtransactions"
version = "0.1.0"
dependencies = [
"env_logger",
"libfj",
"log",
"rocket",
]
[[package]] [[package]]
name = "rc_services" name = "rc_services"
version = "0.1.0" version = "0.1.0"

View File

@@ -8,7 +8,7 @@ members = [
"auth", "auth",
"polariton_auth", "polariton_auth",
"rc_services", "rc_services_room", "rc_services", "rc_services_room",
"rc_static_data", "rc_static_data", "rc_microtransactions",
"rc_social", "rc_social_room", "rc_social", "rc_social_room",
"rc_chat", "rc_chat_room" "rc_chat", "rc_chat_room"
] ]

View File

@@ -0,0 +1,10 @@
[package]
name = "rc_microtransactions"
version = "0.1.0"
edition = "2021"
[dependencies]
rocket.workspace = true
libfj.workspace = true
log.workspace = true
env_logger.workspace = true

View File

@@ -0,0 +1,12 @@
## defaults for _all_ profiles
[default]
address = "127.0.0.1"
port = 8011
## set only when compiled in debug mode, i.e, `cargo build`
[debug]
port = 8011
## set only when compiled in release mode, i.e, `cargo build --release`
[release]
address = "0.0.0.0"

View File

@@ -0,0 +1,3 @@
#!/bin/bash
cargo build --release --target aarch64-unknown-linux-musl

View File

@@ -0,0 +1,3 @@
#!/bin/bash
#cargo build
RUST_LOG=debug cargo run

View File

@@ -0,0 +1,14 @@
mod robocraft;
#[rocket::get("/")]
fn index() -> &'static str {
"Hello, world!"
}
#[rocket::launch]
fn rocket() -> _ {
env_logger::init();
rocket::build().mount("/", rocket::routes![index])
.attach(robocraft::stage())
}

View File

@@ -0,0 +1,7 @@
mod store;
pub fn stage() -> rocket::fairing::AdHoc {
rocket::fairing::AdHoc::on_ignite("JSON", |rocket| async {
rocket.attach(store::stage())
})
}

View File

@@ -0,0 +1,17 @@
use rocket::{post, routes, serde::json::{json, Value}};
#[post("/robopay/store")]
pub fn robopay_store() -> Value {
// TODO authentication (Authorization header is "Robocraft {JWT token from auth}")
json!({
"response": {
"data": []
}
})
}
pub fn stage() -> rocket::fairing::AdHoc {
rocket::fairing::AdHoc::on_ignite("Robocraft store info", |rocket| async {
rocket.mount("/", routes![robopay_store])
})
}

View File

@@ -14,17 +14,17 @@ pub(super) fn allowed_maps_provider() -> SimpleFunc<146, crate::UserTy, impl (Fn
val_ty: 122, // obj arr val_ty: 122, // obj arr
items: vec![ items: vec![
(Typed::Str(GameMode::BattleArena.as_str().into()), Typed::ObjArr(vec![ (Typed::Str(GameMode::BattleArena.as_str().into()), Typed::ObjArr(vec![
Typed::Str("Assets/Scenes/Planet_Neptune/RC_Planet_Neptune_02_BA".into()), Typed::Str("RC_Planet_Neptune_02_BA".into()),
Typed::Str("Assets/Scenes/Planet_Mars/RC_Planet_Mars_03_BA".into()), Typed::Str("RC_Planet_Mars_03_BA".into()),
Typed::Str("Assets/Scenes/Planet_Mars/RC_Planet_Mars_02_BA".into()), Typed::Str("RC_Planet_Mars_02_BA".into()),
Typed::Str("Assets/Scenes/Planet_Earth/RC_Planet_Earth_02_BA".into()), Typed::Str("RC_Planet_Earth_02_BA".into()),
Typed::Str("Assets/Scenes/Planet_Earth/RC_Planet_Earth_01_BA".into()), Typed::Str("RC_Planet_Earth_01_BA".into()),
Typed::Str("Assets/Scenes/Planet_Neptune/RC_Planet_Neptune_03_BA".into()), Typed::Str("RC_Planet_Neptune_03_BA".into()),
].into()) ].into())
), ),
(Typed::Str(GameMode::TeamDeathmatch.as_str().into()), Typed::ObjArr(vec![ (Typed::Str(GameMode::TeamDeathmatch.as_str().into()), Typed::ObjArr(vec![
Typed::Str("Assets/Scenes/Planet_Neptune/RC_Planet_Neptune_01_CTF".into()), Typed::Str("RC_Planet_Neptune_01_CTF".into()),
Typed::Str("Assets/Scenes/Planet_Mars/RC_Planet_Mars_01_CTF".into()), Typed::Str("RC_Planet_Mars_01_CTF".into()),
].into()) ].into())
), ),
], ],
@@ -33,15 +33,15 @@ pub(super) fn allowed_maps_provider() -> SimpleFunc<146, crate::UserTy, impl (Fn
key_ty: 115, // str key_ty: 115, // str
val_ty: 115, // str val_ty: 115, // str
items: vec![ items: vec![
(Typed::Str("Assets/Scenes/Planet_Neptune/RC_Planet_Neptune_02_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Neptune_02_BA".into())), (Typed::Str("RC_Planet_Neptune_02_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Neptune_02_BA".into())),
(Typed::Str("Assets/Scenes/Planet_Neptune/RC_Planet_Neptune_01_CTF".into()), Typed::Str("strCustomGameMapNameRC_Planet_Neptune_01_CTF".into())), (Typed::Str("RC_Planet_Neptune_01_CTF".into()), Typed::Str("strCustomGameMapNameRC_Planet_Neptune_01_CTF".into())),
(Typed::Str("Assets/Scenes/Planet_Mars/RC_Planet_Mars_03_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Mars_03_BA".into())), (Typed::Str("RC_Planet_Mars_03_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Mars_03_BA".into())),
(Typed::Str("Assets/Scenes/Planet_Mars/RC_Planet_Mars_02_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Mars_02_BA".into())), (Typed::Str("RC_Planet_Mars_02_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Mars_02_BA".into())),
(Typed::Str("Assets/Scenes/Planet_Mars/RC_Planet_Mars_01_CTF".into()), Typed::Str("strCustomGameMapNameRC_Planet_Mars_01_CTF".into())), (Typed::Str("RC_Planet_Mars_01_CTF".into()), Typed::Str("strCustomGameMapNameRC_Planet_Mars_01_CTF".into())),
(Typed::Str("Assets/Scenes/Planet_Earth/RC_Planet_Earth_02_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Earth_02_BA".into())), (Typed::Str("RC_Planet_Earth_02_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Earth_02_BA".into())),
(Typed::Str("Assets/Scenes/Planet_Earth/RC_Planet_Earth_01_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Earth_01_BA".into())), (Typed::Str("RC_Planet_Earth_01_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Earth_01_BA".into())),
(Typed::Str("Assets/Scenes/Planet_Neptune/RC_Planet_Neptune_03_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Neptune_03_BA".into())), (Typed::Str("RC_Planet_Neptune_03_BA".into()), Typed::Str("strCustomGameMapNameRC_Planet_Neptune_03_BA".into())),
(Typed::Str("Assets/Scenes/Planet_Test/TestRobot".into()), Typed::Str("TestRobot".into())), (Typed::Str("TestRobot".into()), Typed::Str("TestRobot".into())),
], ],
})); }));
Ok(params.into()) Ok(params.into())

View File

@@ -15,8 +15,8 @@ pub(super) fn event_system_params_provider() -> SimpleFunc<24, crate::UserTy, im
params.insert(MAP_NAMES_PARAM_KEY, Typed::Arr(Arr { params.insert(MAP_NAMES_PARAM_KEY, Typed::Arr(Arr {
ty: 115, // str ty: 115, // str
items: vec![ items: vec![
Typed::Str("Assets/Scenes/Planet_Neptune/RC_Planet_Neptune_03_BA".into()), Typed::Str("RC_Planet_Neptune_03_BA".into()),
Typed::Str("Assets/Scenes/Planet_Earth/RC_Planet_Earth_01_BA".into()), Typed::Str("RC_Planet_Earth_01_BA".into()),
], ],
})); }));
params.insert(VISIBILITY_PARAM_KEY, Typed::Arr(Arr { params.insert(VISIBILITY_PARAM_KEY, Typed::Arr(Arr {

View File

@@ -71,6 +71,7 @@ mod daily_quests;
mod cube_awards; mod cube_awards;
mod robot_sanction; mod robot_sanction;
mod building_xp; mod building_xp;
mod reconnect_game;
use polariton_server::operations::OperationsHandler; use polariton_server::operations::OperationsHandler;
@@ -155,5 +156,7 @@ pub fn handler() -> OperationsHandler<crate::UserTy> {
.without_state(cube_awards::cube_awards_provider()) .without_state(cube_awards::cube_awards_provider())
.without_state(robot_sanction::robot_sanction_provider()) .without_state(robot_sanction::robot_sanction_provider())
.without_state(building_xp::building_xp_save_provider()) .without_state(building_xp::building_xp_save_provider())
.without_state(robot_sanction::all_robot_sanctions_provider())
.without_state(reconnect_game::available_reconnect_provider())
//.without_state(polariton_server::operations::Ack::<70, _>::default()) //.without_state(polariton_server::operations::Ack::<70, _>::default())
} }

View File

@@ -0,0 +1,12 @@
use polariton_server::operations::SimpleFunc;
use polariton::operation::{ParameterTable, Typed};
const PARAM_KEY: u8 = 207;
pub(super) fn available_reconnect_provider() -> SimpleFunc<171, crate::UserTy, impl (Fn(ParameterTable, &crate::UserTy) -> Result<ParameterTable, i16>) + Sync + Sync> {
SimpleFunc::new(|params, _| {
let mut params = params.to_dict();
params.insert(PARAM_KEY, Typed::Bool(false.into()));
Ok(params.into())
})
}

View File

@@ -17,3 +17,14 @@ pub(super) fn robot_sanction_provider() -> SimpleFunc<174, crate::UserTy, impl (
Ok(params.into()) Ok(params.into())
}) })
} }
pub(super) fn all_robot_sanctions_provider() -> SimpleFunc<176, crate::UserTy, impl (Fn(ParameterTable, &crate::UserTy) -> Result<ParameterTable, i16>) + Sync + Sync> {
SimpleFunc::new(|params, _| {
let mut params = params.to_dict();
params.insert(SANCTION_JSONS_PARAM_KEY, Typed::Arr(Arr {
ty: 115, // str
items: Vec::default(),
}));
Ok(params.into())
})
}

View File

@@ -16,7 +16,7 @@ pub fn static_live_data() -> Json<libfj::robocraft::StaticDataRaw> {
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: "http://127.0.0.1:8001/".into(), // originally "https://auth-backend.freejamgames.com/"
paymentUrl: "https://pay.robocraftgame.com/".into(), paymentUrl: "http://127.0.0.1:8011/".into(),
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(),