mirror of
https://github.com/AlecM33/Werewolf.git
synced 2026-01-01 08:49:44 +01:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7c97001363 | ||
|
|
35d280d5ee | ||
|
|
0fe9432528 | ||
|
|
b5c610f9ab | ||
|
|
7cc87d9a48 | ||
|
|
ee4aa21a1d | ||
|
|
4d18ca0d42 | ||
|
|
47263c65a8 | ||
|
|
a7fb2afde1 | ||
|
|
d31999e06e | ||
|
|
7b4a96a8fa | ||
|
|
c180897862 | ||
|
|
088e65c728 | ||
|
|
718ad1b58e | ||
|
|
69a2a88d74 | ||
|
|
5f819f8f17 | ||
|
|
4ad2d6c663 | ||
|
|
01ed3c6842 | ||
|
|
1833bde903 | ||
|
|
915819bb15 |
2
.github/workflows/node.js.yml
vendored
2
.github/workflows/node.js.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [14.x]
|
node-version: [20.x]
|
||||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Use the official lightweight Node.js 14 image.
|
# Use the official lightweight Node.js 14 image.
|
||||||
# https://hub.docker.com/_/node
|
# https://hub.docker.com/_/node
|
||||||
FROM node:14-slim
|
FROM node:20-slim
|
||||||
|
|
||||||
# Create and change to the app directory.
|
# Create and change to the app directory.
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:14-slim
|
FROM node:20-slim
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ import { InProgress } from '../game_state/states/InProgress.js';
|
|||||||
import { Ended } from '../game_state/states/Ended.js';
|
import { Ended } from '../game_state/states/Ended.js';
|
||||||
|
|
||||||
export const gameHandler = (socket, window, gameDOM) => {
|
export const gameHandler = (socket, window, gameDOM) => {
|
||||||
window.onunload = () => {
|
window.onpagehide = () => {
|
||||||
socket.close();
|
socket.close();
|
||||||
};
|
};
|
||||||
document.body.innerHTML = gameDOM + document.body.innerHTML;
|
document.body.innerHTML = gameDOM + document.body.innerHTML;
|
||||||
@@ -60,8 +60,11 @@ export const gameHandler = (socket, window, gameDOM) => {
|
|||||||
toast(err, 'error', true, false);
|
toast(err, 'error', true, false);
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('disconnect', () => {
|
socket.on('disconnect', (reason) => {
|
||||||
toast('Disconnected. Attempting reconnect...', 'error', true, false);
|
toast('Disconnected. Attempting reconnect...', 'error', true, false);
|
||||||
|
if (reason === 'io client disconnect') { // see https://socket.io/docs/v4/client-api/#event-disconnect
|
||||||
|
socket.connect();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
setClientSocketHandlers(stateBucket, socket);
|
setClientSocketHandlers(stateBucket, socket);
|
||||||
resolve();
|
resolve();
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ module.exports = {
|
|||||||
path: path.resolve(__dirname, '../dist'),
|
path: path.resolve(__dirname, '../dist'),
|
||||||
filename: "[name]-bundle.js"
|
filename: "[name]-bundle.js"
|
||||||
},
|
},
|
||||||
plugins: [new CompressionPlugin({ deleteOriginalAssets: true, exclude: [/521-bundle.js$/]})],
|
plugins: [new CompressionPlugin({ deleteOriginalAssets: true, exclude: [/\d+-bundle.js$/]})],
|
||||||
mode: "production",
|
mode: "production",
|
||||||
node: false,
|
node: false,
|
||||||
module: {
|
module: {
|
||||||
|
|||||||
6312
package-lock.json
generated
6312
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@@ -21,24 +21,24 @@
|
|||||||
},
|
},
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"node": ">= 20.0.0"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"babel-loader": "^8.2.3",
|
"babel-loader": "^8.2.3",
|
||||||
"body-parser": "^1.20.1",
|
"body-parser": "^1.20.3",
|
||||||
"compression-webpack-plugin": "^10.0.0",
|
"compression-webpack-plugin": "^10.0.0",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"express": "^4.18.2",
|
"express": "^4.21.1",
|
||||||
"express-force-https": "^1.0.0",
|
"express-force-https": "^1.0.0",
|
||||||
"express-rate-limit": "^6.0.1",
|
"express-rate-limit": "^6.0.1",
|
||||||
"open": "^7.0.3",
|
"open": "^7.0.3",
|
||||||
"rate-limiter-flexible": "^2.3.6",
|
"rate-limiter-flexible": "^2.3.6",
|
||||||
"redis": "^4.5.1",
|
"redis": "^4.5.1",
|
||||||
"regenerator-runtime": "^0.13.9",
|
"regenerator-runtime": "^0.13.9",
|
||||||
"socket.io": "^4.6.1",
|
"socket.io": "^4.8.1",
|
||||||
"socket.io-client": "^4.5.4"
|
"socket.io-client": "^4.7.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.18.13",
|
"@babel/core": "^7.18.13",
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
"karma": "^6.3.16",
|
"karma": "^6.3.16",
|
||||||
"karma-chrome-launcher": "^3.1.0",
|
"karma-chrome-launcher": "^3.1.0",
|
||||||
"karma-jasmine": "^4.0.1",
|
"karma-jasmine": "^4.0.1",
|
||||||
"webpack": "^5.76.0",
|
"webpack": "^5.94.0",
|
||||||
"webpack-cli": "^4.9.1",
|
"webpack-cli": "^4.9.1",
|
||||||
"webpack-remove-debug": "^0.1.0"
|
"webpack-remove-debug": "^0.1.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -191,7 +191,7 @@ class GameManager {
|
|||||||
&& game.people.filter(person => person.userType === USER_TYPES.SPECTATOR).length === PRIMITIVES.MAX_SPECTATORS
|
&& game.people.filter(person => person.userType === USER_TYPES.SPECTATOR).length === PRIMITIVES.MAX_SPECTATORS
|
||||||
) {
|
) {
|
||||||
return Promise.reject({ status: 400, reason: 'There are too many people already spectating.' });
|
return Promise.reject({ status: 400, reason: 'There are too many people already spectating.' });
|
||||||
} else if (joinAsSpectator || this.isGameStartable(game)) {
|
} else if (joinAsSpectator || this.isGameStartable(game) || game.status === STATUS.IN_PROGRESS) {
|
||||||
return await addSpectator(game, name, this.logger, this.namespace, this.eventManager, this.instanceId, this.refreshGame);
|
return await addSpectator(game, name, this.logger, this.namespace, this.eventManager, this.instanceId, this.refreshGame);
|
||||||
}
|
}
|
||||||
let moderator, newPlayer;
|
let moderator, newPlayer;
|
||||||
|
|||||||
Reference in New Issue
Block a user