(wip) figure out why on_connect can't find player in logged_out table
This commit is contained in:
parent
093af571d2
commit
e2d554f321
1 changed files with 9 additions and 4 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
#![feature(if_let_guard)]
|
#![feature(if_let_guard)]
|
||||||
|
|
||||||
use log::debug;
|
use log::{debug, trace};
|
||||||
use spacetimedb::{ReducerContext, Table, reducer};
|
use spacetimedb::{ReducerContext, Table, reducer};
|
||||||
|
|
||||||
use crate::tables::*;
|
use crate::tables::*;
|
||||||
|
|
@ -34,6 +34,7 @@ pub fn connect(ctx: &ReducerContext) -> Result<(), String> {
|
||||||
ctx.db.logged_out_player().identity().delete(ctx.sender);
|
ctx.db.logged_out_player().identity().delete(ctx.sender);
|
||||||
player
|
player
|
||||||
} else {
|
} else {
|
||||||
|
debug!("inserting new player with identity {:?}", ctx.sender);
|
||||||
ctx.db.player().try_insert(Player {
|
ctx.db.player().try_insert(Player {
|
||||||
identity: ctx.sender,
|
identity: ctx.sender,
|
||||||
id: 0,
|
id: 0,
|
||||||
|
|
@ -56,10 +57,14 @@ pub fn disconnect(ctx: &ReducerContext) -> Result<(), String> {
|
||||||
.player()
|
.player()
|
||||||
.identity()
|
.identity()
|
||||||
.find(ctx.sender)
|
.find(ctx.sender)
|
||||||
.ok_or_else(|| format!("can't find player {}", ctx.sender))?;
|
.ok_or_else(|| format!("can't find player {} to disconnect", ctx.sender))?;
|
||||||
|
|
||||||
ctx.db.logged_out_player().insert(player);
|
let player = ctx.db.logged_out_player().insert(player);
|
||||||
ctx.db.player().identity().delete(ctx.sender);
|
if !ctx.db.player().identity().delete(ctx.sender) {
|
||||||
|
Err("can't delete row")?
|
||||||
|
}
|
||||||
|
|
||||||
|
debug!("player disconnected: {:?}", player);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue