|
|
|
const express = require('express');
|
|
|
|
const app = express.Router();
|
|
|
|
const expressWs = require('express-ws')(app);
|
|
|
|
|
|
|
|
const sqlite = require('better-sqlite3');
|
|
|
|
const db = new sqlite('the_big_db.db', { verbose: console.log });
|
|
|
|
|
|
|
|
const { loginRequired } = require('../authStuff.js');
|
|
|
|
|
|
|
|
const { interpret, sockets, lookUpObject,
|
|
|
|
getAttribute, setAttribute, hasOwnAttribute, deleteAttribute } = require('../interpreter.js');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.ws('/embody', (ws, req) => {
|
|
|
|
// const { playerObject } = db.prepare('select playerObject from users where id=?').get(req.session.userId)
|
|
|
|
const playerObjectId = 30; // mocked out for now!
|
|
|
|
sockets.set(playerObjectId, ws);
|
|
|
|
ws.send(`location change to: #${getAttribute(playerObjectId, "location")}`);
|
|
|
|
|
|
|
|
ws.on('message', (msg) => {
|
|
|
|
const location = lookUpObject(playerObjectId).location;
|
|
|
|
|
|
|
|
interpret(location, playerObjectId, msg);
|
|
|
|
});
|
|
|
|
|
|
|
|
ws.on('close', () => sockets.delete(playerObjectId));
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = app;
|