hastily hand merge yellowcode vote patch thing

Co-Authored-By: yellows111 <ice_ice@email.com>
This commit is contained in:
modeco80
2024-05-01 08:08:43 -04:00
parent e03bf57ede
commit 2e05504e4a
3 changed files with 24 additions and 5 deletions

View File

@@ -21,6 +21,9 @@ secretKey = "hunter2"
[auth.guestPermissions] [auth.guestPermissions]
chat = true chat = true
turn = false turn = false
callForReset = false
vote = true
[vm] [vm]
qemuArgs = "qemu-system-x86_64" qemuArgs = "qemu-system-x86_64"

View File

@@ -15,6 +15,8 @@ export default interface IConfig {
guestPermissions: { guestPermissions: {
chat: boolean; chat: boolean;
turn: boolean; turn: boolean;
callForReset: boolean;
vote: boolean;
}; };
}; };
vm: { vm: {

View File

@@ -36,9 +36,6 @@ type VoteTally = {
no: number; no: number;
}; };
export default class WSServer { export default class WSServer {
private Config: IConfig; private Config: IConfig;
@@ -489,18 +486,35 @@ export default class WSServer {
switch (msgArr[1]) { switch (msgArr[1]) {
case '1': case '1':
if (!this.voteInProgress) { if (!this.voteInProgress) {
if (this.Config.auth.enabled && client.rank === Rank.Unregistered && !this.Config.auth.guestPermissions.callForReset) {
client.sendMsg(guacutils.encode('chat', '', 'You need to login to do that.'));
return;
}
if (this.voteCooldown !== 0) { if (this.voteCooldown !== 0) {
client.sendMsg(guacutils.encode('vote', '3', this.voteCooldown.toString())); client.sendMsg(guacutils.encode('vote', '3', this.voteCooldown.toString()));
return; return;
} }
this.startVote(); this.startVote();
this.clients.forEach((c) => c.sendMsg(guacutils.encode('chat', '', `${client.username} has started a vote to reset the VM.`))); this.clients.forEach((c) => c.sendMsg(guacutils.encode('chat', '', `${client.username} has started a vote to reset the VM.`)));
} else if (client.IP.vote !== true) this.clients.forEach((c) => c.sendMsg(guacutils.encode('chat', '', `${client.username} has voted yes.`))); }
if (this.Config.auth.enabled && client.rank === Rank.Unregistered && !this.Config.auth.guestPermissions.vote) {
client.sendMsg(guacutils.encode('chat', '', 'You need to login to do that.'));
return;
} else if (client.IP.vote !== true) {
this.clients.forEach((c) => c.sendMsg(guacutils.encode('chat', '', `${client.username} has voted yes.`)));
}
client.IP.vote = true; client.IP.vote = true;
break; break;
case '0': case '0':
if (!this.voteInProgress) return; if (!this.voteInProgress) return;
if (client.IP.vote !== false) this.clients.forEach((c) => c.sendMsg(guacutils.encode('chat', '', `${client.username} has voted no.`))); if (this.Config.auth.enabled && client.rank === Rank.Unregistered && !this.Config.auth.guestPermissions.vote) {
client.sendMsg(guacutils.encode('chat', '', 'You need to login to do that.'));
return;
}
if (client.IP.vote !== false) {
this.clients.forEach((c) => c.sendMsg(guacutils.encode('chat', '', `${client.username} has voted no.`)));
}
client.IP.vote = false; client.IP.vote = false;
break; break;
} }