quizzcord
v1.0.10
Published
A simple quizz package for discord bots where you can create your own quizz and play with your friends or with the community !
Downloads
29
Maintainers
Readme
Quizzcord
📖 Description
A simple quizz module for Discord.js bots. It allows you to create a quizz with questions and answers, and to check if the answers are correct. It also allows you to get the score of a user and the leaderboard.
✅ Examples
const Discord = require('discord.js');
const client = new Discord.Client();
const { Quizz } = require('quizzcord');
createQuizz = async () {
const quizz = new Quizz();
await quizz.init();
await quizz.addQuestion('What is the capital of France?', ['Paris']);
await quizz.addQuestion('What is 2+2?', ['4', 'four']);
return quizz;
}
// ...
// async function
let question = quizz.getQuestion();
const answer = "Paris";
const correct = await quizz.checkAnswer(user.id, answer); // If the answer is correct, the score of the user is incremented (custom points in future versions)
if (correct) {
let score = quizz.getScore(user.id);
quizz.nextQuestion();
message.channel.send(`Correct! Your score is now ${score}`);
question = quizz.getQuestion();
if (!question) {
quizz.getLeaderboard((leaderboard) => {
// [{ player_id: '123456789', score: 2 }, { player_id: '987654321', score: 1 }}]
});
}
// Send the question to the channel
}
// ...
📚 Documentation
❓ Quizz
🛠️ Methods
init(state)
Initialize the quizz. The state is optional and can be used to restore a quizz. Returns a promise.
addQuestion(question, answers)
Add a question to the quizz. The question must be a string, and the answers an array of strings.
getQuestion()
Get the current question. Returns a string.
checkAnswer(player_id, answer)
Check if the answer is correct. Returns a promise that resolves to a boolean.
nextQuestion()
Go to the next question.
getScore(player_id)
Get the score of a user. Returns a promise that resolves to an integer.
getLeaderboard()
Get the leaderboard. Returns an array of objects sorted by score with this structure:
[{ player_id: '123456789', score: 2 }, { player_id: '987654321', score: 1 }]
getAllQuestions()
Get all the questions. Returns an array of objects with this structure:
[{ question: 'What is the capital of France?', answers: ['Paris'] }, { question: 'What is 2+2?', answers: ['4', 'four'] }]
getAllAnswers()
Get all the answers of the current question. Returns an array of strings.
removeQuestion(index)
Remove a question. The index is the index of the question in the array returned by getAllQuestions
(starting at 0).
addAnswerToQuestion(index, answer)
Add an answer to a question. The index is the index of the question in the array returned by getAllQuestions
(starting at 0).
removeAnswerFromQuestion(index, answer)
Remove an answer from a question. The index is the index of the question in the array returned by getAllQuestions
(starting at 0).
reset()
Reset the quizz by removing scores but keeping questions and answers.
delete()
Delete the quizz by removing all questions, answers and scores.
saveState()
Save the state of the quizz. Returns an Object that can be used to restore the quizz with the init
method.
📜License
This project is licensed under the Apache-2.0 License - see the LICENSE file for details