Add toggle turns opcode

This commit is contained in:
elijahr2411
2023-02-09 20:08:32 -05:00
parent 6cbbb52143
commit 5b59b1993b

View File

@@ -36,6 +36,8 @@ export default class WSServer {
private voteTimeout : number;
// Interval to keep track
private voteTimeoutInterval? : NodeJS.Timer;
// Completely disable turns
private turnsAllowed : boolean;
private ModPerms : number;
private VM : QEMUVM;
constructor(config : IConfig, vm : QEMUVM) {
@@ -48,6 +50,7 @@ export default class WSServer {
this.voteInProgress = false;
this.voteTime = 0;
this.voteTimeout = 0;
this.turnsAllowed = true;
this.ModPerms = Utilities.MakeModPerms(this.Config.collabvm.moderatorPermissions);
this.server = http.createServer();
this.socket = new WebSocketServer({noServer: true});
@@ -195,6 +198,7 @@ export default class WSServer {
client.onMsgSent();
break;
case "turn":
if (!this.turnsAllowed && client.rank !== Rank.Admin && client.rank !== Rank.Moderator) return;
if (!client.TurnRateLimit.request()) return;
if (!client.connectedToNode) return;
if (msgArr.length > 2) return;
@@ -413,6 +417,19 @@ export default class WSServer {
break;
}
break;
case "22":
if (client.rank !== Rank.Admin) return;
if (msgArr.length !== 3) return;
switch (msgArr[2]) {
case "0":
this.clearTurns();
this.turnsAllowed = false;
break;
case "1":
this.turnsAllowed = true;
break;
}
break;
}
break;