discord.js-akinator
v5.0.0
Published
A Discord.js v14 module that allows you to create an Akinator command for your discord bot in a matter of seconds.
Downloads
1,033
Readme
Features
🌎 100+ Languages Supported! | Lightning fast translation has been made possible by Google Translate and hard-coded mappings!
▶️ Buttons! | Don't want to type out responses to questions? This package gives you the option to use discord's buttons to easily click your answer of choice!
🎮 Multiple Game Types! | This package will allow you to choose whether Akinator will guess an animal, character or object!
🙋 Child Mode! | Want to filter out NSFW questions? You can choose to enable Akinator's Child Mode to keep your games squeaky clean!
⚡️ Quick & Easy Setup! | This package was built with the intentions of working out-of-the-box. Only one parameter is required at least!
🤖 Slash Command & Message Support! | No matter how your bot receives its commands, you can simply pass in a
CommandInteraction
orMessage
and it will work!
Installation
To install this package, simply run the following command in your terminal:
npm i discord.js-akinator
Please Note: The latest release of this package is only compatible with Discord.js v14.
Code Examples
Initial Setup:
const { Client, IntentsBitField } = require("discord.js");
const akinator = require("discord.js-akinator");
const client = new Client({
intents: [
IntentsBitField.Flags.Guilds,
IntentsBitField.Flags.GuildMessages,
IntentsBitField.Flags.MessageContent
]
});
client.login("Discord Bot Token");
client.on("ready", () => {
console.log("Bot is Online");
});
//Example options for Discord.js Akinator:
const language = "en"; //The language of the game. Defaults to "en".
const childMode = false; //Whether to use Akinator's Child Mode. Defaults to "false".
const useButtons = true; //Whether to use Discord's buttons instead of message input for answering questions. Defaults to "true".
const embedColor = "#1F1E33"; //The color of the message embeds. Defaults to "Random".
const translationCachingOptions = {
enabled: true, //Whether to cache translations. Defaults to "true". (Recommended)
path: "./translationCache" //The path to the translation cache folder relative to the current working directory. Defaults to "./translationCache".
};
With Discord.js Akinator, you can choose whether you want to use a slash command, or a message as the input. Here's some quick examples on how to do both!
Using Discord's Slash Commands as Input:
client.on("interactionCreate", async interaction => {
if (!interaction.isChatInputCommand()) return; //If the interaction is not a slash command, do nothing
if (interaction.commandName === "akinator") { //If the user sends "/akinator"...
akinator(interaction, {
language: language,
childMode: childMode,
useButtons: useButtons,
embedColor: embedColor,
translationCaching: translationCachingOptions
});
};
});
Using a Message as Input:
//IMPORTANT: Make sure to enable the "Message Content" intent for your bot in the Discord Developer Portal!
const PREFIX = "!"; //Your bot's command prefix
client.on("messageCreate", async message => {
if (message.content.startsWith(`${PREFIX}akinator`)) { //When the user types "!akinator"...
akinator(message, {
language: language,
childMode: childMode,
useButtons: useButtons,
embedColor: embedColor,
translationCaching: translationCachingOptions
});
};
});
Contributors
Special thanks to many people helping to make language translation more accurate, refactor code, provide compatibility for new Discord.js versions, and so much more!
Contact Us
👋 Need help? Join our Discord Server!
👾 Found a bug, or inaccurate translations? Open an issue, or fork and submit a pull request on our GitHub repository!