Commit 89c47993 authored by Dennis Willers's avatar Dennis Willers 🏀

Anzeige wie viele Spieler in einem Raum sind und wie viele Spieler welchem Team beigetreten sind

parent c03bc8ec
Pipeline #394 failed with stages
in 48 seconds
...@@ -1922,12 +1922,6 @@ ...@@ -1922,12 +1922,6 @@
"integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==",
"dev": true "dev": true
}, },
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
"dev": true
},
"agent-base": { "agent-base": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
...@@ -2127,12 +2121,6 @@ ...@@ -2127,12 +2121,6 @@
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"dev": true "dev": true
}, },
"arraybuffer.slice": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
"dev": true
},
"arrify": { "arrify": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
...@@ -2434,15 +2422,6 @@ ...@@ -2434,15 +2422,6 @@
"tweetnacl": "^0.14.3" "tweetnacl": "^0.14.3"
} }
}, },
"better-assert": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",
"integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",
"dev": true,
"requires": {
"callsite": "1.0.0"
}
},
"big.js": { "big.js": {
"version": "5.2.2", "version": "5.2.2",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
...@@ -2465,12 +2444,6 @@ ...@@ -2465,12 +2444,6 @@
"file-uri-to-path": "1.0.0" "file-uri-to-path": "1.0.0"
} }
}, },
"blob": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
"integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
"dev": true
},
"blocking-proxy": { "blocking-proxy": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
...@@ -2823,12 +2796,6 @@ ...@@ -2823,12 +2796,6 @@
"caller-callsite": "^2.0.0" "caller-callsite": "^2.0.0"
} }
}, },
"callsite": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
"integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",
"dev": true
},
"callsites": { "callsites": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
...@@ -3219,12 +3186,6 @@ ...@@ -3219,12 +3186,6 @@
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
}, },
"component-inherit": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
"integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
"dev": true
},
"compose-function": { "compose-function": {
"version": "3.0.3", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz",
...@@ -4252,24 +4213,24 @@ ...@@ -4252,24 +4213,24 @@
"dev": true "dev": true
}, },
"elliptic": { "elliptic": {
"version": "6.5.3", "version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
"integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"bn.js": "^4.4.0", "bn.js": "^4.11.9",
"brorand": "^1.0.1", "brorand": "^1.1.0",
"hash.js": "^1.0.0", "hash.js": "^1.0.0",
"hmac-drbg": "^1.0.0", "hmac-drbg": "^1.0.1",
"inherits": "^2.0.1", "inherits": "^2.0.4",
"minimalistic-assert": "^1.0.0", "minimalistic-assert": "^1.0.1",
"minimalistic-crypto-utils": "^1.0.0" "minimalistic-crypto-utils": "^1.0.1"
}, },
"dependencies": { "dependencies": {
"bn.js": { "bn.js": {
"version": "4.11.9", "version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
"dev": true "dev": true
} }
} }
...@@ -5370,23 +5331,6 @@ ...@@ -5370,23 +5331,6 @@
} }
} }
}, },
"has-binary2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
"dev": true,
"requires": {
"isarray": "2.0.1"
},
"dependencies": {
"isarray": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",
"integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",
"dev": true
}
}
},
"has-cors": { "has-cors": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",
...@@ -5895,12 +5839,6 @@ ...@@ -5895,12 +5839,6 @@
"integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
"dev": true "dev": true
}, },
"indexof": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
"dev": true
},
"infer-owner": { "infer-owner": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
...@@ -6702,16 +6640,10 @@ ...@@ -6702,16 +6640,10 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true "dev": true
}, },
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
"dev": true
},
"cookie": { "cookie": {
"version": "0.3.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
"dev": true "dev": true
}, },
"debug": { "debug": {
...@@ -6724,23 +6656,23 @@ ...@@ -6724,23 +6656,23 @@
} }
}, },
"engine.io": { "engine.io": {
"version": "3.4.2", "version": "3.5.0",
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.5.0.tgz",
"integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", "integrity": "sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==",
"dev": true, "dev": true,
"requires": { "requires": {
"accepts": "~1.3.4", "accepts": "~1.3.4",
"base64id": "2.0.0", "base64id": "2.0.0",
"cookie": "0.3.1", "cookie": "~0.4.1",
"debug": "~4.1.0", "debug": "~4.1.0",
"engine.io-parser": "~2.2.0", "engine.io-parser": "~2.2.0",
"ws": "^7.1.2" "ws": "~7.4.2"
} }
}, },
"engine.io-client": { "engine.io-client": {
"version": "3.4.4", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.1.tgz",
"integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", "integrity": "sha512-oVu9kBkGbcggulyVF0kz6BV3ganqUeqXvD79WOFKa+11oK692w1NyFkuEj4xrkFRpZhn92QOqTk4RQq5LiBXbQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"component-emitter": "~1.3.0", "component-emitter": "~1.3.0",
...@@ -6751,15 +6683,15 @@ ...@@ -6751,15 +6683,15 @@
"indexof": "0.0.1", "indexof": "0.0.1",
"parseqs": "0.0.6", "parseqs": "0.0.6",
"parseuri": "0.0.6", "parseuri": "0.0.6",
"ws": "~6.1.0", "ws": "~7.4.2",
"xmlhttprequest-ssl": "~1.5.4", "xmlhttprequest-ssl": "~1.5.4",
"yeast": "0.1.2" "yeast": "0.1.2"
}, },
"dependencies": { "dependencies": {
"component-emitter": { "component-inherit": {
"version": "1.3.0", "version": "0.0.3",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",
"dev": true "dev": true
}, },
"debug": { "debug": {
...@@ -6771,32 +6703,17 @@ ...@@ -6771,32 +6703,17 @@
"ms": "2.0.0" "ms": "2.0.0"
} }
}, },
"indexof": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
"dev": true
},
"ms": { "ms": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true "dev": true
},
"parseqs": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz",
"integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==",
"dev": true
},
"parseuri": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz",
"integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==",
"dev": true
},
"ws": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",
"integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",
"dev": true,
"requires": {
"async-limiter": "~1.0.0"
}
} }
} }
}, },
...@@ -6811,6 +6728,35 @@ ...@@ -6811,6 +6728,35 @@
"base64-arraybuffer": "0.1.4", "base64-arraybuffer": "0.1.4",
"blob": "0.0.5", "blob": "0.0.5",
"has-binary2": "~1.0.2" "has-binary2": "~1.0.2"
},
"dependencies": {
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",
"dev": true
},
"arraybuffer.slice": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
"integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",
"dev": true
},
"blob": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",
"integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",
"dev": true
},
"has-binary2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
"dev": true,
"requires": {
"isarray": "2.0.1"
}
}
} }
}, },
"find-up": { "find-up": {
...@@ -6853,24 +6799,6 @@ ...@@ -6853,24 +6799,6 @@
"p-limit": "^2.2.0" "p-limit": "^2.2.0"
} }
}, },
"parseqs": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",
"integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",
"dev": true,
"requires": {
"better-assert": "~1.0.0"
}
},
"parseuri": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",
"integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",
"dev": true,
"requires": {
"better-assert": "~1.0.0"
}
},
"path-exists": { "path-exists": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
...@@ -6878,23 +6806,77 @@ ...@@ -6878,23 +6806,77 @@
"dev": true "dev": true
}, },
"socket.io": { "socket.io": {
"version": "2.3.0", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.4.1.tgz",
"integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", "integrity": "sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==",
"dev": true, "dev": true,
"requires": { "requires": {
"debug": "~4.1.0", "debug": "~4.1.0",
"engine.io": "~3.4.0", "engine.io": "~3.5.0",
"has-binary2": "~1.0.2", "has-binary2": "~1.0.2",
"socket.io-adapter": "~1.1.0", "socket.io-adapter": "~1.1.0",
"socket.io-client": "2.3.0", "socket.io-client": "2.4.0",
"socket.io-parser": "~3.4.0" "socket.io-parser": "~3.4.0"
}, },
"dependencies": { "dependencies": {
"base64-arraybuffer": { "has-binary2": {
"version": "0.1.5", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
"integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
"dev": true,
"requires": {
"isarray": "2.0.1"
}
}
}
},
"socket.io-adapter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
"integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==",
"dev": true
},
"socket.io-client": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.4.0.tgz",
"integrity": "sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ==",
"dev": true,
"requires": {
"backo2": "1.0.2",
"component-bind": "1.0.0",
"component-emitter": "~1.3.0",
"debug": "~3.1.0",
"engine.io-client": "~3.5.0",
"has-binary2": "~1.0.2",
"indexof": "0.0.1",
"parseqs": "0.0.6",
"parseuri": "0.0.6",
"socket.io-parser": "~3.3.0",
"to-array": "0.1.4"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
"has-binary2": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",
"integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",
"dev": true,
"requires": {
"isarray": "2.0.1"
}
},
"indexof": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",
"dev": true "dev": true
}, },
"ms": { "ms": {
...@@ -6903,66 +6885,25 @@ ...@@ -6903,66 +6885,25 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true "dev": true
}, },
"socket.io-client": { "socket.io-parser": {
"version": "2.3.0", "version": "3.3.2",
"resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.2.tgz",
"integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", "integrity": "sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg==",
"dev": true, "dev": true,
"requires": { "requires": {
"backo2": "1.0.2", "component-emitter": "~1.3.0",
"base64-arraybuffer": "0.1.5", "debug": "~3.1.0",
"component-bind": "1.0.0", "isarray": "2.0.1"
"component-emitter": "1.2.1",
"debug": "~4.1.0",
"engine.io-client": "~3.4.0",
"has-binary2": "~1.0.2",
"has-cors": "1.1.0",
"indexof": "0.0.1",
"object-component": "0.0.3",
"parseqs": "0.0.5",
"parseuri": "0.0.5",
"socket.io-parser": "~3.3.0",
"to-array": "0.1.4"
},
"dependencies": {
"socket.io-parser": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz",
"integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==",
"dev": true,
"requires": {
"component-emitter": "~1.3.0",
"debug": "~3.1.0",
"isarray": "2.0.1"
},
"dependencies": {
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
"dev": true
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
}
}
}
} }
},
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
"dev": true
} }
} }
}, },
"socket.io-adapter": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz",
"integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==",
"dev": true
},
"socket.io-parser": { "socket.io-parser": {
"version": "3.4.1", "version": "3.4.1",
"resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz",
...@@ -6972,6 +6913,14 @@ ...@@ -6972,6 +6913,14 @@
"component-emitter": "1.2.1", "component-emitter": "1.2.1",
"debug": "~4.1.0", "debug": "~4.1.0",
"isarray": "2.0.1" "isarray": "2.0.1"
},
"dependencies": {
"component-emitter": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
"dev": true
}
} }
}, },
"source-map": { "source-map": {
...@@ -7001,9 +6950,9 @@ ...@@ -7001,9 +6950,9 @@
} }
}, },
"ws": { "ws": {
"version": "7.4.2", "version": "7.4.4",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz",
"integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==",
"dev": true "dev": true
}, },
"yargs": { "yargs": {
...@@ -8130,12 +8079,6 @@ ...@@ -8130,12 +8079,6 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
}, },
"object-component": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",
"integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",
"dev": true
},
"object-copy": { "object-copy": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
...@@ -11947,12 +11890,6 @@ ...@@ -11947,12 +11890,6 @@
"os-tmpdir": "~1.0.2" "os-tmpdir": "~1.0.2"
} }
}, },
"to-array": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",
"integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",
"dev": true
},
"to-arraybuffer": { "to-arraybuffer": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
......
{ {
"name": "tabu", "name": "tabooh",
"version": "0.0.0", "version": "2.2",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve", "start": "ng serve",
......
...@@ -31,6 +31,7 @@ import { RoundHistoryComponent } from './round-history/round-history.component'; ...@@ -31,6 +31,7 @@ import { RoundHistoryComponent } from './round-history/round-history.component';
import {MatTableModule} from '@angular/material/table'; import {MatTableModule} from '@angular/material/table';
import {MatTreeModule} from '@angular/material/tree'; import {MatTreeModule} from '@angular/material/tree';
import {ViewModus} from './dao/viewModus'; import {ViewModus} from './dao/viewModus';
import {MatBadgeModule} from '@angular/material/badge';
@NgModule({ @NgModule({
declarations: [ declarations: [
...@@ -64,6 +65,7 @@ import {ViewModus} from './dao/viewModus'; ...@@ -64,6 +65,7 @@ import {ViewModus} from './dao/viewModus';
MatTooltipModule, MatTooltipModule,
MatTableModule, MatTableModule,
MatTreeModule, MatTreeModule,
MatBadgeModule
], ],
providers: [ providers: [
IsAllowedToPlay, IsAllowedToPlay,
......
...@@ -97,4 +97,20 @@ export class SocketDataService { ...@@ -97,4 +97,20 @@ export class SocketDataService {
}); });
}); });
} }
getSessionPlayers(sessionName: string): Observable<any> {
if (!this.isConnected) {
this.connect(sessionName);
}
this.sessionName = sessionName;
return new Observable(observer => {
this.socket.on(this.sessionName + ':sessionPlayers', (res: any) => {
observer.next(res);
});
});
}
updateSessionPlayers(sessionName: string, team: number, action: number): void {
this.socket.emit('sessionPlayers', {sessionName, team, newAction: action});
}
} }
...@@ -134,8 +134,8 @@ export class GameComponent implements OnInit, OnDestroy { ...@@ -134,8 +134,8 @@ export class GameComponent implements OnInit, OnDestroy {
this.timerInterval = setInterval(() => { this.timerInterval = setInterval(() => {
this.timePassed = this.timePassed += 1; this.timePassed = this.timePassed += 1;
this.timeLeft = (this.TIME_LIMIT - this.timePassed); this.timeLeft = (this.TIME_LIMIT - this.timePassed);
if (this.timeLeft === 0) { if (this.timeLeft === -2) {
// this.onTimesUp(); this.onTimesUp();
} }
}, 593); }, 593);
} }
......
...@@ -85,8 +85,8 @@ export class GuesserComponent implements OnInit, OnDestroy { ...@@ -85,8 +85,8 @@ export class GuesserComponent implements OnInit, OnDestroy {
this.timerInterval = setInterval(() => { this.timerInterval = setInterval(() => {
this.timePassed = this.timePassed += 1; this.timePassed = this.timePassed += 1;
this.timeLeft = (this.TIME_LIMIT - this.timePassed); this.timeLeft = (this.TIME_LIMIT - this.timePassed);
if (this.timeLeft === 0) { if (this.timeLeft === -2) {
//this.onTimesUp(); this.onTimesUp();
} }
}, 593); }, 593);
} }
......
...@@ -63,8 +63,8 @@ ...@@ -63,8 +63,8 @@
<br> <br>
<div data-aos="zoom-out-right" data-aos-duration="250"> <div data-aos="zoom-out-right" data-aos-duration="250">
<mat-card class="transparent"> <mat-card class="transparent">
<mat-card-subtitle>Tabooh-Version: 2.1</mat-card-subtitle> <mat-card-subtitle>Tabooh-Version: 2.2</mat-card-subtitle>
<mat-card-subtitle>Zuletzt geändert am: 09.04.2021</mat-card-subtitle> <mat-card-subtitle>Zuletzt geändert am: 11.04.2021</mat-card-subtitle>
<mat-card-content> <mat-card-content>
<button mat-raised-button color="primary" (click)="goToStartpage()">Zur Startseite</button> <button mat-raised-button color="primary" (click)="goToStartpage()">Zur Startseite</button>
</mat-card-content> </mat-card-content>
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
<button matTooltip="Neues Spiel starten" [disabled]="buttonNewGameDisabled || gameStatus.activeExplainer == 1" mat-raised-button color="primary" (click)="startGame()"> <button matTooltip="Neues Spiel starten" [disabled]="buttonNewGameDisabled || gameStatus.activeExplainer == 1" mat-raised-button color="primary" (click)="startGame()">
<mat-icon color = "white" aria-hidden="false">autorenew</mat-icon> <mat-icon color = "white" aria-hidden="false">autorenew</mat-icon>
</button> </button>
<mat-icon *ngIf="view === 'mobileView'" class="peopleInSessionRight" matBadge="{{totalPlayers}}" matBadgeSize="small" matBadgeColor="primary" aria-hidden="false" aria-label="home icon blue">people</mat-icon>
</div> </div>
<br *ngIf="view === 'mobileView'"> <br *ngIf="view === 'mobileView'">
<br *ngIf="view === 'mobileView'"> <br *ngIf="view === 'mobileView'">
...@@ -29,16 +30,17 @@ ...@@ -29,16 +30,17 @@
<mat-icon color = "white" aria-hidden="false">autorenew</mat-icon> <mat-icon color = "white" aria-hidden="false">autorenew</mat-icon>
</button> </button>
</div> </div>
<mat-icon *ngIf="view !== 'mobileView'" class="peopleInSessionRight" matBadge="{{totalPlayers}}" matBadgeSize="small" matBadgeColor="primary" aria-hidden="false" aria-label="home icon blue">people</mat-icon>
<div class="CenterText"> <div class="CenterText">
<h2 *ngIf="view === 'mobileView'" class="textMobileView">{{membership}}</h2> <h2 *ngIf="view === 'mobileView'" class="textMobileView">{{membership}}</h2>
<h2 *ngIf="view !== 'mobileView'">{{membership}}</h2> <h2 *ngIf="view !== 'mobileView'">{{membership}}</h2>
</div> </div>
</div> </div>
<button mat-raised-button class = "{{red}}" (click)="joinTeam('red')"> <button mat-raised-button class = "{{red}}" (click)="joinTeam('red')">
<mat-icon color = "warn" aria-hidden="false" aria-label="home icon red">home</mat-icon> <mat-icon matBadge="{{redPlayers}}" matBadgeSize="small" matBadgeColor="primary" color = "warn" aria-hidden="false" aria-label="home icon red" >home</mat-icon>
</button> </button>
<button mat-raised-button class = "{{blue}}" (click)="joinTeam('blue')"> <button mat-raised-button class = "{{blue}}" (click)="joinTeam('blue')">
<mat-icon style="color: darkblue" aria-hidden="false" aria-label="home icon blue">home</mat-icon> <mat-icon style="color: darkblue" matBadge="{{bluePlayers}}" matBadgeSize="small" aria-hidden="false" aria-label="home icon blue">home</mat-icon>
</button> </button>
</mat-card> </mat-card>
<br> <br>
......
...@@ -14,11 +14,13 @@ th{ ...@@ -14,11 +14,13 @@ th{
.blue{ .blue{
margin: 5px; margin: 5px;
padding-top: 2px;
background-color: rgba(0,0,139,0.5); background-color: rgba(0,0,139,0.5);
} }
.red{ .red{
margin: 5px; margin: 5px;
padding-top: 2px;
background-color: rgba(200, 0, 0, 0.3); background-color: rgba(200, 0, 0, 0.3);
} }
...@@ -29,16 +31,26 @@ th{ ...@@ -29,16 +31,26 @@ th{
.redfont{ .redfont{
margin: 5px; margin: 5px;
padding-top: 2px;
color: rgba(200, 0, 0); color: rgba(200, 0, 0);
} }
.choose{ .choose{
margin: 5px; margin: 5px;
padding-top: 2px;
cursor: pointer; cursor: pointer;
} }
.FloatLeftAndCenterElement{width:100%;} .FloatLeftAndCenterElement{width:100%;}
.spaceBetween {
display: flex;
justify-content: space-between;
align-content: center;
align-items: center;
}
.newStartButtonLeft{float:left;width:100px;} .newStartButtonLeft{float:left;width:100px;}
.peopleInSessionRight{float:right; margin-top: 4px}
.CenterText{margin:0 auto;width:250px;} .CenterText{margin:0 auto;width:250px;}
.spinner-wrapper { .spinner-wrapper {
...@@ -62,3 +74,7 @@ th{ ...@@ -62,3 +74,7 @@ th{
.textMobileView { .textMobileView {
display: inline; display: inline;
} }
.peopleRight {
float: right;
}
...@@ -22,12 +22,17 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -22,12 +22,17 @@ export class OverviewComponent implements OnInit, OnDestroy {
subNewRound: any; subNewRound: any;
subEndRound: any; subEndRound: any;
subHistoryChanged: any; subHistoryChanged: any;
subSessionPlayers: any;
wantToBeExplainer = false; wantToBeExplainer = false;
isActiveRound = false; isActiveRound = false;
red = 'choose'; red = 'choose';
blue = 'choose'; blue = 'choose';
totalPlayers = 1;
redPlayers = 0;
bluePlayers = 0;
nextTeam = 'Blau'; nextTeam = 'Blau';
team = ''; team = '';
teamNumber = 0;
buttonNewGameDisabled = true; buttonNewGameDisabled = true;
buttonNextRoundDisabled = true; buttonNextRoundDisabled = true;
sessionName = ''; sessionName = '';
...@@ -68,6 +73,7 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -68,6 +73,7 @@ export class OverviewComponent implements OnInit, OnDestroy {
this.activatedRoute.paramMap.subscribe(params => { this.activatedRoute.paramMap.subscribe(params => {
this.sessionName = String(params.get('sessionName')).toLowerCase(); this.sessionName = String(params.get('sessionName')).toLowerCase();
this.team = String(params.get('team')); this.team = String(params.get('team'));
this.teamToTeamNumber(this.team);
this.getSocketData(); this.getSocketData();
this.service.isSession({spielname: this.sessionName}).then(value => { this.service.isSession({spielname: this.sessionName}).then(value => {
if (!JSON.parse(value.status)) { if (!JSON.parse(value.status)) {
...@@ -124,6 +130,15 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -124,6 +130,15 @@ export class OverviewComponent implements OnInit, OnDestroy {
} }
} }
}); });
this.subSessionPlayers = this.socketDataService.getSessionPlayers(this.sessionName)
.pipe(takeUntil(this.ngUnsubscribe)).subscribe(data => {
if (data.hasOwnProperty('total')) {
this.totalPlayers = data.total;
this.redPlayers = data.red;
this.bluePlayers = data.blue;
}
});
this.socketDataService.updateSessionPlayers(this.sessionName, this.teamNumber, 1);
} }
selectTeam(): void { selectTeam(): void {
...@@ -165,7 +180,7 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -165,7 +180,7 @@ export class OverviewComponent implements OnInit, OnDestroy {
const status = JSON.parse(value.status); const status = JSON.parse(value.status);
if (status) { if (status) {
this.getGameStatus(); this.getGameStatus();
const audio = "../../../assets/sounds/ui_refresh-feed.ogg"; const audio = '../../../assets/sounds/ui_refresh-feed.ogg';
this.playAudio(audio); this.playAudio(audio);
} }
}).catch(reason => console.log(reason)); }).catch(reason => console.log(reason));
...@@ -187,7 +202,7 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -187,7 +202,7 @@ export class OverviewComponent implements OnInit, OnDestroy {
this.isAllowedToPlay.role = 'explainer'; this.isAllowedToPlay.role = 'explainer';
this.router.navigate([this.sessionName + '/' + this.team + '/explainer', ]); this.router.navigate([this.sessionName + '/' + this.team + '/explainer', ]);
this.wantToBeExplainer = true; this.wantToBeExplainer = true;
const audio = "../../../assets/sounds/state-change_confirm-up.ogg"; const audio = '../../../assets/sounds/state-change_confirm-up.ogg';
this.playAudio(audio); this.playAudio(audio);
}); });
}); });
...@@ -195,16 +210,29 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -195,16 +210,29 @@ export class OverviewComponent implements OnInit, OnDestroy {
joinTeam(team: string): void { joinTeam(team: string): void {
this.team = team; this.team = team;
this.teamToTeamNumber(this.team);
this.unsubscribeAll(); this.unsubscribeAll();
this.location.replaceState(this.sessionName + '/' + team); this.location.replaceState(this.sessionName + '/' + team);
this.selectTeam(); this.selectTeam();
this.canStartGame(); this.canStartGame();
this.unsubscribeAll(); this.unsubscribeAll();
this.getSocketData(); this.getSocketData();
const audio = "../../../assets/sounds/ui_unlock.ogg"; const audio = '../../../assets/sounds/ui_unlock.ogg';
this.playAudio(audio); this.playAudio(audio);
} }
teamToTeamNumber(team: string): void {
if (team === 'red') {
this.teamNumber = 1;
}
if (team === 'blue') {
this.teamNumber = 2;
}
if (team === '') {
this.teamNumber = 0;
}
}
getGameStatus(): void { getGameStatus(): void {
this.service.getGamestatus({spielname: this.sessionName}).then(value => { this.service.getGamestatus({spielname: this.sessionName}).then(value => {
this.fillGameStatus(value); this.fillGameStatus(value);
...@@ -269,7 +297,7 @@ export class OverviewComponent implements OnInit, OnDestroy { ...@@ -269,7 +297,7 @@ export class OverviewComponent implements OnInit, OnDestroy {
this.subEndRound.unsubscribe(); this.subEndRound.unsubscribe();
this.subNewGame.unsubscribe(); this.subNewGame.unsubscribe();
this.subHistoryChanged.unsubscribe(); this.subHistoryChanged.unsubscribe();
this.subSessionPlayers.unsubscribe();
this.ngUnsubscribe.next(); this.ngUnsubscribe.next();
this.ngUnsubscribe.complete(); this.ngUnsubscribe.complete();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment