UNPKG

kakashi-self-handler

Version:
221 lines (193 loc) 6.77 kB
# KAKASHI SELF HANDLER ## Dev info **Mongo:** Removed **Bug Found?** Please contact us or issue on github you can also provide suggestions ## Installation ```bash npm install kakashi-self-handler ``` ## Documentation - Index.js ```js const { Client, Partials, GatewayIntentBits } = require("discord.js"); /// Requiring the handler const {Kakashi} = require('kakashi-self-handler'); /// creating the client const client = new Client( { intents: [GatewayIntentBits.Guilds,GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMembers], partials: [Partials.Channel, Partials.Message, Partials.User, Partials.GuildMember, Partials.Reaction], allowedMentions: { parse: ['users'] }, } ); const clientID = client.user.id; /// Using the Handlers client.kakashi = Kakashi.Create(client, { vote: { url: 'https://top.gg/bot/760923630212874251/vote', // your bot vote url webhook: { token: 'topggwebtoken', // your topgg token path: '/dblwebhook', // web path port: 8081, // web port auth: 'kakashi-self-handler' // web auth }, // vote embed is for customizing vote embed message which will be sent when user is required to vote before using command embed: { enabled: true, // To use embed or not message: 'Hey please vote first', // your custom vote message to send this will overwrite emoji you should use emoji inside message if you want emoji: '<:emoji_24:959075020217405550>', //custom emoji for default embed message footer: false, //whether to send footer }, // vote button is for customizing vote button emoji and whether to send the button or not button: { enabled: true, // whether to send vote url button with mesage emoji: '1158760255476486225' // custom emoji id for button } }, Events: { path: './src/events/' // your path to events }, GuildCommands : { path: './src/scommands', // your path to guildcommands clientId: '1230503138629259418', // your bot id guildId: '761857421701414912', // your guild id to register slash commands in that guild token: process.env.hyperzone // your bot token }, MessageCommands: { path: './src/commands' // your path to Messagecommand }, // cooldown is for customizing cooldown message and button cooldown: { // embed is for customizing your embed or rather not to send embed embed: { enabled: true, // To use embed or not message: 'Please wait remainingtime to use this command again', // your custom cooldown message to send this will overwrite emoji you should use emoji inside message if you want // please use remainingtime text to send time footer: true, //whether to send footer emoji: '<:emoji_24:959075020217405550>', // custom emoji for default embed message }, // cooldown button is for customizing support server button emoji and whether to send the button or not button: { enabled: true, // enable support server button or not }, }, //support is for defining your server url and support server button customization support: { server: 'https://discord.gg/mTxBX87Bdr', // your support server url button: { enabled: true, // here enabling this button the handler will send support server button on perms error and vote message emoji: '1128799007452430387' // custom emoji id for button } }, Components: { path: './src/interaction' }, }) client.login(process.env.TOKEN) ``` - Interaction Event ```js module.exports = { name: "interactionCreate", async execute(interaction, client) { try{ await client.kakashi.Interaction(interaction) } catch(err) { return console.log(err) } }, }; ``` - Message Event ```js const prefix = '!'; /// prefix for bot module.exports = { name: "messageCreate", async execute(message, client) { try{ await client.kakashi.MessageEvents(message, prefix) } catch(err) { return console.log(err) } }, }; ``` - Slash command Example ```js const {SlashCommandBuilder} = require('discord.js') module.exports = { data: new SlashCommandBuilder() .setName('ping') .setDescription('Get pong reply'), category: 'Bot', /// optional can be usefull in help command cooldown: '7', /// 7 second cooldown the cooldown is optional. voteonly: true, /// sets this command to only run when user has voted async execute(interaction, client) { interaction.reply({ content: 'pong', ephemeral: true }) } } ``` - Message Command Example ```js const { EmbedBuilder } = require('discord.js') module.exports = { name: 'embed', description: 'Return embed', aliases: ['embed-create', 'em'], botPerms: ['EmbedLinks'], userPerms: ['ManageMessages'], category: 'Bot', cooldown: '9', voteonly: false, /// it will run if user hasnt voted async execute(message, client, args) { const embed = new EmbedBuilder() .setColor('Green') .setTitle(`${message.author.username}`) .setDescription(`this is an embed`); await message.reply({ embeds: [embed], }) } } ``` - Button Example ```js module.exports = { data: { name: 'ok-button', /// customID cooldown: '15' /// 15 second cooldown the cooldown is optional. voteonly: true, /// it wil only run this button if the user has voted }, async execute(interaction, client) { interaction.reply({ content: 'This button is working', ephemeral: true }) } } ``` ## Information #### For other components like select menu and other handler same use customID on name #### The handler only handles mongo schemas so you need to connect to mongo yourself #### If you dont want cooldowns on your command dont put the cooldown: '7' part on your commands, buttons ## Screenshots - vote button with everything customized ![](https://i.imgur.com/tVVfcTf.png) - Normal vote message without embed and without server button ![](https://i.imgur.com/0FQv87q.png?1) - Vote message with embed and without server button ![](https://i.imgur.com/b4j7Rhn.png) - Cooldown Embed without server button ![Cooldown embed screenshot](https://i.imgur.com/3DkmpaW.png) - Permission Message and without server button ![](https://i.imgur.com/q8nLVQF.png) ## Authors - [@kakashidracq](https://github.com/kakashidracq) ![Discord](https://discord.c99.nl/widget/theme-2/614018799212953611.png) ## Support [Discord](https://discord.gg/mTxBX87Bdr)