aqify.js v2.5.0
Aqify.js
Aqify.js is an open-source utility package made for Discord bots, it has a lot of features and they are simplified at the maximum for everyone!
This package is not affiliated with Discord or/and discord.js.
Features
- 100% written in TypeScript.
- Full support for TypeScript and JavaScript.
- Simple to use & Beginner friendly.
- Open-source & free to use.
- No credits required while using it!
- All possible bugs are eliminated from the source-code.
- Promise based.
Table of Contents
Install
Before installing the package, please make sure that you have the following requirements below:
- axios v^latest.
- discord.js v^14.11.0.
- @discordjs/voice v^latest.
- Node.js v^16.9.0.
If you meet the requirements above, you can install the package safely with no problems:
npm install aqify.js
yarn add aqify.js
pnpm add aqify.js
Other packages:
@tfagaming/discord.js-docs
: Easy method to fetch discord.js docs.@tfagaming/jsondb
: Create a simple JSON database.horizon-handler
: A powerful commands & events handler for Discord bots.wandbox-api.js
: An unofficial wrapper for Wandbox API (API Compiler).
Import
Typescript:
import { } from 'aqify.js';
JavaScript (CommonJS):
const { } = require('aqify.js');
Docs
Visit the documentation website: Click here!
Examples
Dropdown paginator
import { EmbedBuilder, StringSelectMenuBuilder } from 'discord.js';
import { DropdownPaginatorBuilder, SendMethod } from 'aqify.js';
const paginator = new DropdownPaginatorBuilder(interaction, { time: 60000 });
paginator.addOptions(
{
component: {
label: 'Option 1',
description: 'Option 1 description'
},
message: {
content: 'This is the option 1 message!'
}
},
{
component: {
label: 'Option 2',
emoji: '✌'
},
message: {
content: 'This is the option 2 message!',
embeds: [
new EmbedBuilder()
.setDescription('Option 2 embed!')
]
}
}
);
await paginator.send(SendMethod.Reply,
new StringSelectMenuBuilder()
.setCustomId('your_epic_custom_id')
.setPlaceHolder('Make a selection'), {
home: {
content: 'Select something from the menu below!'
},
onNotAuthor: async (i) => {
await i.reply({
content: 'You are not the author of this interaction.',
ephemeral: true
});
},
replyWithEphemeralMessage: true
});
Buttons paginator
import { ButtonStyle } from 'discord.js';
import { ButtonsPaginatorBuilder, ButtonPaginatorID, SendMethod } from 'aqify.js';
const paginator = new ButtonsPaginatorBuilder(interaction, {
time: 60000
});
paginator.addButtons(
{ label: 'Previous',id: ButtonPaginatorID.Previous, type: ButtonStyle.Secondary },
{ label: 'Next', id: ButtonPaginatorID.Next, type: ButtonStyle.Secondary },
{ label: 'Delete', id: ButtonPaginatorID.Delete, type: ButtonStyle.Danger }
);
paginator.addPages(
{ content: 'Page 1' },
{ content: 'Page 2', embeds: [] },
{ content: 'Page 3' },
{ content: 'Page 4', files: [] },
{ content: 'Page 5' }
);
await paginator.send(SendMethod.Reply, {
onNotAuthor: async (i) => {
await i.reply({
content: 'You are not the author of this interaction.',
ephemeral: true
});
},
disableButtonsOnLastAndFirstPage: true
});
Buttons confirm (Yes/No/Cancel)
import { ButtonBuilder, ButtonStyle } from 'discord.js';
import { ButtonsConfirmBuilder, ButtonConfirmID, SendMethod } from 'aqify.js';
const confirm = new ButtonsConfirmBuilder(interaction, {
buttons: [
new ButtonBuilder()
.setCustomId(ButtonConfirmID.Yes)
.setLabel('Yes')
.setStyle(ButtonStyle.Primary),
new ButtonBuilder()
.setCustomId(ButtonConfirmID.No)
.setLabel('No')
.setStyle(ButtonStyle.Danger)
],
on: {
yes: async (i) => {
await i.reply({ content: 'Yes button blocked!' });
},
no: async (i) => {
await i.reply({ content: 'No button clicked!' });
}
},
time: 30000
});
await confirm.send(SendMethod.Reply, {
home: {
content: 'Click on Yes or No below!'
},
onNotAuthor: async (i) => {
await i.reply({
content: 'You are not the author of this interaction.',
ephemeral: true
});
},
disableButtonsOnEnd: true
});
Dropdown roles
import { DropdownRolesBuilder } from 'aqify.js';
import { StringSelectMenuBuilder } from 'discord.js';
const menu = new DropdownRolesBuilder(client, [
{
roleId: '123456789012345',
component: { label: 'Role 1' }
},
{
roleId: '123456789012345',
component: { label: 'Role 2' }
}
], {
on: {
roleAdded: {
content: (role) => `You have got the role **${role.name}**!`
},
roleRemoved: {
content: (role) => `I have removed the role **${role.name}** from you!`
}
}
});
await menu.create(interaction.channelId,
new StringSelectMenuBuilder()
.setCustomId('your_epic_custom_id')
.setPlaceholder('Select a role'),
{
message: {
content: 'Select a role here by clicking on the menu below!'
}
}
);
YouTube API Manager
Warning: This is a simple manager made for Discord bot commands such as YouTube video/channel statistics command, and not for advanced ones like playlists, watermarks... etc.
import { YouTubeAPIManager } from 'aqify.js';
const manager = new YouTubeAPIManager('Your YouTube API key');
await manager.searchVideos('How to make a Discord bot', { maxResults: 3 });
await manager.searchChannels('T.F.A 7524');
await manager.getVideo('A YouTube video ID');
await manager.getChannel('A YouTube channel ID');
Plugins
1st Note: It's recommended to use these plugins in the event
ready
from the client to make sure that the bot is on and ready to use.<client>.on('ready', () => { new Plugin(); });
2nd Note: If you want to edit the messages from one of the plugins, go to
node_modules/aqify.js/class/plugins.js
, and then find the class which you want to edit.
import * as AqifyJS from 'aqify.js';
new AqifyJS.ModmailPlugin(client, {
guild: 'Your server ID',
parent: 'The mails category ID',
managerRoles: ['Staff role ID']
});
new AqifyJS.TicketPlugin(client, {
guild: 'Your server ID',
parent: 'The tickets category ID',
managerRoles: ['Staff role ID']
}).createPanel('The panel channel ID');
new AqifyJS.BoostDetectorPlugin(client)
.on('boostCreate', (member) => console.log(member.user.tag + ' has boosted the server!'))
.on('boostRemove', (member) => console.log(member.user.tag + ' has unboosted the server...'));
new AqifyJS.SuggestionPlugin(client, 'Suggestion channel ID', {
message: {
content: (message) => `<@${message.author.id}>`,
embeds: (message) => [
new EmbedBuilder()
.setTitle('New suggestion!')
.setAuthor({
name: message.author.tag,
iconURL: message.author.displayAvatarURL()
})
.setDescription(message.content)
.setColor('Blurple')
]
},
reactions: ['👍', '👎']
});
Read the docs to get all the information about other classes/functions/variables! Click here
Developers
License
GPL-3.0; General Public License v3.0.
Join our Discord server if you need any help!
© 2023, Aqify.js
10 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago