Implement needed commands
This commit is contained in:
parent
f125fc1a03
commit
7412fa7862
2 changed files with 102 additions and 0 deletions
72
src/commands/next.ts
Normal file
72
src/commands/next.ts
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
//
|
||||||
|
// next.ts
|
||||||
|
//
|
||||||
|
// Written by: Oliver Akins (2021/12/02)
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
import axios from "axios";
|
||||||
|
import { PERM } from "../constants";
|
||||||
|
import { REGISTER_COMMAND } from "../cmd_handler";
|
||||||
|
import { question_index, change_index, questions, users, reset_users, user_right_count} from "../main";
|
||||||
|
|
||||||
|
|
||||||
|
const NEXT_COMMAND = (ctx: msg_data, args: string[]): string => {
|
||||||
|
|
||||||
|
// Ensure the quiz has been started.
|
||||||
|
if (question_index < 0) {
|
||||||
|
return `Cannot go the next question before "!start"ing the quiz.`;
|
||||||
|
};
|
||||||
|
|
||||||
|
// count users who got it right
|
||||||
|
let users_correct = Object.values(users)
|
||||||
|
.filter(x => x == questions[question_index])
|
||||||
|
.length;
|
||||||
|
|
||||||
|
for (var user in users) {
|
||||||
|
let delta = 0;
|
||||||
|
if (users[user] == questions[question_index]) {
|
||||||
|
delta = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (user_right_count[user] != null) {
|
||||||
|
user_right_count[user] = delta;
|
||||||
|
} else {
|
||||||
|
user_right_count[user] += delta;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
reset_users();
|
||||||
|
|
||||||
|
// Check if questions has run dry
|
||||||
|
if (question_index == questions.length) {
|
||||||
|
|
||||||
|
// Send message in Discord for record-keeping
|
||||||
|
axios.post(
|
||||||
|
`https://ptb.discord.com/api/webhooks/916068083863539782/9k2b66SUIeY8hl5id7gdnZF6Abc8Fb1f5-RVlgbUJqirNmALkrrgrCWdsufcZ5Bn2a4i`,
|
||||||
|
{
|
||||||
|
content: `\`\`\`json\n${JSON.stringify(users, null, "\t")}\n\`\`\`\n\n\n\`\`\`${user_right_count}`
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
change_index(-1);
|
||||||
|
return `${users_correct} got the last question right. Quiz has ended. Kthxbai.`;
|
||||||
|
};
|
||||||
|
|
||||||
|
change_index(question_index + 1);
|
||||||
|
return `${users_correct} got that question right. Changed to the next question!`;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
REGISTER_COMMAND({
|
||||||
|
description: "",
|
||||||
|
executable: NEXT_COMMAND,
|
||||||
|
requires_confirm: false,
|
||||||
|
case_sensitive: false,
|
||||||
|
name: "start",
|
||||||
|
opt_args: 0,
|
||||||
|
args: [],
|
||||||
|
level: PERM.MOD,
|
||||||
|
arg_info: [],
|
||||||
|
flags: {}
|
||||||
|
});
|
||||||
30
src/commands/start.ts
Normal file
30
src/commands/start.ts
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
//
|
||||||
|
// start.ts
|
||||||
|
//
|
||||||
|
// Written by: Oliver Akins (2021/12/02)
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
import { PERM } from "../constants";
|
||||||
|
import { REGISTER_COMMAND } from "../cmd_handler";
|
||||||
|
import { change_index } from "../main";
|
||||||
|
|
||||||
|
|
||||||
|
const START_COMMAND = (ctx: msg_data, args: string[]): string => {
|
||||||
|
change_index(0);
|
||||||
|
return `Quiz has been started!`;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
REGISTER_COMMAND({
|
||||||
|
description: "",
|
||||||
|
executable: START_COMMAND,
|
||||||
|
requires_confirm: false,
|
||||||
|
case_sensitive: false,
|
||||||
|
name: "start",
|
||||||
|
opt_args: 0,
|
||||||
|
args: [],
|
||||||
|
level: PERM.MOD,
|
||||||
|
arg_info: [],
|
||||||
|
flags: {}
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue