discord.js-akinator
Version:
A Discord.js v14 module that allows you to create an Akinator command for your discord bot in a matter of seconds.
130 lines (93 loc) • 5.79 kB
Markdown
<h1 align="center">
🔮 Discord.js Akinator 🔮
</h1>
<center style="margin-bottom:1rem;">A Discord.js v14 module that allows you to create an Akinator command for your discord bot in a matter of seconds.</center>
<div align="center">

[](https://npmjs.com/package/discord.js-akinator)
[](https://npmjs.com/package/discord.js-akinator)
[](https://npmjs.com/package/discord.js-akinator)

[](https://diamonddigital.dev/discord)
[](https://www.buymeacoffee.com/willtda)
</div>
<br />
## Features
- 🌎 <b>100+ Languages Supported!</b> | Lightning fast translation has been made possible by Google Translate and hard-coded mappings!
- ▶️ <b>Buttons!</b> | 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!
- 🎮 <b>Multiple Game Types!</b> | This package will allow you to choose whether Akinator will guess an animal, character or object!
- 🙋 <b>Child Mode!</b> | Want to filter out NSFW questions? You can choose to enable Akinator's Child Mode to keep your games squeaky clean!
- ⚡️ <b>Quick & Easy Setup!</b> | This package was built with the intentions of working out-of-the-box. Only one parameter is required at least!
- 🤖 <b>Slash Command & Message Support!</b> | No matter how your bot receives its commands, you can simply pass in a `CommandInteraction` or `Message` 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:
```js
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:
```js
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:
```js
//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](https://github.com/WillTDA/Discord.js-Akinator/graphs/contributors) 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](https://diamonddigital.dev/discord)!
- 👾 Found a bug, or inaccurate translations? [Open an issue](https://github.com/WillTDA/Discord.js-Akinator/issues), or fork and [submit a pull request](https://github.com/WillTDA/Discord.js-Akinator/pulls) on our [GitHub repository](https://github.com/WillTDA/Discord.js-Akinator)!
---
<a href="https://diamonddigital.dev/">
<strong>Created and maintained by</strong>
<img align="center" alt="Diamond Digital Development Logo" src="https://diamonddigital.dev/img/png/ddd_logo_text_transparent.png" style="width:25%;height:auto" />
</a>