(wip) figure out why on_connect can't find player in logged_out table

This commit is contained in:
Tao Tien 2026-02-24 14:30:51 -08:00
parent 093af571d2
commit e2d554f321

View file

@ -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(())
} }