This commit is contained in:
MrARM
2018-10-22 18:02:52 -05:00
5 changed files with 876 additions and 794 deletions

251
.idea/workspace.xml generated
View File

@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="5d8be6cd-8630-4f2d-9919-fd8005be8d84" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" />
<list default="true" id="5d8be6cd-8630-4f2d-9919-fd8005be8d84" name="Default Changelist" comment="Add percentage on player count">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config.json" beforeDir="false" afterPath="$PROJECT_DIR$/config.json" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/.tmp/" />
<ignored path="$PROJECT_DIR$/temp/" />
@@ -17,53 +18,55 @@
<session id="-1524044619">
<usages-collector id="statistics.lifecycle.project">
<counts>
<entry key="project.closed" value="2" />
<entry key="project.open.time.0" value="1" />
<entry key="project.open.time.1" value="1" />
<entry key="project.opened" value="1" />
<entry key="project.open.time.6" value="1" />
<entry key="project.opened" value="3" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.open">
<counts>
<entry key="HEAD" value="1" />
<entry key="bat" value="1" />
<entry key="gitignore" value="1" />
<entry key="js" value="3" />
<entry key="json" value="5" />
<entry key="js" value="7" />
<entry key="json" value="6" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.open">
<counts>
<entry key="JSON" value="4" />
<entry key="JavaScript" value="3" />
<entry key="PLAIN_TEXT" value="2" />
<entry key="JSON" value="5" />
<entry key="JavaScript" value="7" />
<entry key="PLAIN_TEXT" value="3" />
<entry key="tsconfig" value="1" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.extensions.edit">
<counts>
<entry key="bat" value="29" />
<entry key="gitignore" value="27" />
<entry key="js" value="3748" />
<entry key="json" value="119" />
<entry key="gitignore" value="39" />
<entry key="js" value="5156" />
<entry key="json" value="195" />
<entry key="txt" value="85" />
</counts>
</usages-collector>
<usages-collector id="statistics.file.types.edit">
<counts>
<entry key="JSON" value="119" />
<entry key="JavaScript" value="3748" />
<entry key="PLAIN_TEXT" value="56" />
<entry key="JSON" value="195" />
<entry key="JavaScript" value="5156" />
<entry key="PLAIN_TEXT" value="153" />
</counts>
</usages-collector>
</session>
</component>
<component name="FileEditorManager">
<leaf>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/registration.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<state>
<caret line="27" column="42" selection-start-line="27" selection-start-column="23" selection-end-line="27" selection-end-column="42" />
<folding>
<element signature="e#57#88#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
@@ -71,20 +74,39 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/quiz.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="34" column="42" selection-start-line="34" selection-start-column="42" selection-end-line="34" selection-end-column="42" />
<state relative-caret-position="-4079">
<caret line="29" column="91" selection-start-line="29" selection-start-column="91" selection-end-line="29" selection-end-column="91" />
<folding>
<element signature="e#17#37#0" expanded="true" />
<element signature="e#0#20#0" expanded="true" />
<element signature="e#2857#2916#0" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/package-lock.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="158">
<caret line="1182" column="6" selection-start-line="1182" selection-start-column="6" selection-end-line="1182" selection-end-column="6" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/../broker/wsbroker.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="13" column="41" selection-start-line="13" selection-start-column="41" selection-end-line="13" selection-end-column="41" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="1" column="13" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
<state relative-caret-position="46">
<caret line="2" column="11" selection-start-line="2" selection-start-column="11" selection-end-line="2" selection-end-column="11" />
</state>
</provider>
</entry>
@@ -92,8 +114,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/accounts.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="207">
<caret line="9" column="15" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="15" />
<state relative-caret-position="92">
<caret line="4" column="27" selection-start-line="4" selection-start-column="27" selection-end-line="4" selection-end-column="27" />
</state>
</provider>
</entry>
@@ -101,8 +123,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="115">
<caret line="5" column="44" lean-forward="true" selection-start-line="5" selection-start-column="22" selection-end-line="5" selection-end-column="44" />
<state relative-caret-position="46">
<caret line="2" column="35" lean-forward="true" selection-start-line="2" selection-start-column="35" selection-end-line="2" selection-end-column="35" />
</state>
</provider>
</entry>
@@ -110,7 +132,7 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/passwords.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="229701">
<state relative-caret-position="527">
<caret line="9987" column="14" selection-start-line="9987" selection-start-column="14" selection-end-line="9987" selection-end-column="14" />
</state>
</provider>
@@ -119,8 +141,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="4" column="15" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
<state relative-caret-position="184">
<caret line="9" column="38" selection-start-line="9" selection-start-column="38" selection-end-line="9" selection-end-column="38" />
</state>
</provider>
</entry>
@@ -138,6 +160,9 @@
<component name="FindInProjectRecents">
<findStrings>
<find>'</find>
<find>SOCKET_</find>
<find>showQuestions</find>
<find>game</find>
</findStrings>
<replaceStrings>
<replace>&quot;</replace>
@@ -151,13 +176,15 @@
<list>
<option value="$PROJECT_DIR$/passwords.json" />
<option value="$PROJECT_DIR$/utils.js" />
<option value="$PROJECT_DIR$/config.json" />
<option value="$PROJECT_DIR$/accounts.json" />
<option value="$PROJECT_DIR$/registration.js" />
<option value="$PROJECT_DIR$/reg.bat" />
<option value="$PROJECT_DIR$/../broker/wsbroker.js" />
<option value="$PROJECT_DIR$/package.json" />
<option value="$PROJECT_DIR$/quiz.js" />
<option value="$PROJECT_DIR$/config.json" />
<option value="$PROJECT_DIR$/.gitignore" />
<option value="$PROJECT_DIR$/package-lock.json" />
</list>
</option>
</component>
@@ -189,6 +216,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
@@ -200,7 +228,6 @@
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -256,32 +283,64 @@
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1540061216731</updated>
<workItem from="1540061218308" duration="13476000" />
<workItem from="1540061218308" duration="16293000" />
<workItem from="1540140816185" duration="79000" />
<workItem from="1540157280324" duration="10050000" />
</task>
<task id="LOCAL-00001" summary="Add percentage on player count">
<created>1540097779627</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1540097779627</updated>
</task>
<task id="LOCAL-00002" summary="https://www.youtube.com/watch?v=0p_1QSUsbsM&#10;(Fixes crash)">
<created>1540242662160</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1540242662160</updated>
</task>
<task id="LOCAL-00003" summary="Add discord and fix incoming questions">
<created>1540249010470</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1540249010470</updated>
</task>
<task id="LOCAL-00004" summary="Add percentage on player count">
<created>1540249059093</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1540249059093</updated>
</task>
<option name="localTasksCounter" value="5" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="13476000" />
<option name="totallyTimeSpent" value="26422000" />
</component>
<component name="ToolWindowManager">
<frame x="70" y="-8" width="1858" height="1096" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="npm" side_tool="true" />
<window_info id="Favorites" side_tool="true" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24986272" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24986272" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Docker" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" show_stripe_button="false" />
<window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.32912722" />
<window_info anchor="bottom" id="Event Log" side_tool="true" />
<window_info id="npm" order="2" side_tool="true" />
<window_info id="Favorites" order="3" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info anchor="bottom" id="Run" order="2" weight="0.32912722" />
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.49972543" visible="true" weight="0.32912722" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39957938" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="8" weight="0.32912722" />
<window_info anchor="bottom" id="Messages" order="9" weight="0.32912722" />
<window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.5002746" side_tool="true" visible="true" weight="0.32912722" />
<window_info anchor="bottom" id="Terminal" order="11" weight="0.32912722" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
@@ -293,31 +352,15 @@
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="https://www.youtube.com/watch?v=0p_1QSUsbsM&#10;(Fixes crash)" />
<MESSAGE value="Add discord and fix incoming questions" />
<MESSAGE value="Add percentage on player count" />
<option name="LAST_COMMIT_MESSAGE" value="Add percentage on player count" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/utils.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="527">
<caret line="32" column="6" selection-start-line="32" selection-start-column="6" selection-end-line="32" selection-end-column="6" />
<folding>
<element signature="e#0#31#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/tsconfig.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="69">
<caret line="3" column="18" lean-forward="true" selection-start-line="3" selection-start-column="18" selection-end-line="3" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/passwords.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="229701">
<caret line="9987" column="14" selection-start-line="9987" selection-start-column="14" selection-end-line="9987" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/utils.js" />
<entry file="file://$PROJECT_DIR$/tsconfig.json" />
<entry file="file://$PROJECT_DIR$/reg.bat">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="92">
@@ -325,51 +368,83 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package.json">
<entry file="file://$PROJECT_DIR$/HEAD">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/passwords.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="4" column="15" selection-start-line="4" selection-start-column="15" selection-end-line="4" selection-end-column="15" />
<state relative-caret-position="527">
<caret line="9987" column="14" selection-start-line="9987" selection-start-column="14" selection-end-line="9987" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config.json">
<entry file="file://$PROJECT_DIR$/../broker/wsbroker.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="115">
<caret line="5" column="44" lean-forward="true" selection-start-line="5" selection-start-column="22" selection-end-line="5" selection-end-column="44" />
<state relative-caret-position="299">
<caret line="13" column="41" selection-start-line="13" selection-start-column="41" selection-end-line="13" selection-end-column="41" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/accounts.json">
<entry file="file://$PROJECT_DIR$/../ta-recruiter/main.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="207">
<caret line="9" column="15" selection-start-line="9" selection-start-column="7" selection-end-line="9" selection-end-column="15" />
<state relative-caret-position="138">
<caret line="66" column="30" lean-forward="true" selection-start-line="66" selection-start-column="30" selection-end-line="66" selection-end-column="30" />
<folding>
<element signature="e#0#33#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/registration.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="237">
<state>
<caret line="27" column="42" selection-start-line="27" selection-start-column="23" selection-end-line="27" selection-end-column="42" />
<folding>
<element signature="e#57#88#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/quiz.js">
<entry file="file://$PROJECT_DIR$/package.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="299">
<caret line="34" column="42" selection-start-line="34" selection-start-column="42" selection-end-line="34" selection-end-column="42" />
<folding>
<element signature="e#17#37#0" expanded="true" />
</folding>
<state relative-caret-position="184">
<caret line="9" column="38" selection-start-line="9" selection-start-column="38" selection-end-line="9" selection-end-column="38" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="23">
<caret line="1" column="13" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
<state relative-caret-position="46">
<caret line="2" column="11" selection-start-line="2" selection-start-column="11" selection-end-line="2" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/accounts.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="92">
<caret line="4" column="27" selection-start-line="4" selection-start-column="27" selection-end-line="4" selection-end-column="27" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="46">
<caret line="2" column="35" lean-forward="true" selection-start-line="2" selection-start-column="35" selection-end-line="2" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/quiz.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-4079">
<caret line="29" column="91" selection-start-line="29" selection-start-column="91" selection-end-line="29" selection-end-column="91" />
<folding>
<element signature="e#0#20#0" expanded="true" />
<element signature="e#2857#2916#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/package-lock.json">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="158">
<caret line="1182" column="6" selection-start-line="1182" selection-start-column="6" selection-end-line="1182" selection-end-column="6" />
</state>
</provider>
</entry>

View File

@@ -7,6 +7,6 @@
"endpoints": {
"register": "/parse/users"
},
"discord_token": "",
"discord_token": "NTA0MDQwNTI0NDI5MjYyODQ4.Dq_mEg.GC0SXdL0aj0hNvktuucA41QKzQo",
"discord_channel": "504041066559963137"
}

1392
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -14,7 +14,7 @@
"request": "^2.87.0",
"request-promise": "^4.2.2",
"select-shell": "^1.1.2",
"simple-node-logger": "^0.93.37",
"simple-node-logger": "^0.93.40",
"url": "^0.11.0",
"uuid4": "^1.1.4",
"ws": "^5.2.2"

23
quiz.js
View File

@@ -1,8 +1,11 @@
import ws from 'ws';
import fs from 'fs';
import Discord from 'discord.js';
import Logger from 'simple-node-logger';
const config = JSON.parse(fs.readFileSync('config.json'));
const log = Logger.createSimpleLogger('game.log');
log.setLevel('debug');
const client = new Discord.Client();
class Player {
@@ -22,7 +25,7 @@ class Player {
cleanPrint(message) {
if (this.isMaster) {
console.log(message);
log.info(message);
}
}
@@ -39,11 +42,11 @@ class Player {
this.socket.send('2');
this.pingTimeout = setTimeout(() => {
this.socket.terminate();
console.error(`Player ${this.username} connection closed. Attempting to reconnect...`);
log.error(`Player ${this.username} connection closed. Attempting to reconnect...`);
this.connect();
}, 8000);
} catch (error) {
console.error(`Player ${this.username} connection closed. Attempting to reconnect...`);
log.error(`Player ${this.username} connection closed. Attempting to reconnect...`);
this.connect();
}
}
@@ -62,6 +65,10 @@ class Player {
}
handleMessage(message) {
if (this.isMaster) {
log.debug(message);
}
const parseMessage = () => {
const extractedData = /\[(.*?)\]$/.exec(message);
if (!extractedData) return null;
@@ -81,11 +88,11 @@ class Player {
break;
case 430:
if (data[0]) {
console.log(`Player ${this.username} has connected!`);
log.info(`Player ${this.username} has connected!`);
this.socket.send(`421["GAME_GET_STATUS",{"userId":"${this.objectId}"}]`);
this.socket.send('422["TIME_SYNC",null]');
} else {
console.error(`Player ${this.username} failed to connect!`);
log.error(`Player ${this.username} failed to connect!`);
}
break;
case 431:
@@ -137,8 +144,7 @@ class Player {
}
this.game = game;
if (this.isMaster && showQuestions) {
console.log('Received the game\'s questions:');
this.showQuestions();
// this.showQuestions();
}
break;
@@ -212,6 +218,7 @@ class Game {
}
}
client.on('ready', () => {
// This event will run if the bot starts, and logs in, successfully.
console.log(`Discord module started with ${client.users.size} users.`);
@@ -219,7 +226,7 @@ client.on('ready', () => {
});
client.login(config.discord_token).then(()=>{
const game = new Game();
const game = new Game(log);
game.run();
});