rooms lol
This commit is contained in:
		@@ -38,7 +38,10 @@ server.listen(8080);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
app
 | 
					app
 | 
				
			||||||
  .use(express.static(path.resolve("src", "static")))
 | 
					  .use(express.static(path.resolve("src", "static")))
 | 
				
			||||||
 | 
					  .get("/rooms", (req, res) => {
 | 
				
			||||||
 | 
					    res.setHeader("Content-Type", "application/json");
 | 
				
			||||||
 | 
					    res.send([...rooms.keys()]);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
io.on("connection", socket => {
 | 
					io.on("connection", socket => {
 | 
				
			||||||
  socket.emit("auth"); // initial ping
 | 
					  socket.emit("auth"); // initial ping
 | 
				
			||||||
@@ -46,22 +49,37 @@ io.on("connection", socket => {
 | 
				
			|||||||
    console.log(blah);
 | 
					    console.log(blah);
 | 
				
			||||||
    io.in(socket.room).emit("test", blah);
 | 
					    io.in(socket.room).emit("test", blah);
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
  socket.on("player", data => { // playername, roomname
 | 
					  socket.on("player", data => { // playername, gameroom
 | 
				
			||||||
    socket.playername = data.playername;
 | 
					    socket.playername = data.playername;
 | 
				
			||||||
    socket.room = data.roomname;
 | 
					    socket.room = data.gameroom;
 | 
				
			||||||
 | 
					    socket.join(data.gameroom);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    socket.join(data.roomname);
 | 
					    if(!rooms.has(data.gameroom)) {
 | 
				
			||||||
 | 
					      rooms.set(data.gameroom, {
 | 
				
			||||||
    if(!rooms.has(data.roomname)) {
 | 
					        player: new Map(Object.entries({ [data.playername]: { cards: new cards, leader: true }})),
 | 
				
			||||||
      rooms.set(data.roomname, {
 | 
					        mainstack: []//deck()
 | 
				
			||||||
        player: new Map(Object.entries({ [data.playername]: { cards: new cards }})),
 | 
					 | 
				
			||||||
        mainstack: deck()
 | 
					 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(!rooms.get(data.gameroom).player.has(data.playername)) {
 | 
				
			||||||
 | 
					      rooms.get(data.gameroom).player.set(data.playername, { cards: new cards, leader: false });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    console.log(rooms);
 | 
					    console.log(rooms);
 | 
				
			||||||
    socket.emit("done");
 | 
					    io.in(socket.room).emit("playerlist", [...rooms.get(data.gameroom).player.keys()]);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					  socket.on("disconnect", data => {
 | 
				
			||||||
 | 
					    const room = socket.room;
 | 
				
			||||||
 | 
					    const player = socket.playername;
 | 
				
			||||||
 | 
					    socket.disconnect(true);
 | 
				
			||||||
 | 
					    rooms.get(room).player.delete(player);
 | 
				
			||||||
 | 
					    io.in(room).emit("playerlist", [...rooms.get(room).player.keys()]);
 | 
				
			||||||
 | 
					    if(rooms.get(room).player.size === 1)
 | 
				
			||||||
 | 
					      rooms.get(room).player.values().next().leader = true;
 | 
				
			||||||
 | 
					    if(rooms.get(room).player.size === 0)
 | 
				
			||||||
 | 
					      rooms.delete(room);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
});
 | 
					const r = repl.start("> ");
 | 
				
			||||||
 | 
					r.context.rooms = rooms;
 | 
				
			||||||
//repl.start("> ");
 | 
					 | 
				
			||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
import * as render from "./render.js";
 | 
					import * as render from "./render.js";
 | 
				
			||||||
import { tpl, msgBox } from "./tpl.js";
 | 
					import { msgBox } from "./tpl.js";
 | 
				
			||||||
//let socket = io();
 | 
					//let socket = io();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function card({ type = "normal", val = "" }) {
 | 
					function card({ type = "normal", val = "" }) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,45 +1,33 @@
 | 
				
			|||||||
 | 
					import { msgBox, removeAllmsgBox } from "./tpl.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let socket = false;
 | 
					let socket = false;
 | 
				
			||||||
let _playername;
 | 
					let _playername;
 | 
				
			||||||
let _roomname;
 | 
					let _gameroom;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const connect = ({ playername, roomname = "default" }) => {
 | 
					export const connect = ({ playername, gameroom = "default" }) => {
 | 
				
			||||||
  // checks
 | 
					  // checks
 | 
				
			||||||
  if(playername < 3 || roomname < 3)
 | 
					  if(playername < 3 || gameroom < 3)
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  [_playername, _roomname] = [playername, roomname];
 | 
					  [_playername, _gameroom] = [playername, gameroom];
 | 
				
			||||||
 | 
					  if(socket) {
 | 
				
			||||||
 | 
					    socket.disconnect();
 | 
				
			||||||
 | 
					    socket = false;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  socket = io();
 | 
					  socket = io();
 | 
				
			||||||
  socketevents();
 | 
					  socketevents();
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const socketevents = () => {
 | 
					const socketevents = () => {
 | 
				
			||||||
  socket.on("auth", () => {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*const socketevents = () => {
 | 
					 | 
				
			||||||
  socket.on("auth", () => {
 | 
					  socket.on("auth", () => {
 | 
				
			||||||
    socket.emit("player", {
 | 
					    socket.emit("player", {
 | 
				
			||||||
      roomname: _roomname,
 | 
					      playername: _playername,
 | 
				
			||||||
      playername: _playername
 | 
					      gameroom: _gameroom
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
  socket.on("done", () => {
 | 
					  removeAllmsgBox();
 | 
				
			||||||
    socket.emit("test", "lul");
 | 
					  msgBox("waitforPlayer");
 | 
				
			||||||
  });
 | 
					  socket.on("playerlist", player => {
 | 
				
			||||||
  socket.on("test", blah => {
 | 
					    document.querySelector("span#wfp_players").innerHTML = player.join("<br />");
 | 
				
			||||||
    console.log(blah);
 | 
					 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					 | 
				
			||||||
export const connect = ({ playername, roomname = "default" }) => {
 | 
					 | 
				
			||||||
  [_playername, _roomname] = [playername, roomname];
 | 
					 | 
				
			||||||
  if(!socket)
 | 
					 | 
				
			||||||
    socket = io();
 | 
					 | 
				
			||||||
  else {
 | 
					 | 
				
			||||||
    socket.disconnect(true);
 | 
					 | 
				
			||||||
    socket = io();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  socketevents();
 | 
					 | 
				
			||||||
};*/
 | 
					 | 
				
			||||||
@@ -101,6 +101,18 @@ export const tpl = {
 | 
				
			|||||||
          removemsgBox(e.target.parentNode.parentNode.parentNode);
 | 
					          removemsgBox(e.target.parentNode.parentNode.parentNode);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }]
 | 
					      }]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    waitforPlayer: {
 | 
				
			||||||
 | 
					      title: "waiting for players",
 | 
				
			||||||
 | 
					      content: `
 | 
				
			||||||
 | 
					        actually connected: <span id="wfp_players">1</span>
 | 
				
			||||||
 | 
					      `,
 | 
				
			||||||
 | 
					      buttons: [{
 | 
				
			||||||
 | 
					        tpl: `<input class="msgButton" type="button" value="Cancel" />`,
 | 
				
			||||||
 | 
					        event: e => {
 | 
				
			||||||
 | 
					          removemsgBox(e.target.parentNode.parentNode.parentNode);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
@@ -110,6 +122,11 @@ const removemsgBox = node => {
 | 
				
			|||||||
  if(document.querySelectorAll(".msgBox").length === 0 && document.querySelector("div#menu").style.display === "none")
 | 
					  if(document.querySelectorAll(".msgBox").length === 0 && document.querySelector("div#menu").style.display === "none")
 | 
				
			||||||
    document.querySelector("#black").style.display = "none";
 | 
					    document.querySelector("#black").style.display = "none";
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					export const removeAllmsgBox = () => {
 | 
				
			||||||
 | 
					  document.querySelectorAll(".msgbox").forEach(msgbox => {
 | 
				
			||||||
 | 
					    removemsgBox(msgbox);
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const msgBox = type => {
 | 
					export const msgBox = type => {
 | 
				
			||||||
  if(document.querySelector("#black").style.display === "none")
 | 
					  if(document.querySelector("#black").style.display === "none")
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user