diff --git a/scripts/bot/run-bot.js b/scripts/bot/run-bot.js index 687f27f8598764a9384dc7023e523bf1e9be6288..6992f6e435bee774da40c0dedd2f4e677d476d25 100755 --- a/scripts/bot/run-bot.js +++ b/scripts/bot/run-bot.js @@ -37,7 +37,7 @@ function log(...objs) { }; const roomOption = options["--room"]; if (roomOption) { - params.room = roomOption; + params.hub_id = roomOption; } const url = `${baseUrl}?${querystring.stringify(params)}`; diff --git a/src/hub.js b/src/hub.js index b694d396c36f4e8f202c90fbcbfa429c13c22d76..a9033ebfed74a1222864f41ac1af6c7033bf662c 100644 --- a/src/hub.js +++ b/src/hub.js @@ -273,10 +273,6 @@ async function handleHubChannelJoined(entryManager, hubChannel, data) { hubChannel.channel.push("naf", payload); }; - - if (isBotMode) { - entryManager.enterSceneWhenLoaded(new MediaStream(), false); - } }) .catch(connectError => { // hacky until we get return codes @@ -289,6 +285,14 @@ async function handleHubChannelJoined(entryManager, hubChannel, data) { }); } +async function runBotMode(scene, entryManager) { + const noop = () => {}; + scene.renderer = { setAnimationLoop: noop, render: noop }; + + while (!NAF.connection.isConnected()) await nextTick(); + entryManager.enterSceneWhenLoaded(new MediaStream(), false); +} + document.addEventListener("DOMContentLoaded", () => { const scene = document.querySelector("a-scene"); const hubChannel = new HubChannel(store); @@ -354,8 +358,7 @@ document.addEventListener("DOMContentLoaded", () => { // Replace renderer with a noop renderer to reduce bot resource usage. if (isBotMode) { - const noop = () => {}; - scene.renderer = { setAnimationLoop: noop, render: noop }; + runBotMode(scene, entryManager); } }); diff --git a/src/scene-entry-manager.js b/src/scene-entry-manager.js index f5b65c1fdb3234391cae1220c34a574293c0a742..f525c6d0f63d20b6fe06393a0fee129dd6ce5922 100644 --- a/src/scene-entry-manager.js +++ b/src/scene-entry-manager.js @@ -255,6 +255,8 @@ export default class SceneEntryManager { }; _runBot = async mediaStream => { + console.log("Running bot"); + this.playerRig.setAttribute("avatar-replay", { camera: "#player-camera", leftController: "#player-left-controller",