quizzcord

1.0.10 • Public • Published

Quizzcord

npm npm Support Server GitHub GitHub stars

📖 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

/quizzcord/

    Package Sidebar

    Install

    npm i quizzcord

    Weekly Downloads

    2

    Version

    1.0.10

    License

    Apache-2.0

    Unpacked Size

    200 kB

    Total Files

    6

    Last publish

    Collaborators

    • trrollet