diff --git a/src/game/backend/main.mjs b/src/game/backend/main.mjs index 7958169a..527bb230 100644 --- a/src/game/backend/main.mjs +++ b/src/game/backend/main.mjs @@ -65,7 +65,11 @@ wss.on('connection', (ws, request) => { msg?.Tags?.push({ name: 'From-Process', value: processTagValue }); } console.log(`-- Sending message to ${msg.Target} `, msg); - addresseeProcess.state = await sendMessage(addresseeProcess.quickJS, addresseeProcess.state, msg); + const addresseeResult = await sendMessage(addresseeProcess.quickJS, addresseeProcess.state, msg); + addresseeProcess.state = addresseeResult.State; + if (addresseeResult.Output) { + logAndBroadcast(addresseeResult.Output, msg.Target); + } } else { // no process spawned in dev, probably aimed for AO, like transfer action console.log(`-- No process, sending debit notice back to ${msg.Target} `, msg); @@ -96,8 +100,7 @@ function logAndBroadcast(message, processId) { async function sendMessage(quickJs, state, message) { return await new Promise((resolve, reject) => { setTimeout(async () => { - const result = await quickJs.handle(message, processEnv, state); - resolve(result.State); + resolve(await quickJs.handle(message, processEnv, state)); }, 10); }); } diff --git a/src/game/process/cmd/info.mjs b/src/game/process/cmd/info.mjs index b16624fa..5182baf4 100644 --- a/src/game/process/cmd/info.mjs +++ b/src/game/process/cmd/info.mjs @@ -17,10 +17,23 @@ export function standInQueue(state, action) { walletsBench.push(walletAddress); } else { walletsQueue.push(walletAddress); + sendHubNotification(state); } return { walletsQueue, walletsBench }; } +function sendHubNotification(state) { + console.log(`---- GAME -- updating wallets queue`, state.hubProcessId); + ao.send({ + Target: state.hubProcessId, + Data: '1234', + Action: JSON.stringify({ + cmd: Const.Command.hubGamePlayers, + players: state.walletsQueue, + }), + }); +} + export function gameStats(state) { const { gameTreasuresCounter, lastTxs } = state; return { diff --git a/src/game/process/hub.mjs b/src/game/process/hub.mjs index 578827fc..0cbf0155 100644 --- a/src/game/process/hub.mjs +++ b/src/game/process/hub.mjs @@ -29,11 +29,19 @@ export function handle(state, message) { ...action.game, }; console.log(`-- HUB registered game`, state.games[gameProcess]); + ao.result({ + cmd: Const.Command.hubStats, + games: state.games, + }); break; case Const.Command.hubGamePlayers: console.log(`-- HUB updating players`, action); state.games[gameProcess].players = action.players; + ao.result({ + cmd: Const.Command.hubStats, + games: state.games, + }); break; default: diff --git a/tools/deploy-spawn-session.js b/tools/deploy-spawn-session.js index 8b50ba6a..908c791f 100644 --- a/tools/deploy-spawn-session.js +++ b/tools/deploy-spawn-session.js @@ -6,7 +6,6 @@ import { spawnGame, transferToken, setupGameContract } from './game-common.js'; import { replaceId } from './replace-id.js'; import { dateFromArg } from './common.mjs'; import { activeGamesConfig, hourSessionGamesConfig } from './deploy-spawn-session-config.js'; -import ids from '../src/game/config/warp-ao-ids.js'; const jwk = JSON.parse(readFileSync('./.secrets/wallet.json', 'utf-8')); const signer = new ArweaveSigner(jwk);