global join better
This commit is contained in:
parent
61a2a7500b
commit
cf3dbaa6e9
@ -402,7 +402,7 @@ pub fn instance_join(params: InstanceJoinParams, tx: &mut Transaction, account:
|
||||
|
||||
let mut player = Player::new(account.id, instance.id, cryps);
|
||||
player.vbox.fill();
|
||||
player_create(tx, &player, account)?;
|
||||
let player = player_create(tx, player, account)?;
|
||||
|
||||
instance.add_player(player.clone());
|
||||
|
||||
@ -475,7 +475,6 @@ pub fn instance_game_finished(tx: &mut Transaction, game: &Game, instance_id: Uu
|
||||
true => player.add_win(),
|
||||
false => player.add_loss(),
|
||||
};
|
||||
println!("{:?}", player);
|
||||
player_update(tx, player, true)?;
|
||||
},
|
||||
}
|
||||
|
||||
@ -94,7 +94,7 @@ pub fn player_get(tx: &mut Transaction, account_id: Uuid, instance_id: Uuid) ->
|
||||
return Ok(data);
|
||||
}
|
||||
|
||||
pub fn player_create(tx: &mut Transaction, player: &Player, account: &Account) -> Result<(), Error> {
|
||||
pub fn player_create(tx: &mut Transaction, player: Player, account: &Account) -> Result<Player, Error> {
|
||||
let player_bytes = to_vec(&player)?;
|
||||
|
||||
let query = "
|
||||
@ -110,7 +110,7 @@ pub fn player_create(tx: &mut Transaction, player: &Player, account: &Account) -
|
||||
|
||||
println!("wrote player {:} joined instance: {:}", account.name, player.instance);
|
||||
|
||||
return Ok(());
|
||||
return Ok(player);
|
||||
}
|
||||
|
||||
pub fn player_update(tx: &mut Transaction, player: Player, ignore_phase: bool) -> Result<Player, Error> {
|
||||
@ -168,14 +168,18 @@ pub fn player_cryps_set(params: PlayerCrypsSetParams, tx: &mut Transaction, acco
|
||||
return Err(err_msg("team size is 3"));
|
||||
}
|
||||
|
||||
let mut player = player_get(tx, account.id, Uuid::nil())?;
|
||||
|
||||
let cryps = params.cryp_ids
|
||||
.iter()
|
||||
.map(|id| cryp_get(tx, *id, account.id))
|
||||
.collect::<Result<Vec<Cryp>, Error>>()?;
|
||||
|
||||
player.cryps = cryps;
|
||||
|
||||
player_update(tx, player, false)
|
||||
match player_get(tx, account.id, Uuid::nil()) {
|
||||
Ok(mut p) => {
|
||||
p.cryps = cryps;
|
||||
player_update(tx, p, false)
|
||||
},
|
||||
Err(_) => {
|
||||
return player_create(tx, Player::new(account.id, Uuid::nil(), cryps), &account)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@ use account::{Account, account_create, account_login, account_from_token, accoun
|
||||
use skill::{Skill};
|
||||
// use zone::{Zone, zone_create, zone_join, zone_close};
|
||||
use spec::{Spec};
|
||||
use player::{player_state, player_create, player_cryps_set, Player};
|
||||
use player::{player_state, player_cryps_set, Player};
|
||||
use instance::{instance_join, instance_ready};
|
||||
use vbox::{vbox_accept, vbox_apply, vbox_discard, vbox_combine, vbox_drop};
|
||||
|
||||
@ -163,8 +163,6 @@ impl Rpc {
|
||||
let msg = from_slice::<AccountCreateMsg>(&data).or(Err(err_msg("invalid params")))?;
|
||||
|
||||
let account = account_create(msg.params, tx)?;
|
||||
let player = Player::new(account.id, Uuid::nil(), vec![]);
|
||||
player_create(tx, &player, &account)?;
|
||||
|
||||
Ok(RpcResponse {
|
||||
method: "account_create".to_string(),
|
||||
@ -198,9 +196,6 @@ impl Rpc {
|
||||
let name: String = iter::repeat(()).map(|()| rng.sample(Alphanumeric)).take(8).collect();
|
||||
cryp_spawn(CrypSpawnParams { name }, tx, &account)?;
|
||||
|
||||
let player = Player::new(account.id, Uuid::nil(), vec![]);
|
||||
player_create(tx, &player, &account)?;
|
||||
|
||||
let res = RpcResponse {
|
||||
method: "account_create".to_string(),
|
||||
params: RpcResult::Account(account),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user